Dot-Net

FileLoadException:無法載入文件或程序集 System.Runtime,版本 = 4.2.0.0

  • August 18, 2021

我有一個在完整的 .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。知道如何解決嗎?

如果您創建一個以 [.NET Core]平台為目標的 ASP.NET Core 2.0 Web 應用程序,部署到 Azure(或在本地部署),然後將其更改為以平台為目標,則可能會發生這種情況[.NET Framework]

例如,如果你改變

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

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

但如果您**在重新部署之前未從 Azure 中刪除現有文件,**則會收到此錯誤。

它也可能發生在以下場景中:

  • 首先使用 Visual Studio 2017 創建一個 .NET Core 項目:

文件 -> 新建項目 -> Visual C# > Web > Asp.NET Core 應用程序`

  • [.NET Core]在第二個螢幕上選擇平台。

面向 .NET Core 平台

  • 將 Web 應用部署到 Azure。
  • 然後創建一個新項目:

文件 -> 新建項目 -> Visual C# > Web > Asp.NET Core 應用程序`

  • 在第二個螢幕上選擇 .NET Framework 設置。

針對 .NET 框架

重新部署而不從 Azure 中刪除現有文件將導致此錯誤。

希望有幫助。

對我有用的是:

只需清空項目中的 bin 文件夾並重新建構. 我不得不通過 Windows 資源管理器手動刪除內容,因為“乾淨”的左文件在四處亂竄。

任務完成。

引用自:https://stackoverflow.com/questions/45894659