“此程序集由比当前加载的运行时更新的运行时构build,无法加载”

我得到错误:“这个程序集是由比当前加载的运行时更新的运行时构build的,无法加载”。

我有一个.NET 2.0项目被.NET 2.0项目调用。 有没有办法来协调框架的差异?

我有一个.NET 2.0项目被.NET 2.0项目调用。 有没有办法来协调框架的差异?

不是这样,不。 .NET 4 CLR可以加载.NET 2程序集(通常 – 混合模式程序集IIRC有一些例外),但反之亦然。

您将不得不将.NET 2项目升级到.NET 4,或将.NET 4项目降级到.NET 3.5(或更早版本)。

因为只有一个版本的运行时间可以加载到一个进程中(虽然,正如其他人所暗示的,向后加载 – 4.0加载2.0 – 没关系),你有几个select:

  • 升级.Net 2.0项目
  • 包装.Net 2.0项目(如果源不是你的)
  • 降级.Net 4.0项目
  • 加载.net 4.0项目到它自己的过程(我相信这可以工作 – 但将需要一点努力,国际海事组织)

您将不得不将.NET 2项目升级到.NET 4,或将.NET 4项目降级到.NET 3.5(或更早版本)。

你如何升级.net版本? 我不知道在哪里和要指定什么。 请帮忙。

编辑:我自己find答案。 select项目,右键单击并select属性页面。 在那里你可以select框架版本。 或者select该项目,然后单击Shift + F4

如果您已经尝试了此页面上的所有其他逻辑解决scheme,请仔细检查。 在我的app.config中,我有一个旧框架的引用。

<startup> <supportedRuntime version="v2.0.50727"/> </startup> 

本来应该

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

项目选项卡正确显示了v4.0,但是app.config没有提交到我们的回购中。 为了解决这个问题,我把框架改成了其他的东西,再次回到4.0,它更新了我的app.config文件。

我得到了同样的错误信息。 我给了

C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ InstallUtil.exe“C:\ MyService \ MyService.exe”

代替

C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe“C:\ MyService \ MyService.exe”

INSTALL_UTIL_HOME目录从“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0”更改为“C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319”来安装该服务。 这个错误主要发生在版本不匹配的情况下。

我也得到这个错误,但我的问题是,我正在使用旧版本的GACUTIL.EXE

一旦我有正确的GACUTIL安装最新的.NET版本,它工作正常。

该错误是误导,因为它使它看起来像你试图注册不正确的DLL。

有趣的是,我一直在收到这个错误。 什么解决了我的是在gacutil.exe相同的目录中创build一个名为gacutil.exe.config的configuration。 configuration内容(一个文本文件)是:

 <?xml version ="1.0"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/> </startup> </configuration> 

我发布这里供参考,并询问是否有人知道实际情况下发生了什么。 我并不是说这是做这件事的“正确”方式

此错误也可能由于在IIS中select了错误的.NET框架版本作为默认值而触发。

单击Connections视图(左侧)下的根节点,然后从Actions视图(右侧)中selectChange .NET Framework Version ,然后从下拉列表中select适当的.NET版本。

它的.net版本不匹配的dll所以尝试改变从app.config或web.config。 通常有一个更高的框架比较低,因为当我们添加系统的DLL到较低版本的内置.NET应用程序,所以它不会工作,因此只是改变到更高的版本

该错误是由于我在IIS中configuration应用程序池的方式。

我的Web服务使用为v2.0.50727configuration的应用程序工具。 这导致了错误消息。

当我将其更改为v4.0.30319时,我没有收到错误信息。