引用的程序集不会加载

时间:2010-04-16 19:58:48

标签: .net visual-studio visual-studio-2008 visual-studio-2010 assemblies

我有一个visual studio 2010项目,它发布了一个名为myAssembly.ddl的程序集。 然后,我想从现有的vs 2008项目中引用myAssembly.dll。如果我尝试加载引用,它旁边会出现一个黄色的感叹号,表明程序集未加载。但是,在此过程中我没有收到任何错误消息。显然,如果我尝试在我的代码中导入命名空间,它就不会编译。

myAssembly.dll转换为.net版本3.5没有帮助。 也没有将程序集复制到不同的目录并从那里引用它。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

您使用哪个.NET Framework在Visual Studio 2008中构建解决方案?

它必须是版本3.5才能使用您使用3.5框架编译的myAssembly.dll。 Visual Studio 2008将允许您定位2.0 Framework甚至3.0 Framework。

Visual Studio 2008

项目>属性>应用选项卡 寻找目标框架

答案 1 :(得分:2)

我得到了一个repro。它在Ildasm.exe中可见,2010编译器将元数据标记为v4.0.30319。您也可以使用Corflags.exe查看它。 2008构建系统会为此生成警告,您可以在“输出”窗口中看到它:

  

警告MSB3246:已解析的文件有   图像不好,没有元数据,或者是   否则无法访问

将目标框架更改为3.5修复了问题,程序集现在将标记为v2.0.50727,即2005和2008中使用的CLR版本。但是,IDE无法智能检测此更改。你必须删除程序集引用,然后将其重新放入。并且黄色感叹号不再存在。

答案 2 :(得分:0)

如果发布的nuget程序包的运行时/体系结构错误,或者根本不是.dotnet dll,就会发生这种情况。