在.NET 4中使用应用程序配置运行.NET 3.5构建的混合模式程序集也需要框架3.5。

4
这与此处已创建的主题类似:.NET 4中的混合模式程序集

通过应用程序配置,我能够强制让程序集在.NET 4上运行。 在XP机器上,我只安装了.NET 4(没有.NET 3.5或2.0),并尝试运行已构建的应用程序。没有.NET 3.5框架的情况下,它无法加载在3.5框架中构建的混合模式程序集在.NET 4中。

为什么在我使用应用程序配置强制应用程序在.NET 4上运行时还需要依赖.NET 3.5?

2个回答

3

原因是它绑定混合模式程序集的方式不同。请确保在启动配置的app.config文件中使用useLegacyV2RuntimeActivationPolicy="true"选项(我假设您的配置类似于以下内容):

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0.30319" />
  <supportedRuntime version="v2.0.50727" />
</startup>

请参阅:在.NET 4配置中'useLegacyV2RuntimeActivationPolicy'是什么意思?

3
您遇到此问题是因为.NET 3.5使用公共语言运行时(CLR)版本2,而.NET 4.0在CLR v4上运行。因此,如果您的程序集是在.NET 3.5中构建的,则只能在安装了CLR v2的计算机上运行。
简而言之,将您的.NET 3.5程序集编译为.NET 4程序集,否则请在目标计算机上安装.NET 3.5。
更多信息,请参考以下网站:
- .NET Framework版本和依赖关系:.NET Framework Versions and Dependencies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接