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; }
}