我有一个运行在完整.net框架4.6.1上的asp.net core 2.0应用程序。它在本地工作正常,但当我将其部署到Azure时,我收到以下错误:
FileLoadException:无法加载文件或程序集' System.Runtime, Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'要么 其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)
在Debug / Release文件夹中,我有System.Runtime 4.1.2.0但不知何故它可以工作。
经典" .NET框架我曾经将程序集重定向添加到app.config但在这里我没有web.config。知道怎么解决这个问题吗?
答案 0 :(得分:9)
如果您创建面向[.NET Core]
平台的ASP.NET Core 2.0 Web应用程序,部署到Azure(或在本地部署),然后将其更改为以[.NET Framework]
为目标,则会发生这种情况。
e.g。如果你改变
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
到
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
但如果在重新部署之前不从Azure中删除现有文件,则会出现此错误。
在以下情况中也会发生这种情况:
首先使用Visual Studio 2017创建一个.NET Core项目:
档案 - &gt;新项目 - &gt; Visual C#&gt;网络&gt; Asp.NET核心应用程序
在第二个屏幕上选择[.NET Core]
平台。
然后使用:
创建一个新项目档案 - &gt;新项目 - &gt; Visual C#&gt;网络&gt; Asp.NET核心应用程序
在第二个屏幕上选择.NET Framework设置。
重新部署而不删除Azure中的现有文件将导致此错误。
希望有所帮助。
答案 1 :(得分:3)
对我有用的是:
简单地,清空项目中的bin文件夹并重建。我不得不通过Windows资源管理器手动删除内容,因为“干净”的左文件开始播放。
工作完成。
答案 2 :(得分:0)
尽管这是一篇老文章,但在使用.NET 4.7.2构建站点时,我遇到了同样的问题,并且在我的机器上一切正常,一旦上载到客户端服务器,我会遇到以下错误:< / p>
无法从“ Umbraco.Web,版本= 8.0.0.0中加载所有类型 System.Net.Http,版本= 4.2.0.0
经过一番摸索和与客户端的沟通,他们允许我访问他们的Windows 2016服务器。
他们的服务器没有安装4.7.2,因此,一旦下载并安装,问题便得到解决。
尽管这篇文章有很多评论https://github.com/dotnet/corefx/issues/22781,但我还是建议您查看服务器是否具有与您所针对的.NET框架相同的评论。
答案 3 :(得分:0)
我有同样的问题。我清空了本地计算机上的bin文件夹,然后再次执行Build操作,然后将新的bin文件夹复制到服务器,它开始工作。