【问题标题】:Mixed mode assembly is built against old version of the runtime and cannot be loaded without additional configuration混合模式程序集是针对旧版本的运行时构建的,没有额外配置就无法加载
【发布时间】:2012-02-26 04:14:48
【问题描述】:

我无法在我的 Windows 7 工作站上构建由前雇员编写的项目。它在他使用的旧 XP 机器上运行良好,我有一个完全相同的副本。

错误 1 ​​混合模式程序集是针对运行时版本“v2.0.50727”构建的,如果没有其他配置信息,则无法在 4.0 运行时中加载。 C:\Working\Scan\v2.5.9.99\ConfigurationTool\ConfigurationTool\SGEN ConfigurationTool

我已经搜索了此错误消息的解决方案,但我发现提供的解决方案不能解决问题:(

这就是我的配置文件开始的方式,useLegacyV2RuntimeActivationPolicy 已经存在。

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <requiredRuntime version="v4.0.20506"/>
  </startup>
</configuration>

我已经尝试了所有建议的组合以及完整版本和客户端版本的不同配置文件,如此线程中所述,但没有结果。

What 'additional configuration' is necessary to reference a .NET 2.0 mixed mode assembly in a .NET 4.0 project?

对于导致不同机器上的副本之间存在差异的原因,是否有人得到修复或任何想法?

【问题讨论】:

  • 重要提示:如果错误发生在错误列“文件”为SGEN,则修复需要位于sgen.exe.config 旁边的文件sgen.exe 中。例如,对于 VS 2015,创建 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\sgen.exe.config。来源:SGEN Mixed mode assembly 最小文件内容:&lt;configuration&gt;&lt;startup useLegacyV2RuntimeActivationPolicy="true"/&gt;&lt;/configuration&gt;

标签: c# .net c#-4.0


【解决方案1】:

刚刚解决了试试这个:

  1. 确保如果您有多个项目,它们都设置为针对 .net 4 full 而不是客户端构建。
  2. 如果您不断收到编译器错误,请将“生成序列化程序集”设置为关闭
  3. 如果您正在构建一个插件并且您的项目的输出是一个 dll,您必须为该程序创建一个配置文件(我必须创建“INFOPATH.EXE.config”)

希望对你有帮助

【讨论】:

  • AFAIK,将“生成序列化程序集”设置为 OFF 只会将问题转移到 RUNTIME。也就是构建不会报错,但是如果需要信息,我相信它是跑不起来的。
【解决方案2】:

对我们来说,这个帖子有帮助: http://social.msdn.microsoft.com/Forums/en/clr/thread/2a5bf31e-df96-4bf1-a846-699da46b62fb

“生成序列化程序集”被设置为 AUTO,如果 VS(在发布模式下)试图生成它,我们会觉得关闭它并不方便。该线程告诉我们的是,sgen.exe 可能(也许应该已经)被告知“useLegacyV2RuntimeActivationPolicy”,就像我们在自己的 app.config 中尝试做的那样。相当晦涩。

【讨论】:

【解决方案3】:

我已经尝试过以下代码对我有用,两个版本 2 和 4 的程序集都有效

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" />
</startup>

这会有所帮助

【讨论】:

    猜你喜欢
    • 2012-04-04
    • 2012-08-11
    • 2012-08-03
    • 2013-01-08
    • 2011-09-19
    • 1970-01-01
    • 2023-03-24
    • 2011-04-30
    • 2016-05-08
    相关资源
    最近更新 更多