这与此处已创建的主题类似:.NET 4中的混合模式程序集
通过应用程序配置,我能够强制让程序集在.NET 4上运行。 在XP机器上,我只安装了.NET 4(没有.NET 3.5或2.0),并尝试运行已构建的应用程序。没有.NET 3.5框架的情况下,它无法加载在3.5框架中构建的混合模式程序集在.NET 4中。
为什么在我使用应用程序配置强制应用程序在.NET 4上运行时还需要依赖.NET 3.5?
通过应用程序配置,我能够强制让程序集在.NET 4上运行。 在XP机器上,我只安装了.NET 4(没有.NET 3.5或2.0),并尝试运行已构建的应用程序。没有.NET 3.5框架的情况下,它无法加载在3.5框架中构建的混合模式程序集在.NET 4中。
为什么在我使用应用程序配置强制应用程序在.NET 4上运行时还需要依赖.NET 3.5?
原因是它绑定混合模式程序集的方式不同。请确保在启动配置的app.config文件中使用useLegacyV2RuntimeActivationPolicy="true"选项(我假设您的配置类似于以下内容):
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319" />
<supportedRuntime version="v2.0.50727" />
</startup>