混合模式组件内置于version“2.0.40607”运行时并不能在4.0运行时加载(Mixed m

2019-07-18 15:43发布

我使用的Visual Studio 2012和.NET Framework 4.5我有2个解决方案:1)WPF应用程序2)班库(DLL)

类库包含3个按钮,并且具有是一个WindosFormsHost控制内,因为它被用于的WinForms制成的控制。

.NET框架的人以外的唯一引用的组件是用于上述的WinForms控制和iTextSharp的。

该控制的WinForms似乎是有点老,当我把我的DLL参考我得到了同样的错误作为标题,但下列其他SO问题/答案,我我把这个在我的配置文件:

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

错误:

混合模式组件被构建针对运行时的版本“V2.0.50727”和不能在运行时4.0无需额外的配置信息被加载

正如我所说,我已经看到张贴这个问题的问题,他们没有解决问题,在我的DLL项目,但在项目中使用该DLL我他们都试图无济于事。 以供参考:

  1. 什么额外的配置“是必要的,一个.NET 4.0项目引用一个.NET 2.0混合模式组件?
  2. 混合模式组件构建针对运行时的版本“V2.0.50727“
  3. 什么是“useLegacyV2RuntimeActivationPolicy”在.NET 4的配置呢?
  4. 混合模式组件构建针对运行时的版本“V2.0.50727,且不能在4.0运行时加载
  5. 混合模式组件被内置于version X和不能在运行时的版本ý无需额外的配置信息被加载

在该项目中我的配置文件具有相同的值完全相同的标签。

另外要注意,在我的WPF应用程序,一开始我得到一个错误它不能够找到指定的DLL(为的WinForms控制),在最后我把该控件的DLL在GAC中。

我试图改变我的目标架构,在所有的可能性(4.5,4.0全和客户端,3.5全和客户端,3.0和2.0),建设我的DLL的调试和发布,并设置了“生成序列化大会”为OFF时,也,从任意CPU到x86和x64改变目标平台。 我只尝试一次改变一个设置的值。

这是在VS2012的问题还是什么,我需要做的,解决这个问题?

编辑:

上述错误是在错误列表设计时间显示,设计者显示一个错误说“无法创建‘my_class’的实例”

那一个内部异常说:“设置的ConnectionId抛出异常”和本内部异常是标题的消息。

这仍然使该解决方案,将建成并在运行的应用程序,我得到基本相同,不同之处在于最里面的异常说:

“无法加载文件或程序集‘SigPlusNET,版本= 1.1.3358.14336文化=中性公钥= 6aef07010bb0624f’或它的一个依赖。试图加载程序使用不正确的格式。”

这一个是的WinForms控件的程序,在通过dotPeek检查,它具有唯一的依赖是.NET框架的人

Answer 1:

与金光闪闪支持DirectX 10.0,(Bling的UI工具包在CodePlex上)工作。 我得到了我结束在这里这个网页寻找解决方案上的错误,在D3D10.example app.config文件包括支持的运行时,版本= 4行。 但它不包括版本= 2 .NET线更晚的线,使用的app.config为:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" />
  <supportedRuntime version="v2.0.50727" />
 </startup>
</configuration>

一旦配置文件被修改以示出的代码解决了这个问题,并且在VS2012运行所有的例子。

我不知道,如果这个职位是要迟到了一个答案,我只是在Windows 7和VS2012本月开始在图形项目和配置变化解决我的问题。



Answer 2:

这可能是造成的,因为您在另一个在这条线的位置1和4.5有4.0:

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

尝试:

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

要么

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


Answer 3:

我的做法有点不同。 错误清楚地标识了一些.NET组件2.0.50727被列入在.NET 4.0中在App.config文件,而不是使用这样的:

<startup useLegacyV2RuntimeActivationPolicy="true"> 

它解决了我的问题



文章来源: Mixed mode assembly is built against version '2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime