前回のWindowsの更新により、ビルドチェーン全体が壊れてしまい、その原因に少し困っています。
かなりの数のプロジェクト(Winform、カップルWebベース、一部のWebapiのみ)を含むVS 2017ソリューションであるレガシープロジェクトがあります。
ローカルのものは完全に動作します。私はそれらを構築することができます。
サーバーで、プロジェクトが失敗し始め、エラーは次のとおりです。
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5): Error : Your project file doesn't list 'win' as a "RuntimeIdentifier". You should add 'win' to the "RuntimeIdentifiers" property in your project file and then re-run NuGet restore.
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5): Error : Your project file doesn't list 'win' as a "RuntimeIdentifier". You should add 'win' to the "RuntimeIdentifiers" property in your project file and then re-run NuGet restore.
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5): Error : Your project file doesn't list 'win' as a "RuntimeIdentifier". You should add 'win' to the "RuntimeIdentifiers" property in your project file and then re-run NuGet restore.
Process 'msbuild.exe' exited with code '1'.
私が追加しました
<RuntimeIdentifiers>win</RuntimeIdentifiers>
多くのプロジェクトに。変化なし。エラーメッセージにはどのプロジェクトも表示されないので、私は途方に暮れています。
私の場合、これはAzureビルドで発生していました。
ビルドでVisual Studio 2019ツールを使用するように強制することで解決できました。
MSBuildステップにVS 2019のUseToolVersionが含まれるようにbuild.cakeファイルを次のように変更しました:
MSBuild(_solutionFile, settings => settings.SetConfiguration(_configuration)
.UseToolVersion(MSBuildToolVersion.VS2019));
私にとってうまくいった唯一のことは、すべてのプロジェクトファイルを削除して、バージョン管理から再度ダウンロードすることでした。その後、問題は消えました。
Azureパイプラインで常にこのエラーが発生します。これまでのところ、さまざまな状況で次の修正が行われていることに気づきました。1。suoファイルをコミットしない-該当する場合は削除して再コミットする2. binまたはobjフォルダーをコミットしない-該当する場合は削除して再コミットする3.場合新しいプロジェクトが追加され、ソリューションのプロパティにプロジェクトの依存関係を設定します-.slnファイルを保存してコミットします
Azure Service Fabricまたはその他の64ビット環境を対象とする場合は、一貫した<PlatformTarget>x64</PlatformTarget>
in all CSPROJファイルで定義された構成。私の場合、ローカルで正常にビルドされましたが、多くの構成の1つに<PlatformTarget>AnyCPU</PlatformTarget>
。
Msbuild v15.9.21で、元のポスターと同じエラーを受け取りました
Your project file doesn't list 'win' as a "RuntimeIdentifier". You should add 'win' to the "RuntimeIdentifiers" property in your project file and then re-run NuGet restore
私のプロジェクトは.net Framework v4.6.2です。プロジェクトはVS 2017を使用してローカルで正常にビルドされましたが、TeamCity Enterprise 10.0.5でビルドすると失敗しました。最近、プロジェクトを.packageからPackageReferenceに変換しました-これにより、ビルドが失敗します。
私のソリューションは、ソリューションをビルドする前に、ソリューションのnugetパッケージを明示的に復元する新しいビルドステップを追加することでした。プロジェクトをPackageReferenceに変換する前に、これはビルドステップで暗黙的に行われていたようです。