Dot-Net-Core

發布獨立控制台應用程序失敗

  • October 7, 2019

我安裝了.NET SDK 2.1.301-win-x64.exe,然後將所有 nuget 包更新為2.1.1.

在我的 WebApp 中,我有 Nuget 包Microsoft.AspNetCore.All 2.1.1Microsft.NETCore.App 2.1.0. 在 Nuget 視窗中,我看到還有版本 2.1.1,但我無法選擇它(被項目阻止)

我的控制台應用程序中的相同故事:Microsft.NETCore.App 2.1.0

我的第一個問題:這裡已經有問題了嗎?或者這是預期的行為?

如果我將 WebApp 建構為自包含的 App,那效果很好。

如果我將控制台應用程序建構為自包含應用程序(自包含 / win-x64)。我得到以下錯誤:

該項目是使用 Microsoft.NETCore.App 2.1.1 版恢復的,但在目前設置下,將使用 2.1.0 版。要解決此問題,請確保將相同的設置用於還原和後續操作(例如建構或發布)。如果在建構或發布期間設置了 RuntimeIdentifier 屬性,但在還原期間未設置,通常會出現此問題。”

此錯誤的來源是引用的項目。

我做錯了什麼?如果您需要其他資訊,請告訴我,然後我會添加。

這是目前已知的問題。在您引用的項目的 csproj 文件中,設置TargetLatestRuntimePatch屬性:

<PropertyGroup>
 <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>

僅當 .NET Core 應用程序引用另一個 .NET Core 應用程序並且自包含前滾僅在發布期間部分啟動時,才會發生這種情況。

對於攜帶式應用程序,目標為 2.1.0 版本就足夠了Microsoft.NETCore.App,當在目標機器上執行時,將自動使用機器上可用的最新更新檔。在最近的工具中,進行了更改,以便工具將最新的已知更新檔版本用於獨立的應用程序,以便您自動將最新的更新檔版本與您的應用程序捆綁在一起。但是,這不會流向項目到項目的引用。

有關更多資訊,請參閱獨立部署執行時前滾

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