混合模式程序集是针对版本“v1.1.4322”构建的

Posted

技术标签:

【中文标题】混合模式程序集是针对版本“v1.1.4322”构建的【英文标题】:Mixed mode assembly is built against version 'v1.1.4322' 【发布时间】:2011-04-30 10:55:20 【问题描述】:

我在 c# .net 4.0 应用程序中包含了一个 directX 播放器,该应用程序包含在此处 (answer2)。问题是当我尝试初始化对象(即 Player mPlayer=new Player())时,会发生此错误:

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

有人知道它是什么吗?

【问题讨论】:

重要提示:如果错误发生在错误列“文件”为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 最小文件内容:<configuration><startup useLegacyV2RuntimeActivationPolicy="true"/></configuration> 【参考方案1】:

这是可能的组装配置:

<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
</configuration>

【讨论】:

【参考方案2】:

我修复此错误的方法是更改​​我的 app.config 上的“配置”节点:

<startup>
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

到这里:

<startup useLegacyV2RuntimeActivationPolicy="true">
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

【讨论】:

感谢您进一步澄清我们这些没有修改 app.config xml 文件足以知道如何将该值设置为 true 的人。 +1 我的荣幸,杰克。当时,我必须自己寻找,所以我想那里的人也可以使用这些额外的信息:) 上述解决方案适用于我在今天之前遇到此问题的所有情况。如果有人发现自己的继承项目不起作用,并且您知道它应该这样做,请务必检查 App.Config = Always or Newer 的“复制到输出目录”,否则您会感到沮丧。跨度> 【参考方案3】:

您需要添加一个 app.Config 文件并将 useLegacyV2RuntimeActivationPolicy 设置为 true。

这是在 .NET 4 应用程序中使用混合模式 CLR 2 程序集所必需的。

【讨论】:

@Badescu 对此也感到好奇,这里有一个链接解释:msdn.microsoft.com/en-us/library/x0w2664k.aspx 谢谢!!!!这是我遇到过的最奇怪的问题。在 VS 2012 .Net 4.0 中,当我初始化与此 DLL 相关的类型的任何变量时,我的应用程序就会挂起。我从来没有见过这样的事情。在我找到这个之前找不到任何关于这个问题的信息! 请原谅我的无知,但我遇到了同样的问题。我的问题是您实际在哪里创建 app.config 文件?我在文件 'dcexec.exe.config' 中看到了文章中提到的相同 标记,但在此处更改它并重新启动服务器没有效果。 @Neil 它位于主可执行文件的 app.config 文件中。它必须位于您正在运行的 exe 旁边,具有相同的名称等。 @ReedCopsey 虽然在典型的 Visual Studio 项目设置中,在项目的顶部文件夹(在 C# .csproj 或 VB .vbproj 文件旁边)中有一个名为“app.config”的文件,其中 Visual Studio 复制,成为主要可执行文件的“myprojectname.exe.config”。至少这是我在 VS 2010 中看到的。今天尝试了 C# 和 VB,WinForm 应用程序。

以上是关于混合模式程序集是针对版本“v1.1.4322”构建的的主要内容,如果未能解决你的问题,请参考以下文章

混合模式程序集是针对运行时的“v2.0.50727”版本构建的

混合模式程序集是针对“v2.0.50727”错误构建的

混合模式程序集是针对运行时的“2.0.50727”版本构建的,无法在 4.0 运行时中加载

混合模式程序集是针对运行时的“v2.0.50727”版本构建的,无法在 4.0 运行时中加载 - 研究的解决方案不起作用

混合模式汇编异常[重复]

SQLite.dll混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。