NuGetパッケージの.nupkgファイルをローカルにインストールするにはどうすればよいですか?


回答:


462

メニューツールオプションパッケージマネージャ

ここに画像の説明を入力してください

名前とフォルダの場所を指定します。OKをクリックします。NuGetパッケージファイルをそのフォルダーにドロップします。

プロジェクトに移動し、右クリックして[NuGetパッケージの管理 ]を選択し、新しいパッケージソースを選択します。

ここに画像の説明を入力してください

こちらがドキュメントです。


22
実際、ステップ1を数回実行しました。しかし、インストールされたパッケージ、更新プログラム、または最近のパッケージを表示するために開くと、ステップ2でパッケージが表示されません。
トム

2
私の画面では、「インストール済みパッケージ」の下に「すべて」しかなく、「NuGet公式パッケージソース」ではなく、カスタム「newNuget」がありません。
トム

1
vs2010を使用しています。今すぐ彼らのホームページから最新のnugetをダウンロードしてインストールしようとしています。ダウンロードクリック次へ次へ...次にエラー... M $予想どおり、既知の問題のリンクがあり、チェックされていること、署名の不一致が示されていること、既存のnugetをアンインストールする必要があること、それは簡単に修正できます。いいですよ コンピュータを再起動して再度インストールすると、同じエラーが返され、署名が一致しません...古いバージョンがなくなってしまい、新しいバージョンをインストールしたくありません。
トム

2
問題が修正されました。nugetをWindows->コントロールパネルからアンインストールしました。それはそのようには機能しませんでした。VSを起動して[ツール]-> [拡張機能マネージャー]に移動する必要があり、そこからアンインストールnugetをクリックします。VSを再起動しました。その後、再度nugetをインストールしに行きましたが、うまくいきました。これで、ローカルのnupkgファイルも表示されます(編集:[インストール済み]タブではなく、[オンライン]タブにあります。投稿した写真の間違い)。助けてくれてありがとう:)
トム

1
まだコメントするほどの評判はありませんが、VS2015についてまだ認められている回答コメントでMichaelに答えて、まだオンラインにしたいと思っています。私は同じ問題を抱えていましたが、オプションでは、すべてのオンラインソースのチェックを外すと、オフラインソースで機能します。nuget Options pic
Mick m

302

パッケージマネージャーコンソールを使用Install-Packageして、-Sourceパラメーターでパッケージファイルを含むディレクトリへのパスを指定することにより、コマンドレットを呼び出すこともできます。

Install-Package SomePackage -Source C:\PathToThePackageDir\

2
コマンドラインツールでもそのようなことができますか?
ポールK.ソレンセン2013年

5
はい。この-Sourceオプションは、nuget.exeでも使用できます。例:nuget install SomePackage -Source C:\PathToThePackageDir
Enrico Campidoglio 2013年

16
-IncludePrereleaseフラグも指定する必要がある場合があります。そうでない場合、パッケージバージョンにダッシュサフィックス(「-beta1」など)が含まれていると、Install-Packageはそれを見つけられません。
Jeff Sharp

9
これは、受け入れられたものよりもはるかに直接的な答えです。情報をありがとう!
デビッドピーターズ14

2
VS 2017では機能しません。f.exを参照してください。@Grangerによる回答。
RenniePet 2018年

124

使用したい.nupkgファイル:

Install-Package C:\Path\To\Some\File.nupkg

7
うまくいったものだけ。ディレクトリへのパスにスペースが含まれる場合は、二重引用符で囲みます。
ニコス2017

4
同意します。絶対パスのみが機能することにも言及する価値があります
Sebastian J.

5
VS 2017では機能しません。f.exを参照してください。@Grangerによる回答。
RenniePet 2018年

1
VS2017で私のために働いた@RenniePet(ただし.nupkg、他のすべてのパッケージが格納されているすべてのディレクトリにすでに同じディレクトリに配置していた)
Rafalon

