混合模式程序集是针对旧版本的运行时构建的,如果没有其他配置,则无法加载

时间:2012-02-03 14:44:16

标签: c# .net c#-4.0

我无法在我的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?

是否有人对可能导致不同机器上的副本之间差异的原因有任何修改或想法?

3 个答案:

答案 0 :(得分:6)

刚刚解决它试试这个:

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

答案 1 :(得分:0)

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

“生成序列化程序集”设置为AUTO,如果VS(在发布模式下)尝试生成它,我们感到不舒服。线程告诉我们的是,sgen.exe可能(并且可能已经应该)告诉“useLegacyV2RuntimeActivationPolicy”,就像我们在我们自己的app.config中尝试做的那样。相当模糊。

答案 2 :(得分:0)

我尝试过以下代码适用于我,包括两个版本2和4的装配工作

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

这可以帮助