FileLoadException:无法加载文件或程序集System.Runtime,Version = 4.2.0.0

Sła*_*iek 4 .net .net-core asp.net-core

我有一个asp.net核心2.0应用程序,它运行在完整的.net框架4.6.1上.它在本地工作正常,但当我将其部署到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.知道怎么解决这个问题吗?

mco*_*oun 9

如果您创建一个面向[.NET Core]平台的ASP.NET Core 2.0 Web应用程序 ,部署到Azure(或本地部署),然后将其更改为目标,则会发生这种情况[.NET Framework].

例如,如果你改变

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

<PropertyGroup>
    <TargetFramework>net461</TargetFramework>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

但是如果在重新部署之前不从Azure中删除现有文件,则会出现此错误.

它也可能发生在以下情形中:

  • 首先使用Visual Studio 2017创建一个.NET Core项目:

    文件 - >新项目 - > Visual C#> Web> Asp.NET核心应用程序

  • [.NET Core]在第二个屏幕上选择平台.

面向.NET核心平台

  • 将Web应用程序部署到Azure.
  • 然后创建一个新项目:

    文件 - >新项目 - > Visual C#> Web> Asp.NET核心应用程序

  • 在第二个屏幕上选择.NET Framework设置.

以.NET Framework为目标

在不删除Azure中的现有文件的情况下重新部署将导致此错误.

希望有所帮助.


Ale*_*ens 5

对我有用的是:

只需清空项目中的bin文件夹并重新构建。我不得不通过Windows资源管理器手动删除内容,因为“干净”的左文件开始播放了。

任务完成。