パッケージの復元を使用するときに.nugetフォルダーのnuget.exeを自動的に更新する方法はありますか?


92

私のチームは、Nuget 1.5以降、パッケージをソース管理外に保つために、パッケージの復元を有効にするオプションを使用しています。Nuget 1.6がリリースされたとき、パッケージをプルダウンしない問題に気付き、パッケージマネージャーと一致するように1.6に更新する必要がある.nugetフォルダーのNuget.exeまで追跡しました。

Nugetが更新された後にソリューションを更新する最良の方法は何ですか?スタジオからどのバージョンのnugetがソリューションフォルダーにあるかを簡単に確認する方法がわかりません。これまでのところ、.nugetフォルダーを削除し、[パッケージの復元を有効にする]コマンドを再実行しました。

回答:


148

コマンドラインからこのコマンドで.nuget \ nuget.exeを更新することをお勧めします:

nuget.exe update -self

[編集]:最初にVS Solutionを閉じます。アップデートがあり、ソリューションが開かれている場合、nuget.exeはソリューションから削除されます。

あなたは可能性があり、上記のコマンドを追加する.nu​​get \ nuget.targetsを変更することで、復元時に自動的に更新されnuget.exe。例として、そこの復元コマンドを見てみましょう。しかし、それだけの価値があるかどうかはわかりません。nuget.exeの更新はそれほど一般的ではなく、下位互換性が損なわれることはほとんどありません。


私は自分のプロジェクトの1つでこれを試しました。NuGet.exeを更新しましたが、私のソリューションから削除されたようです。追加できることはわかっていますが、奇妙に思えました。
リック

今回は実際のアップデートを試してみましたが、nuget.exeもVSソリューションから削除されました。(nuget.exeが最新の状態だったので、以前はそれがわかりませんでした)。これは、更新中に現在のnuget.exeが最初にnuget.exe.oldに移動され、ファイル参照が壊れるために発生します。これが修正されることはないと思います。ソリューションを閉じてコマンドを実行します。
Alexandre Dion

自己更新を実行しても新しいNuGet.targetsファイルが得られないようで、これが問題になる可能性があります。NuGetチームは、バージョン1.6と1.7の間でターゲットファイルにいくつかの変更を加えたと思います。
ウィリアムグロス

@William Grossでは、nuget.org / packages / NuGet.Build(nuget.targetsを含むパッケージ)の更新があるかどうかを確認できます
Alexandre Dion

私のために働きました、管理者としてcmdを実行することを忘れないでください
Mohammad

31

これを処理する最良の方法は、単に.nugetフォルダーを削除し、ソリューション全体のパッケージの復元を再度有効にすることです。上記のように、ビルドに自己更新コマンドを追加することはできますが、バージョン間で変更があった場合(またはソリューションから参照を削除した場合)はターゲットまたは構成ファイルを更新しません。おそらくそれほど大きな問題ではありませんが、これは最新のexeファイルと構成ファイルを確実に入手するための確実な方法です。そして結局のところ、更新は、新しいコマンドにアクセスする必要がある場合、または最終的に新しいリリースに重大な変更がある場合にのみ問題になります。


3
+1-これは、ファイルNuGet.exe と同様にを更新するための最良の方法であることがわかりましたNuGet.targets(これも重要です)。NuGet.targets新しいファイルに再度適用できるように、ファイルに加えたカスタマイズ(カスタムPackageSourceなど)を必ず保存してください。
Jesse Webb 2013年

チャームのように私のために働いた素晴らしい!! 情報ありがとう
ガイアン2014年

-3

David Ebboのブログを参照してください。

基本的には、.slnファイルの横にNuGet.Configファイルを作成するだけです。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear/>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="aspnetwebstacknightlyrelease" value="https://www.myget.org/f/aspnetwebstacknightlyrelease/" />
  </packageSources>
</configuration>

1
パッケージの復元を使用するときに、nuget.exeを最新バージョンに自動的に更新する方法を質問します。David Ebboのブログ投稿では、nuget.exeを使用してパッケージを復元する方法のみを説明しています。
フリス

おそらく、質問のどの部分に回答するかを指定する必要があります。質問のタイトルと承認された回答を見ると、この回答が間違っていると考えるのは簡単です...
Jens
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.