【问题标题】:Mixed Mode Error when building in Release Mode在发布模式下构建时出现混合模式错误
【发布时间】:2012-02-27 21:47:45
【问题描述】:

我有 c# asmx 服务项目,它在带有 vs 2008 的框架 2 上运行现在我已经将它更新到带有 vs 2010 的框架 4

当我在调试模式下构建 dll 时,它编译成功,但是当我在发布模式下构建时,出现以下错误:

错误 51 混合模式程序集是针对运行时版本“v1.1.4322”构建的,如果没有额外的配置信息,则无法在 4.0 运行时中加载。 C:\Service\MycService\SGEN

更新: 好的,我将框架从项目属性更改为 3.5,它在发布模式下构建正常,但是框架 4.0 中的问题是什么。我需要它在框架 4.0 中工作

【问题讨论】:

  • 在项目设置中,您在配置管理器或构建部分中的构建方式是否有所不同?
  • @Ravia 答案有一个 win 应用程序,它有一个 app.Config 文件并设置了 useLegacyV2RuntimeActivationPolicy,我的是 Web 应用程序,你的意思是我必须在我的 webconfig 中添加 useLegacyV2RuntimeActivationPolicy

标签: c# asp.net web-services .net-4.0


【解决方案1】:

我得到了它的工作 通过转到项目-> 右键单击​​-> 属性-> 构建-> 生成序列化程序集 将此处的值“自动”更改为关闭 并建立在发布模式上,它现在可以工作了

【讨论】:

  • 我做了同样的事情,它的工作原理。但是你知道这个原因吗?
  • @SaraNa 我认为 .NET 4.0 应用程序设计不能使用混合模式程序集,这就是我们需要关闭 Generate Serialization Assembly 的原因。
【解决方案2】:

您的解决方案中是否有非托管代码,或者您是否针对非托管代码构建?
当我们开始使用 VS2010 和 .net 4 时,我们在工作中遇到了这样的问题。
对我们有用的是将 App.config 文件添加到包含以下内容的项目中:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

【讨论】:

    【解决方案3】:

    您必须将其放在配置标签中,检查链接http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx,该链接也在之前的链接答案中。

    【讨论】:

    • 我确实在配置标签下添加了 webconfig 但同样的问题
    猜你喜欢
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2019-07-29
    • 2016-07-08
    • 1970-01-01
    • 2014-08-18
    相关资源
    最近更新 更多