web-dev-qa-db-ja.com

package.config更新は参照を更新しません

同じNuGetパッケージを参照する複数のプロジェクトがあります。最新のコードを入手したとき、プロジェクトの1つにpackage.configが更新されており、そのパッケージによって提供されるDllへの参照も更新されていることがわかりました。

また、他のプロジェクトのpackage.configも更新し、NuGetエンジンをアップグレードするとすぐにそれが表示され、新しいDLLが取得されることを期待しています。まあ、それは起こりませんでした。その後、私は次のことを試しましたが、どれも機能しませんでした:

  1. 古いバージョンのDLLを削除してからパッケージの復元を行う
  2. パッケージフォルダーを削除し、VS 2015を再起動してパッケージを復元する

また、面白いことに、Nugetパッケージの管理に移動して新しいDLLが必要なパッケージを見ると、既に新しいバージョンであり、アップグレードする必要がないことがわかります。

NuGetエンジンを使用してこれらのパッケージをアップグレードする方法はありますか?

15
Lost

Packages.configファイルを編集するだけでは、Visual Studioがプロジェクトに変更を加えることはありません。また、NuGet復元はプロジェクトを変更しません。 NuGet restoreは、NuGetパッケージをダウンロードして、プロジェクトで使用できるようにします。

Packages.configファイルを編集する代わりに、Visual StudioのNuGetパッケージマネージャーまたはパッケージ管理コンソールを使用して、必要なプロジェクトのNuGetパッケージを更新します。

その他の代替方法には、プロジェクトファイル(.csproj)を更新して、更新された正しいアセンブリ参照を使用することが含まれます。または、Update-Package -reinstall強制的にNuGetパッケージをアンインストールして、プロジェクトに再度インストールします。これにより、アセンブリ参照が修正されます。

19
Matt Ward

Visual Studio 2017でソリューションを開くことができる場合、最新のPackageReferenceを使用してnugetを管理することをお勧めします。 Packages.configにはいくつかの欠点があり、PackageReferenceはこれらの問題を解決します。

PackageReferenceに移行するソリューションは次のとおりです。 https://github.com/NuGet/Home/wiki/Packages.config-to-PackageReference-Migrator

また、これと拡張機能を使用できます: https://marketplace.visualstudio.com/items?itemName=TaylorSouthwickMSFT.NuGetPackagetoProjectjsonConverter

1
Feiyu Zhou