現在、最初は1つのプロジェクト(My.First.Project.Name
)を含むソリューションに取り組んでいます。以下を実行してCastle Windsorをインストールしました。
Install-Package Castle.Windsor
ソリューションに別のプロジェクト(My.Second.Project.Name
)を追加し、Castle Windsorをこのプロジェクトにインストールしたいのですが、Install-Package Castle.Windsor
を再度実行すると、エラーが発生します。
「Castle.Core 2.5.2」はすでにインストールされています
「Castle.Windsor 2.5.2」はすでにインストールされています
My.First.Project.Nameにはすでに「Castle.Core 2.5.2」への参照があります
My.First.Project.Nameにはすでに「Castle.Windsor 2.5.2」への参照があります
だから私の質問は:NuGetパッケージマネージャーを説得して、パッケージを2番目のプロジェクトにインストールする方法です?
3つのアプローチがあります:)。
NuGet 1.1(最新リリース)では、Powershellパイプラインが改善されたため、次のことが可能になりました。
Get-Project -All | Install-Package SomePackage
これにより、すべてのプロジェクトに「SomePackage」がインストールされます。ワイルドカードを使用して、プロジェクトを絞り込むことができます。
Get-Project Mvc* | Install-Package SomePackage
ワイルドカードセマンティクスを使用します(この場合、mvcで始まるすべてのプロジェクトを見つけます)。
Get-Project SomeProject | Install-Package SomePackage
これにより、SomePackageがSomeProjectにインストールされ、それ以外は何もインストールされません。
2つのアプローチがあります。
既に学んだように、パッケージマネージャーコンソールには、ソリューション内のプロジェクトを一覧表示するドロップダウンがあります。
もう1つの方法は、-Projectフラグを使用することです。それについての良いところは、プロジェクト名とともにIntellisenseを提供することです!例えば:
Install-Package SomePackage -Project MvcApplication2
答えは、恥ずかしいほど、盲目的に単純です。
「パッケージマネージャーコンソール」のツールバーには「デフォルトプロジェクト」というタイトルのドロップダウンがあり、そこでプロジェクトをMy.Second.Project.Name
に変更すると、Install-Package Castle.Windsor
が2番目のプロジェクトにパッケージをインストールできます。
Visual Studio 2015(Nuget v3.1.2以降)の構文は次のとおりです。
Install-Package ThePackage -ProjectName YourProjectName
注:-Project Name vs -Project
Visual Studioでは、Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution
にアクセスできます。そこから、プロジェクト間で共有するNugetパッケージを選択し、Manage
をクリックします。これにより、特定のインストール済みNuGetパッケージを他のプロジェクトに追加できます。
既存のプロジェクトから新しいプロジェクトにパッケージをコピーする必要がある場合は、packages.configファイルを新しいプロジェクトにコピーまたは変更して、Update-Package -reinstall -Project YourProjectName
を実行します。
再インストールを強制するオプションもあります。いくつかの問題があるので、これは助けになりました。
Update-Package Microsoft.Owin -Reinstall