スティーブンが彼の答えで示したようにパッケージをソース管理から外しておく主な理由は、ソース管理サーバーによって保存され、ソース管理サーバーとの間で転送される必要があるデータの量を減らすことです。明らかに、すべてのハードウェアを制御する会社では、ディスク容量もネットワーク転送も問題になるはずはありませんが、必要がない場合、パッケージを処理するためにディスク容量/時間を無駄にする必要はありません。パッケージ ディレクトリのサイズは、ワークスペースの合計サイズのかなりの割合になる可能性があることに注意してください。私の場合、パッケージ ディレクトリは、TFS を使用する場合 (私の仕事用ワークスペースの場合) にワークスペース全体の 80% ~ 95% を占め、プライベート ワークスペース (git に基づいているため、.gitスペースを占有するディレクトリ)。
Nuget.org でのアクセスの問題を解決する 1 つの方法は、独自のローカル パッケージ リポジトリを用意することです。このローカル パッケージ リポジトリは、ローカルnuget Web サービスまたはサーバー上の単なる共有ディレクトリである可能性があります。リポジトリは会社の LAN 内にあるため、ビルド サーバーがローカルの nuget リポジトリに到達することは大きな問題にはなりません。このアプローチの副次的な利点は、ビルド プロセスが Nuget.org から独立していることです (非常にまれなケースではダウンします)。さらに重要なことは、どのパッケージがビルドに取り込まれるかを正確に把握できることです (それらは承認済みであるため)。ローカル リポジトリのパッケージ)。
私たちにとって、ローカル nuget リポジトリとパッケージ復元オプションを使用するかどうかの決定は、すべての内部ライブラリを nuget パッケージとしてパッケージ化するという決定に依存していました (開発プロセスについては、別の nuget の質問への回答で説明しました)。そのため、これらの内部パッケージを配布するためのローカル パッケージ リポジトリが必要でした。つまり、サードパーティのパッケージをこのリポジトリに追加するのは簡単で、パッケージの復元を使用することは完全に理にかなっています。内部ライブラリを nuget パッケージとしてパッケージ化しない場合は、それらをソリューションおよびコード ファイルと一緒にソース管理に配置します。その場合、サードパーティのライブラリに対して同じことを行うこともできます。
結局、それはすべてトレードオフです。ディスク容量とインフラストラクチャのセットアップの容易さなど。環境に最も適したソリューションを選択してください。