VS設計器打不開,提示未能加載文件或程序集或它的一個依賴項,系統找不到指定文件解決tips

此問題的真正原因是因為部分公用項目和接口項目用了強命名,而其他引用他們的項目沒用用強命名所至!去掉所有項目的強命名,解決!!!

(1)       把啟動項目的相關報錯的引用移除,然後再重新添加,關掉設計器,重新打開。雖然有點麻煩,畢竟能顯示設計器了。

(2)       調試或生成時保持至少有一個設計器窗體處于打開狀態。

------------------------------------------------------------------

2012、8、25

另外,涉及到引用反射對象的時候,應該將設計器排除引用該對象,否則會經常出現找不到方法的錯誤,設計器就打不開了:
public BaseForm(int i)
{
    InitializeComponent();
    if ((System.Diagnostics.Process.GetCurrentProcess().ProcessName != "devenv"))
    {
        //支持多數據庫
        AaaaPrefix1 = App.dao.AaaaPrefix1;
        AaaaPrefix2 = App.dao.AaaaPrefix2;
        AaaaPrefix3 = App.dao.AaaaPrefix3;
        AaaaPrefix4 = App.dao.AaaaPrefix4;
        AaaaPrefix5 = App.dao.AaaaPrefix5;
    }
}
/// <summary>
/// 多數據庫接口類
/// </summary>
public static IDAL idao = null;
public static IDAL dao //= (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv") ? null : (IDAL)Assembly.Load(ConfigurationManager.AppSettings["DaoNamespace"]).CreateInstance(ConfigurationManager.AppSettings["DaoNamespace"] + "." + ConfigurationManager.AppSettings["DaoClass"]);
{
    get
    {
        if (idao == null && System.Diagnostics.Process.GetCurrentProcess().ProcessName != "devenv")
        {
            try
            {
                //讀取配置文件
                XmlElement xe = XmlHelper.GetSettingXmlElement("DaoNamespace");
                string daoNamespace = xe.GetAttribute("value");
                xe = XmlHelper.GetSettingXmlElement("DaoClass");
                string daoClass = xe.GetAttribute("value");
                return (IDAL)Assembly.Load(daoNamespace).CreateInstance(daoNamespace + "." + daoClass);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                return null;
            }
        }
        else
        {
            return idao;
        }
    }
    set { idao = value; }
}

posted @ 2012-07-20 17:43  Yaoquan.Luo  阅读(299)  评论(0编辑  收藏  举报