从 ASP.NET 核心 2.2 升级到 3.0
Upgrading from ASP.NET Core 2.2 to 3.0
我有一个 ASP.NET 核心项目,具有以下 csproj
配置:
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
我想将项目升级到 <TargetFramework>netcoreapp3.0</TargetFramework>
。但是,这样做后,我收到以下警告:
C:\Program Files\dotnet\sdk.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.
解决这个问题的具体方法是什么?我试图删除对 Microsoft.AspNetCore.App
的引用,但这不起作用。该代码未引用共享框架。
另外,"Otherwise, the PackageReference should be replaced with a FrameworkReference"是什么意思?
如果您正在构建 Web 项目,请确保您的项目文件的第一行是:
<Project Sdk="Microsoft.NET.Sdk.Web">
本例中,自动包含框架:Microsoft.AspNetCore.App
。您不必再次包含它。
如果您构建的是 razor 库而不是 web 项目,请确保您的项目文件的第一行是:
<Project Sdk="Microsoft.NET.Sdk.Razor">
在这种情况下,您的库可能依赖于 ASP.NET Core
中的某些 class。您必须添加:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
别忘了补充:
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
到<PropertyGroup>
如果您既不构建剃刀库也不构建 Web 项目,通常不需要 Microsoft.AspNetCore.App
。如果你真的能确定自己在做什么并且真的需要它,可以考虑添加:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
使用以下修复程序更新项目文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UserSecretsId>My-secret</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
</ItemGroup>
</Project>
我有一个 ASP.NET 核心项目,具有以下 csproj
配置:
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
我想将项目升级到 <TargetFramework>netcoreapp3.0</TargetFramework>
。但是,这样做后,我收到以下警告:
C:\Program Files\dotnet\sdk.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.
解决这个问题的具体方法是什么?我试图删除对 Microsoft.AspNetCore.App
的引用,但这不起作用。该代码未引用共享框架。
另外,"Otherwise, the PackageReference should be replaced with a FrameworkReference"是什么意思?
如果您正在构建 Web 项目,请确保您的项目文件的第一行是:
<Project Sdk="Microsoft.NET.Sdk.Web">
本例中,自动包含框架:Microsoft.AspNetCore.App
。您不必再次包含它。
如果您构建的是 razor 库而不是 web 项目,请确保您的项目文件的第一行是:
<Project Sdk="Microsoft.NET.Sdk.Razor">
在这种情况下,您的库可能依赖于 ASP.NET Core
中的某些 class。您必须添加:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
别忘了补充:
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
到<PropertyGroup>
如果您既不构建剃刀库也不构建 Web 项目,通常不需要 Microsoft.AspNetCore.App
。如果你真的能确定自己在做什么并且真的需要它,可以考虑添加:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
使用以下修复程序更新项目文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UserSecretsId>My-secret</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0" />
</ItemGroup>
</Project>