使用app config在.NET 4中运行.NET 3.5构建的混合模式程序集也需要Framework 3.5

时间:2010-10-01 05:16:49

标签: .net .net-3.5 .net-4.0

这与已经创建的线程类似: 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?

2 个答案:

答案 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?