【问题标题】:Running .NET 3.5 built Mixed mode assemblies in .NET 4 using app config requires Framework 3.5 as well使用应用程序配置在 .NET 4 中运行 .NET 3.5 构建的混合模式程序集也需要 Framework 3.5
【发布时间】:2011-04-19 16:46:38
【问题描述】:

这类似于这里已经创建的线程: Mixed mode assembly in .NET 4

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

当我使用 App config 强制应用程序在 .NET 4 上运行时,它为什么要依赖 .NET 3.5?

【问题讨论】:

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


    【解决方案1】:

    您遇到这个问题是因为 .NET 3.5 使用公共语言运行时 (CLR) 版本 2,而 .NET 4.0 在 CLR v4 上运行。因此,如果您的程序集是在 .NET 3.5 中构建的,则它只能在具有 CLR v2 的计算机上运行。

    长话短说。 将 .NET 3.5 程序集编译为 .NET 4 程序集,否则也要在目标计算机上安装 .NET 3.5。


    您可以查看此网站了解更多信息:

    【讨论】:

      【解决方案2】:

      原因是它绑定到混合模式程序集的方式。确保在 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?

      【讨论】:

        猜你喜欢
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2010-12-15
        • 2012-11-28
        • 2011-08-10
        • 2012-04-15
        • 1970-01-01
        • 2016-05-28
        相关资源
        最近更新 更多