错误:此程序集由比当前加载的运行时更新的运行时构建

时间:2011-02-28 06:01:32

标签: asp.net visual-studio

我已经从托管的Window Server 2008下载了已发布的文件(文件后面的代码与bin文件夹中的dll结合使用),并在调试该应用程序时使用Visual Studio打开它,显示以下错误:< / p>

  

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

我不知道如何解决此问题并在本地测试应用程序。 请帮帮我。

6 个答案:

答案 0 :(得分:20)

当您使用的 DotNet框架较旧版本时,会发生此错误,而不是用于构建程序集的版本。您需要检查用于构建这些程序集的框架版本,然后使用相同或更高版本进行调试。

答案 1 :(得分:4)

我在运行Windows服务的安装程序时遇到同样的错误,即使在PC上安装安装程序的安装程序也是如此。

事实证明,尽管Windows服务项目已更新为.NET 4.5,但安装程序的安装项目仍设置为使用.NET 2.0。

要检查安装项目是否使用比要安装的项目更旧的.NET版本,Visual Studio Solution Explorer中的

  1. 展开设置项目;

  2. 在安装项目下,展开检测到的相关性;

  3. 在“检测到的依赖项”下,选择 Microsoft .NET Framework 并选中版本属性。从下拉列表中选择适当的.NET版本;

  4. 重新构建安装项目以创建新版本的安装程序。

答案 2 :(得分:2)

此错误也可能有很多其他原因。我遇到了同样的问题,在我偶然发现之前没有任何帮助: TlbExp.exe error:This assembly is built by a runtime newer

答案 3 :(得分:1)

当使用.NET 4的目标框架构建程序集时,我遇到了这个问题,并且在服务器上安装了v4.0.30319 ,而其他4.0应用程序运行成功。

问题出现了,因为应用程序最初是针对2.0构建的,并且推送了新的4.0程序集,而不是app.config文件,我们通常会单独更新。

这意味着配置中未更新supportedRuntime属性并导致错误。将以下内容添加到app.config修复了我们的问题:

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

答案 4 :(得分:0)

项目中的程序集引用可以使用较新版本的.net构建,检查每个程序集引用的版本并相应地更正。

答案 5 :(得分:0)

同时检查此网站正在运行的应用程序池。它可能是某些旧版Windows服务器上的框架2.0默认值。将其更改为框架4.0。