2011-02-28 40 views
13

我已经从托管的Window Server 2008下载了已发布的代码(文件后面的代码不存在,与bin文件夹中的dll结合)Web应用程序,并打开它与Visual Studio,当我调试应用程序它显示了以下错误:错误:该程序集由比当前加载的运行时更新的运行时构建

"Could not load assembly because this assembly is built by a runtime newer than the currently loaded runtime"

我不知道我怎么可以在本地解决这个问题,并测试应用程序。 请帮帮我。

回答

19

此错误时DOTNET的框架您使用的是旧版本比用于构建组合的一个情况。您需要检查使用哪个版本的框架来构建这些程序集,然后使用相同或更高版本来调试。

+0

所以我目前在V2008所以如果我安装.NET框架4然后我可以运行该应用程序或我必须安装VS2010? – 2011-03-10 04:54:09

+0

@Arun - 如果你安装了dotNet 4,那就够了。不需要安装vs2010。别担心。 – 2011-03-10 06:17:12

+0

这也可能发生在很多其他原因。 – 2014-09-22 15:42:07

0

其中一个项目中的程序集引用可能使用更新版本的.net构建,请检查每个程序集引用的版本并进行相应更正。

3

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

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

要检查是否安装项目使用.NET比项目的旧版本进行安装,在Visual Studio解决方案资源管理器

  1. 展开安装项目;

  2. 在安装项目下,展开检测到的依存关系;

  3. 在检测到依赖选择的Microsoft .NET Framework并检查版本财产。从下拉列表中选择适当的.NET版本;

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

+0

安装服务时也有这个问题。检测到.Net Framework的依赖版本出于某种原因是错误的,当我改变它时,问题就消失了。非常感谢! – dbostream 2015-11-25 09:35:32

+0

@Simon Tewsi是正确的,它适用于我的Visual Studio 2013和.NET Framework 4.我错误地选择了“任何”选项。多谢兄弟! – Dung 2016-05-13 15:31:44

+0

谢谢。附:您可能需要双击Microsoft .NET Framework才能打开属性。 – Augis 2016-09-21 13:08:52

1

我只是碰到了这个问题,当组件使用.NET 4的目标框架建成,v4.0.30319 安装在服务器上,和其它4.0的应用程序被成功运行。

问题的产生是因为该应用程序最初是以2.0为目标而构建的,而新的4.0程序集是推送的,而不是app.config文件,我们通常会分别进行更新。

这意味着supportedRuntime属性未在config中更新并导致错误。将以下内容添加到应用程序中。配置固定我们的问题:

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

+0

在哪个节web.config我必须添加? – realtebo 2018-02-16 09:22:22

+1

在我的情况下,当我在服务器上运行多个应用程序(而不是Web应用程序)时,我将其中一个从2.0升级到4.0,但我忘记了更新app.exe.config以及二进制文件。所以我不是web.config,但''标签是顶级''元素的子元素,web.config也有这个元素,所以我只是尝试一下顶层,在''下面 – Danny 2018-02-16 14:59:24

0

同时检查应用程序池,这个网站正在运行的。它可能是一些较旧的Windows服务器的框架2.0默认。将其更改为框架4.0。

相关问题