現時点では、Web APIとネットコア2.0を使用してC#でマイクロサービスを作成しています
nutgetパッケージで、ネットコアのバージョン2.1を既に見つけており、アプリを更新するためにそれをインストールすることにしました。以下に示すようにターゲットを変更しました
しかし、コンパイルしようとすると、このバグが生成されます
プロジェクトはMicrosoft.NETCore.Appバージョン2.1.0を使用して復元されましたが、現在の設定では、バージョン2.1.0-rtm-26515-03が代わりに使用されます。この問題を解決するには、復元と、ビルドや公開などの後続の操作に同じ設定が使用されていることを確認してください。通常、ビルドまたは公開中にRuntimeIdentifierプロパティが設定されているが復元中には設定されていない場合、この問題が発生する可能性があります。
そして、私の依存関係はそのままです
プロジェクトは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>
上記の回避策が機能しない場合は、 調査の問題 で回避策を確認してください。
詳細については、 自己完結型の展開ランタイムのロールフォワード を参照してください。
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
次のように問題を解決しました。
まず、次のコードを.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
@Leo Liu-MSFTが言及したように、.csprojファイルでRuntimeFrameworkVersion
とRuntimeIdentifier
を設定する必要がありました。
<PropertyGroup>
<RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
<PlatformTarget>AnyCPU</PlatformTarget>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
しかし、その後重要、ソリューションのパッケージを復元する必要がありました。