Asp.net-Core

從 ASP.NET Core 2.2 升級到 3.0

  • September 30, 2019

csproj我有一個具有以下配置的 ASP.NET Core 項目:

<PropertyGroup>
 <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
 <PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

我想將項目升級到<TargetFramework>netcoreapp3.0</TargetFramework>. 但是,這樣做後,我收到以下警告:

C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\ Microsoft.NET.Sdk.DefaultItems.targets(149,5): 警告 NETSDK1080: A PackageReference to Microsoft.AspNetCore.App面向 .NET Core 3.0 或更高版本時不需要。如果使用 Microsoft.NET.Sdk.Web,則會自動引用共享框架。否則,應將 PackageReference 替換為 FrameworkReference。

解決這個問題的具體方法是什麼?我試圖刪除對 的引用Microsoft.AspNetCore.App,但這不起作用。該程式碼不引用共享框架。

另外,“否則,應該將 PackageReference 替換為 FrameworkReference”是什麼意思?

如果您正在建構一個 Web 項目,請確保您的項目文件的第一行是:

<Project Sdk="Microsoft.NET.Sdk.Web">

在這種情況下,它會自動包含在 framework:Microsoft.AspNetCore.App中。您不必再次包含它。

<https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio#framework-reference>

如果您正在建構 Razor 庫而不是 Web 項目,請確保項目文件的第一行是:

&lt;Project Sdk="Microsoft.NET.Sdk.Razor"&gt;

在這種情況下,您的庫可能依賴於ASP.NET Core. 你必須添加這個:

 &lt;ItemGroup&gt;
    &lt;FrameworkReference Include="Microsoft.AspNetCore.App" /&gt;
 &lt;/ItemGroup&gt;

不要忘記添加:

   &lt;AddRazorSupportForMvc&gt;true&lt;/AddRazorSupportForMvc&gt;

&lt;PropertyGroup&gt;

如果您不建構 razor 庫或 Web 項目,通常不需要Microsoft.AspNetCore.App. 如果您確實可以確定自己在做什麼並且確實需要它,請考慮添加:

 &lt;ItemGroup&gt;
    &lt;FrameworkReference Include="Microsoft.AspNetCore.App" /&gt;
 &lt;/ItemGroup&gt;

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