2017-08-26 156 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

相關問題