从ASP.Net Core 2.2升级到3.0

Abh*_*bhi 7 upgrade asp.net-core-3.0 .net-core-3.0

我有一个具有以下配置的ASP.Net Core项目:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

我想将该项目升级到<TargetFramework>netcoreapp3.0</TargetFramework>。这样做时,我得到以下警告:

C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\
Microsoft.NET.Sdk.DefaultItems.targets(149,5): warning NETSDK1080: A 
PackageReference to Microsoft.AspNetCore.App is not necessary when targeting
.NET Core 3.0 or higher. If Microsoft.NET.Sdk.Web is used, the shared 
framework will be referenced automatically. Otherwise, the PackageReference 
should be replaced with a FrameworkReference.
Run Code Online (Sandbox Code Playgroud)

对此的解决方案到底是什么?我尝试删除对它的引用,Microsoft.AspNetCore.App但这不起作用。该代码未引用共享框架。

另外,“否则,应将PackageReference替换为FrameworkReference”。意思?

And*_*uin 8

如果要构建Web项目,请确保项目文件的第一行是:

<Project Sdk="Microsoft.NET.Sdk.Web">
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它是自动包含的框架:Microsoft.AspNetCore.App。您不必再次包含它。

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

如果您要构建的剃刀库不是Web项目,请确保项目文件的第一行是:

<Project Sdk="Microsoft.NET.Sdk.Razor">
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您的库可能依赖于中的某个类ASP.NET Core。您必须添加此:

  <ItemGroup>
     <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

不要忘记添加:

    <AddRazorSupportForMvc>true</AddRazorSupportForMvc>
Run Code Online (Sandbox Code Playgroud)

<PropertyGroup>

如果您既不构建剃刀库也不构建Web项目,则通常不需要Microsoft.AspNetCore.App。如果您确实可以确定自己在做什么并且确实需要它,请考虑添加:

  <ItemGroup>
     <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

  • 我只需右键单击“依赖项”&gt;“包”下的 Microsoft.AspNetCore.App 包,然后选择“删除” (2认同)