web-dev-qa-db-ja.com

.Net Framework 4.5から4.6.1にアップグレードした後のNugetの再ターゲット

約30のプロジェクトを含む.netソリューションがあり、それらはすべて.Net Framework 4.5を対象としています。それぞれが少なくとも3〜4個のNuGetパッケージを参照しています。

これらを.Net Framework 4.6.1に更新する必要があります。だからここに私が知る必要があるものがあります:

  1. NuGetパッケージも同様にターゲット変更する必要がありますか、これは「インプレース」アップグレードになるのでスキップできますか?
  2. はいの場合、各NuGetパッケージのtargetFramework = "net45"をtargetFramework = "net461"に置き換えることにより、各プロジェクトのpackages.configファイルを更新できますか? 「update-package」コマンドを使用して、パッケージをアンインストールしてから再インストールすることを推奨するスレッドを見てきました。今日それを試しましたが、いくつかのエラーが発生しました。
97
Vishal

パッケージは自動的にリターゲットされませんが、これに対する自動修正があります。

パッケージマネージャーコンソールで次を実行します。

Update-Package -Reinstall

これにより、パッケージマネージャーはすべてのプロジェクトのすべてのパッケージを(参照されているパッケージのバージョンを変更せずに)再インストールします。

新しいフレームワークをターゲットにした後にパッケージを再インストールすると、すべての参照が正しいバージョンに変更されます。

また、これを単一のプロジェクトに対して実行することもできます:

Update-Package -Reinstall -ProjectName Project.Name.Here

私はこの手法を何度も使用して、nugetの参照の問題を修正しました。

176
Ken Hundley

1すべての.csprojファイルを見つけて置き換えます

<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>

<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>

2パッケージマネージャーコンソールを開き、実行します

Update-Package -Reinstall -IgnoreDependencies

3すべてのソリューションを見つけて、それぞれをmsbuildします。

26
OzBob

-を使用して修正

更新パッケージ-reinstall

enter image description here

2
Deep