尝试在VS2015中运行使用混合模式程序集的单元测试时,测试无法使用常规消息执行:
System.IO.FileLoadException:混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时中加载.
创建app.config并添加useLegacyV2RuntimeActivationPolicy到它没有任何效果 - 好像这个配置无法改变.
以前在VS2013中没有手动步骤.
我正在使用Visual Studio 2012和.Net Framework 4.5我有2个解决方案:1)WPF应用程序2)类库(dll)
类库包含3个按钮和一个必须位于WindosFormsHost控件内的控件,因为它是为WinForms制作的.
.NET Framework之外唯一引用的程序集用于前面提到的winforms控件和iTextSharp.
winforms控件似乎有点老了,当我把引用放在我的dll中时,我得到了与标题相同的错误但是跟着其他SO问题/答案,我把它放在我的配置文件中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
错误:
混合模式程序集是针对运行时的版本"v2.0.50727"构建的,如果没有其他配置信息,则无法在4.0运行时加载
正如我所提到的,我已经看到了发布这个问题的问题,他们确实在我的DLL项目中解决了这个问题,但是在使用该DLL的项目中我尝试了它们都无济于事.以供参考:
在该项目中,我的配置文件具有完全相同的标签,具有相同的值.
还要注意,在我的WPF应用程序中,一开始我收到一个错误,它无法找到指定的dll(对于winforms控件),最后我将该控件的dll放在GAC中.
我已经尝试更改我的目标框架的所有可能性(4.5,4.0完全和客户端,3.5完整和客户端,3.0和2.0),在调试和发布中构建我的DLL并将"生成序列化程序集"设置为OFF,也,将平台目标从Any CPU更改为x86和x64.我只尝试一次更改一个设置的值.
这是VS2012中的问题,或者我需要做些什么来解决这个问题?
编辑:
上述错误在设计时显示在错误列表中,设计者显示错误"无法创建'my_class'的实例"
该内部异常说:"Set connectionId引发异常",其中的内部异常是标题消息.
这仍然允许构建解决方案,并且在运行应用程序时,我得到的基本相同,除了最里面的异常说:
"无法加载文件或程序集'SigPlusNET,Version = 1.1.3358.14336,Culture = neutral,PublicKeyToken = 6aef07010bb0624f'或其中一个依赖项.尝试加载格式不正确的程序."
那个是winForms控件的程序集,经过dotPeek检查,它唯一的依赖是.NET Framework的