web-dev-qa-db-ja.com

ASP.NET Core 2.2から3.0へのアップグレード

次の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):warning NETSDK1080:A PackageReference to Microsoft.AspNetCore.App .NET Core 3.0以上を対象とする場合は不要です。 Microsoft.NET.Sdk.Webを使用すると、共有フレームワークが自動的に参照されます。それ以外の場合は、PackageReferenceをFrameworkReferenceに置き換える必要があります。

これに対する解決策は正確には何ですか? Microsoft.AspNetCore.Appへの参照を削除しようとしましたが、機能しません。コードは共有フレームワークを参照していません。

また、「そうでなければ、Pac​​kageReferenceをFrameworkReferenceに置き換える必要があります」とはどういう意味ですか?

17
Abhi

Webプロジェクトを構築している場合は、プロジェクトファイルの最初の行が次のようになっていることを確認してください。

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

この場合、自動的に含まれるフレームワーク:Microsoft.AspNetCore.App。再度含める必要はありません。

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

Webプロジェクトではなくかみそりライブラリを構築する場合は、プロジェクトファイルの最初の行が次のようになっていることを確認してください。

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

この場合、ライブラリはASP.NET Coreのクラスに依存している可能性があります。これを追加する必要があります:

  <ItemGroup>
     <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

追加することを忘れないでください:

    <AddRazorSupportForMvc>true</AddRazorSupportForMvc>

<PropertyGroup>

かみそりライブラリもWebプロジェクトも構築していない場合、通常はMicrosoft.AspNetCore.Appは必要ありません。自分が何をしているか本当に確認でき、本当に必要な場合は、以下を追加することを検討してください。

  <ItemGroup>
     <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
16
Anduin

次のようにプロジェクトファイルを更新すると、修正されます。

<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>

参考

0
mparkuk