インターネット接続がないマシンで開発しなければならないときに、NuGetでパッケージを追加する方法。
デフォルトだとVisual Studioのパッケージソースはインターネット上のものだけが登録されているみたいなのでエラーになります。
この解決策としては、
- パッケージをパッケージソースからダウンロードしておく
- Visual Studioの設定でダウンロードしたフォルダをパッケージソースとして設定する
- 設定したパッケージソースからインストールする
とすることで、対応できます。
1.パッケージをパッケージソースからダウンロードしておく
https://www.nuget.org/へ行って、インストールしたいパッケージを検索。
パッケージページ右側の「Info」から、「Manual Download」で.nupkgファイルをダウンロード。
依存関係がある場合は、「Dependencies」下のリンクを辿って同じく.nupkgをダウンロード。
例えばMoqの場合、
Castle.Core (>= 4.2.1)
System.Threading.Tasks.Extensions (>= 4.3.0)
System.ValueTuple (>= 4.3.0)
の3つが必要になっているので、合計4つをダウンロードします。
2.Visual Studioの設定でダウンロードしたフォルダをパッケージソースとして設定する
Visual Studioのツールメニュー>オプションを開いて、NuGetパッケージ マネージャー>パッケージソースを選択。
「+」アイコンをクリックして、ソースは1でダウンロードした.nupkgファイルをおいた場所に設定します。
3.設定したパッケージソースからインストールする
Visual Studioのツールメニュー>オプションを開いて、NuGetパッケージ マネージャー>ソリューションのNuGetパッケージの管理を選択。
右上のパッケージソースで追加したソースを選択すると、ダウンロードしておいたパッケージが表示され、インストールが可能になります。
インターネットに接続できない環境で、インターネット上のパッケージソースを有効にしておくと、「リモート名を解決できませんでした。」というエラーが表示されました。
このときは、2のステップで、「利用可能なパッケージソース」欄のインターネット上のソースのチェックボックスをオフにすればエラーが出なくなりました。