1
それは私のために機能していません、私はVS2013バージョン12.0.21..5とNugetパッケージマネージャー2.12.0.817を使用しています:(
Niraj Trivedi

56

Visual Studio 2017とその新しい.csproj形式

Install-Packageを使用してローカルファイルをポイントすることはできなくなりました。(それはおそらくPackageReference要素がファイルパスをサポートしていないためです。パッケージのIDを指定することしかできません。)

最初にパッケージの場所をVisual Studioに通知する必要があります。次に、パッケージをプロジェクトに追加できます。ほとんどの場合、NuGetパッケージマネージャーに移動し、ローカルフォルダーをソースとして追加します(メニューの[ ツール ] →[ オプション ] →[ NuGetパッケージマネージャー] →[ パッケージソース])。しかし、それは依存関係の場所がコードベースの他の部分と(バージョン管理に)コミットされていないことを意味します。

相対パスを使用するローカルNuGetパッケージ

これにより、特定のソリューションにのみ適用されるパッケージソースが追加され、相対パスを使用できます。

あなたnuget.configと同じディレクトリにファイルを作成する必要があります.slnます。必要なパッケージソースでファイルを構成します。次にVisual Studio 2017でソリューションを開くと、これらのソースフォルダーからの.nupkgファイルがすべて利用可能になります。(ソースがパッケージマネージャーに一覧表示され、プロジェクトのパッケージを管理しているときに[参照]タブにパッケージが表示されます。)

ここnuget.configにあなたが始めるための例があります:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

バックストーリー

この機能の使用例は、マシンに単一のコードリポジトリの複数のインスタンスがあることです。.nu​​pkgファイルとして公開/展開されるコードベース内の共有ライブラリがあります。このアプローチにより、コードベース全体でさまざまな依存ソリューションが同じリポジトリインスタンス内のパッケージを使用できるようになります。また、Visual Studio 2017を新規インストールした人は、どこにいてもコードをチェックアウトでき、依存するソリューションは正常に復元およびビルドされます。


私はVS 2017を使用していますが、この問題に遭遇していません。-Source引数を渡したところUpdate-Package、問題なく動作しました。多分特にInstall-Packageコマンドで何かするのですか?
Greg Burghardt

48
  1. ソリューションの横にあるLocalPackagesというフォルダーにファイルを追加します(これを呼び出す必要はありませんが、次の手順でxmlを適宜調整してください)。
  2. ソリューションファイルの横に、次の内容でNuGet.configというファイルを作成します。

    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <add key="LocalPackages" value="./LocalPackages" />
        </packageSources>
        <activePackageSource>
          <!-- this tells that all of them are active -->
          <add key="All" value="(Aggregate source)" />
        </activePackageSource>
     </configuration>
  3. ソリューションがVisual Studioで開いている場合は、閉じてから再度開きます。

これで、パッケージがブラウザーに表示されるか、Install-Packageを使用してインストール可能になります。


素晴らしい答え、まさに私が探していた解決策。ありがとう!
ジョナサン

1
これは、Nugetリポジトリにあるパッケージと同じ名前のパッケージがあるためと考えられますが、Install-Packageを実行する前に、パッケージマネージャーコンソールを使用してパッケージソースをLocalPackagesとして選択する必要がありました。
ルーク、

42

.nu​​pkgファイルがあり、.dllファイルが必要な場合は、拡張子を.zipに変更してlibディレクトリを見つけるだけです。


3
それをzipファイルとして扱う場合、ファイル名にスペースがあるファイルは%で抽出されます(スペースを置き換える)。NuGetを使用してこのインストールを回避するには。
Rahatur

2
実際には、拡張子の名前を変更する必要さえありません。ファイルを右クリックして、[プログラムから開く]を選択し、.zipファイルを開くことができるアプリケーションを見つけます。.nupkgファイルを開いて、必要なdllファイルを指定したフォルダーに抽出できます。
jyao

1
私が必要とする最適なソリューション
レオ・グエン

8

更新を行うためだけに、Visual Studio 2015ユーザー向けに小さな変更があります。

パッケージを手動で使用またはインストールするには、[ ツール] -> [ オプション] -> [ NuGetパッケージマネージャー] -> に移動します。パッケージソース]に移動します。

[追加]ボタンをクリックし、ソースを選択します。パッケージのフォルダーの場所が更新されるため、[ 更新 ]をクリックすることを忘れないでください。必要に応じて、パッケージソースの名前を編集します。

ここに画像の説明を入力してください

追加したパッケージを選択するには、ソリューションを右クリックして[Nugetパッケージの管理 ]を選択します

ドロップダウンリストは右側にあり、[参照]を選択して、フォルダーソースで指定したパッケージを参照します。そのフォルダーソースにnugetパッケージがない場合、これは空になります。

ここに画像の説明を入力してください


6

Linuxでは、NuGet CLIを使用すると、コマンドは同様です。my.nupkgをインストールするには、次を実行します。

nuget add -Source some/directory my.nupkg

次にdotnet restore、そのディレクトリから実行します

dotnet restore --source some/directory Project.sln

またはそのディレクトリをNuGetソースとして追加する

nuget sources Add -Name MySource -Source some/directory

そして、またはでmsbuildそのディレクトリを使用するように指示します。2番目のスイッチは他のすべてのソースを無効にします。これは、たとえばオフラインのシナリオに適しています。/p:RestoreAdditionalSources=MySource/p:RestoreSources=MySource


1
Mac(Linuxも想定しています)では、このバグのために(またはVS Macnuget sourcesを使用している場合は信頼できません。ローカルソースを手動で追加する必要がありました(このGHの問題を参照)。dotnet restore~/.nuget/NuGet/NuGet.Config
gabe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.