web-dev-qa-db-ja.com

プロジェクトはMicrosoft.NETCore.Appバージョン2.1.0を使用して復元されましたが、現在の設定では、代わりにバージョン2.1.0-rtm-26515-03が使用されます

現時点では、Web APIとネットコア2.0を使用してC#でマイクロサービスを作成しています

nutgetパッケージで、ネットコアのバージョン2.1を既に見つけており、アプリを更新するためにそれをインストールすることにしました。以下に示すようにターゲットを変更しました

enter image description here

しかし、コンパイルしようとすると、このバグが生成されます

enter image description here

プロジェクトはMicrosoft.NETCore.Appバージョン2.1.0を使用して復元されましたが、現在の設定では、バージョン2.1.0-rtm-26515-03が代わりに使用されます。この問題を解決するには、復元と、ビルドや公開などの後続の操作に同じ設定が使用されていることを確認してください。通常、ビルドまたは公開中にRuntimeIdentifierプロパティが設定されているが復元中には設定されていない場合、この問題が発生する可能性があります。

そして、私の依存関係はそのままです

enter image description here

39
dasuma

プロジェクトはMicrosoft.NETCore.Appバージョン2.1.0を使用して復元されましたが、現在の設定では、代わりにバージョン2.1.0-rtm-26515-03が使用されます

これは、現時点では 既知の問題 です。この問題を解決するには、次の回避策を試してください。

  • .csprojファイルにTargetLatestRuntimePatch属性を追加します。

    <PropertyGroup>
      <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
    </PropertyGroup>
    

または

  • .csprojファイルにRuntimeFrameworkVersionおよびRuntimeIdentifierを設定します。

     <PropertyGroup>
       <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
       <PlatformTarget>AnyCPU</PlatformTarget>
       <RuntimeIdentifier>win-x64</RuntimeIdentifier>
     </PropertyGroup>
    

上記の回避策が機能しない場合は、 調査の問題 で回避策を確認してください。

詳細については、 自己完結型の展開ランタイムのロールフォワード を参照してください。

76
Leo Liu-MSFT

ASP.NET Core 2.1コンソールアプリを公開したいのですが、バージョン2.1.0と2.1.6の競合に関するエラーが発生しました。

ソリューションに多くのプロジェクトがあったため(VSは問題のあるプロジェクトに関するヒントを提供しなかったので、次の内容のDirectory.Build.propsファイルを作成し、.slnがあるディレクトリに配置しました。ファイルは

<Project>
  <PropertyGroup>
    <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
    <GenerateFullPaths>true</GenerateFullPaths>
    <LangVersion>latest</LangVersion>
  </PropertyGroup>
</Project>

ここで重要なのは、<TargetLatestRuntimePatch>エントリです。

この方法では、すべてのプロジェクトで同じ設定が使用され、それらを手動で同期する必要はありませんでした。

Directory.Build.propsのドキュメントはこちら https://docs.Microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2017

6
ToastedSoul

次のように問題を解決しました。

まず、次のコードを.csprojファイルに追加します

<PropertyGroup>
   <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
   <PlatformTarget>AnyCPU</PlatformTarget>
   <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

次に、Microsoft.AspNetCore.Appのバージョンが2.1.1であることを確認します。そうでない場合は、このバージョンをインストールしてください。

最後に、2.1.1バージョンでパッケージを復元します。復元するには、パッケージマネージャーコンソールから次のコードを実行します

Install-Package Microsoft.NETCore.App -Version 2.1.1
3
Alamgir

@Leo Liu-MSFTが言及したように、.csprojファイルでRuntimeFrameworkVersionRuntimeIdentifierを設定する必要がありました。

 <PropertyGroup>
   <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
   <PlatformTarget>AnyCPU</PlatformTarget>
   <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 </PropertyGroup>

しかし、その後重要、ソリューションのパッケージを復元する必要がありました。

2
Viqas