在我正在开发的一个简单的应用程序中,我有三个相关的程序集:
现在,一切进展顺利,我可以放弃对设计器中表单的控制,并愉快地添加了相关的引用,但是当我尝试在调试下实际运行它时,我得到:
System.TypeLoadException occurred Message="Could not load type 'MyCompany.Geography.Windows.Forms.MyControl' from assembly 'MyCompany.Geography.Windows, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'." Source="MyCompany.Geography.Windows" TypeName="MyCompany.Geography.Windows.Forms.MyControl" StackTrace: at MyCompany.Geography.Windows.Form1.InitializeComponent() at MyCompany.Geography.Windows.Form1..ctor() in ...\Projects\MyCompany.Geography\MyCompany.Geography.Windows\Form1.cs:line 10 InnerException:
通常我会去查看内部异常,但没有。让我感到困惑的一点是,我已经将它视为已经跟随参考,然后在那里查看,我对于要检查什么感到困惑?
答案 0 :(得分:1)
确保可执行应用程序同时引用MyCompany.Geography.Windows.Forms.dll和MyCompany.Geography.dll。
您是否在调试会话期间检查了“输出”窗口,以获取有关未能加载程序集的任何信息?它也可能与程序集的冲突版本有关。当应用程序在异常点进入调试器时,打开“模块”窗口(Debug - > Windows - > Modules)并查看程序集是否实际已加载。
答案 1 :(得分:1)
使用fuslogvw.exe tool找出它正在使用的程序集。该异常表示它确实找到了程序集但程序集不包含MyControl类型。也许它找到了旧版本的程序集。 Fuslogvw会告诉你。