2017-08-26 362 views
3

我有一个asp.net核心2.0应用程序运行在完整的.net框架4.6.1。它工作正常,在当地,但是当我把它部署到Azure中我收到以下错误:FileLoadException:无法加载文件或程序集System.Runtime,版本= 4.2.0.0

FileLoadException: Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

在调试/ Release文件夹我有System.Runtime 4.1.2.0但不知何故,它的工作原理。

在“经典”.NET框架中,我用来将程序集重定向添加到app.config,但在这里我没有web.config。任何想法如何解决这个问题?

+0

“我没有web.config”并不意味着你不能添加web.config。你尝试过吗? –

+0

@LexLi - 也许我可以做到这一点,但它看起来像调试/发布文件夹我有System.Runtime版本= 4.1.2.0 - 由于某种原因,它在本地工作。 –

回答

7

,如果你建立指定[.NET Core]平台的ASP.NET 2.0的核心Web应用程序会发生这种情况,部署到Azure中(或本地部署),然后将其更改为目标的[.NET Framework]代替。

例如如果你改变

<PropertyGroup> 
    <TargetFramework>netcoreapp2.0</TargetFramework> 
</PropertyGroup> 

<PropertyGroup> 
    <TargetFramework>net461</TargetFramework> 
</PropertyGroup> 

,但如果你不从Azure中重新部署之前删除现有文件,您将收到此错误。

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

  • 首先用Visual Studio创建2017年与.NET核心项目:

    文件 - >新建项目 - > Visual C#中>网络>天冬氨酸.NET核心应用程序“。

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

targeting .NET Core Platform

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

    文件 - >新建项目 - > Visual C#中>网络> Asp.NET核心Application`

  • 选择在第二个屏幕的.NET框架设置。

targeting the .NET Framework

无需重新部署从Azure中删除现有的文件会导致此错误。

希望有所帮助。

+0

太好了,就是这样。我已经将.NET Framework的框架更改为.NET Framework,并且只是上传新文件而不删除旧文件。 –

+0

很高兴帮助。当我遇到同样的问题时,我发现了你的问题,并决定花更多时间深入挖掘。 – mcolhoun

相关问题