Asp.net-Core
升級到 .NET Core 2.0:PackageTargetFallback 和 AssetTargetFallb…
升級在 .NET Core 1.0 或 1.1 上編譯和執行良好的項目時,將目標框架更新到 .NET Core 2.0 (
netcoreapp2.0) 會導致建構失敗並出現以下錯誤:error NU1003: PackageTargetFallback and AssetTargetFallback cannot be used together. Remove PackageTargetFallback(deprecated) references from the project environment.這個錯誤的原因是什麼,如何解決重新建構項目?
在 .NET Core 1.0 和 1.1 中,需要
PackageTargetFallback在引用已知可在 .NET Core 上執行但不正式支持它的包時進行設置 - 例如 PCL 庫或為舊dotnet框架名字對象建構的庫。因此,項目 (
.csproj,.fsproj, …) 將包含類似於以下內容的行:<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>在大多數情況下,可以簡單地刪除此行並建構項目,因為 .NET Core 2.0 已經定義
AssetTargetFallback為net461- 這意味著任何與 .NET Framework 4.6.1 或更高版本兼容的 NuGet 包都可以在沒有額外配置的情況下使用。如果這會引入更多建構/恢復錯誤,請將行更改為:
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>更改的原因是
PackageTargetFallback被認為已棄用,應替換為AssetTargetFallback行為僅略有不同的。工具中的重大變化是自動設置
netcoreapp2.0與項目文件中定義的任何值衝突的地方。netstandard2.0``AssetTargetFallback``PackageTargetFallback