这与已经创建的线程类似: Mixed mode assembly in .NET 4
使用app config,我能够强制程序集在.NET 4上运行。 在XP机器上,我只安装了.NET 4(没有.NET 3.5或2.0)并尝试运行构建的应用程序。它无法在.NET 4中加载构建在3.5框架中的混合模式程序集,而无需在计算机上安装.NET 3.5框架。
当我使用App config强制应用程序在.NET 4上运行时,为什么它依赖于.NET 3.5?
答案 0 :(得分:3)
您遇到了这个问题,因为.NET 3.5使用公共语言运行时(CLR)版本2而.NET 4.0在CLR v4上运行。因此,如果您的程序集是在.NET 3.5中构建的,它只能在具有CLR v2的计算机上运行。
长话短说。将.NET 3.5程序集编译为.NET 4程序集,否则也要在目标计算机上安装.NET 3.5。
您可以在此网站上查看更多信息:
答案 1 :(得分:3)
原因是它与混合模式组件绑定的方式。确保在app.config文件的启动配置中使用useLegacyV2RuntimeActivationPolicy =“true”选项(我假设看起来类似于以下内容):
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319" />
<supportedRuntime version="v2.0.50727" />
</startup>
另请参阅:What does 'useLegacyV2RuntimeActivationPolicy' do in the .NET 4 config?