1. ホーム
  2. visual-studio

[解決済み] .nugetフォルダはバージョン管理に加えるべきですか?

2022-11-16 18:23:42

質問

NuGet の新しいバージョンでは、NuGet パッケージを自動的にリストアするようにプロジェクトを構成することが可能です。 packages フォルダーをソース コード リポジトリに含める必要はありません。良いことです。

しかし、このコマンドは新しい .nuget フォルダーが追加され、そこには NuGet.exe というバイナリーがあります。これは Visual Studio によって自動的に再作成されるため、バージョン管理にそれを追加するのは正しいとは思えません。しかし、このフォルダーがなければ、Visual Studio はソリューションを正しく読み込むことさえできません。

皆さんはどのようにこれに対処していますか?.nuget をソース コントロールに追加しますか。ソリューションを開く前に何らかのコマンド ライン スクリプトを実行しますか?

どのように解決するには?

この投稿は古いもので、もうソリューション レベルの NuGet パッケージ リストアを使用するべきではありません。 バージョン 2.7+ では、NuGet セットアップに、ビルド時にパッケージを自動的にリストアするオプションがあります。 そのため、.nuget フォルダを削除し、プロジェクトからこのオプションを削除することができます。

http://docs.nuget.org/docs/reference/package-restore

UPDATEです。 NuGet 4.x と .NET Standard 2.0 のリリースで、新しい csproj フォーマットを使用すると、パッケージ参照を使用できるようになり、皮肉にもパッケージを復元するために msbuild への依存が再び発生しますが、現在パッケージは msbuild の第一級市民です。 上記のリンク先では PackageReference についても言及していますが、以下のアナウンスの方がより詳細です。

https://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html

そして、NuGet 4.x RTM の発表ですが、皮肉なことに、これはそれほど有用ではありません。

https://blog.nuget.org/20170308/Announcing-NuGet-4.0-RTM.html

アップデイト2。 どうやらVS2017では、古典的なcsprojプロジェクトでパッケージ参照を使うこともできるようですが、もう後方互換性がなく、パッケージのサブ依存関係を復元するのに問題があったようです。 これはすべて解決されると思います。