web-dev-qa-db-ja.com

ブランチ間の移行中のビルドエラー:プロジェクトは「.NETFramework、Version = v4.7.2」フレームワークを参照していません

Gitを使用しており、フルネットフレームワークを対象とするソリューションがあります。数日前、ソリューションを.netコアに移行し始めました。残念ながら、マスターブランチ(完全な.NETフレームワーク用のコードを持っている)に戻らざるを得なかったことがあります。アプリをビルドしようとするたびに、次のエラーが表示されます。

1> D:\ Program Files(x86)\ Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5):エラー:プロジェクトは ".NETFrameworkを参照していません。 Version = v4.7.2 "フレームワーク。 project.jsonの「frameworks」セクションで「.NETFramework、Version = v4.7.2」への参照を追加してから、NuGet復元を再実行します。

私はnugetパッケージをクリーンアップしてgit resetを実行しようとしましたが、何も役に立たないようです。何が起こっているのか考えていますか?

18
Luis Abreu

一部のプロジェクトを4.6.2から4.7.2にアップグレードするときに似たような問題がありました。これは、完全なフレームワークを対象としたASP.Net CoreソリューションとWPFソリューションの両方で発生しました。

当初、このエラーが発生したのはランダムなプロジェクトのようでした。csprojがほぼ同じである他のプロジェクトは正常にビルドされ、他のプロジェクトは失敗していました。メッセージの「再実行NuGet復元」も間違ったパスを送りました(これらのプロジェクトの一部はNuGet参照さえありませんでした...)

この問題は、project.assets.jsonファイルを含むプロジェクトobjフォルダーに起因するようです。これはいつ生成されたのかわかりません-おそらく過去の遺物であり、プロジェクトをクリーニングしてもこれは削除されません。ファイルは以前のフレームワークを指し、私の場合は4.6.2-ビルドしないプロジェクトごとにbin/objフォルダーを手動で削除してから、再構築することでこのエラーが解決されました。これはまた、正気のためにレポをクローンしたとき、それがうまく構築された理由も説明します。

36
MaxJ

Core互換ではないライブラリがあるかもしれません。 Nugetが4.7.2を期待/要求している場合、プロジェクトまたは私がベンチャーするライブラリのいずれかで、まだ何かがターゲットになっている可能性があります。また、復元するパッケージのターゲットがまだ4.7.2である場合、Nugetパッケージをクリーンアップして復元しても問題が解決しない理由を説明します。

関連するメモ、最新のプロジェクト構造を使用していると確信していますか?エラーメッセージにproject.jsonは、新しいcsproj形式を支持して廃止されました。詳細は こちら 該当する場合。 project.jsonに関するエラーメッセージが表示され、ソリューションにproject.jsonがなかったという状況を認識していません。

1
JosephRT