NuGetパッケージをソリューションの2番目のプロジェクトにインストールするにはどうすればよいですか?


195

私は現在、最初に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 Package Managerに2番目のプロジェクトにパッケージをインストールするように説得するにはどうすればよいですか?

回答:


323

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にインストールされます。


3
3番目のアプローチはInstall-Package SomePackage、現在のプロジェクトにインストールするように要求するだけです。
ジャラル

1
しかし、「現在の」プロジェクトとは何でしょうか。
Zbigniew Wiadro

10
ドロップダウンで選択されたもの
davidfowl 2015

@jalal動作しません。VS2015で試してみてください。パッケージは常に、現在のプロジェクトではなく、最初のプロジェクトにインストールされます。
Eternal21 2016年

6
@ Eternal21パッケージマネージャーコンソールウィンドウのプロジェクトドロップダウンから現在のプロジェクトを選択できます。
Jalal

141

2つのアプローチがあります。

すでに学習したように、パッケージマネージャコンソールには、ソリューション内のプロジェクトを一覧表示するドロップダウンがあります。

もう1つの方法は、-Projectフラグを使用することです。それのいいところは、プロジェクト名をIntellisenseに与えることです!例えば:

Install-Package SomePackage -Project MvcApplication2

82

答えは、恥ずかしいことに盲目的に単純です。

「Package Manager Console」のツールバーには「Default Project」というタイトルのドロップダウンがあり、そこでプロジェクトを変更すると、パッケージを2番目のプロジェクトにインストールMy.Second.Project.NameできるようInstall-Package Castle.Windsorになります。


2
あなたは副詞の使用が信じられないほど、疑いもなく、楽しい
l --''''''--------- '' '' '' '' '' ''

15

Visual Studio 2015(Nuget v3.1.2以降)の構文は次のとおりです。

Install-Package ThePackage -ProjectName YourProjectName

注:-プロジェクト vs-プロジェクト


8

Visual Studioでは、にアクセスできますTools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution。そこから、プロジェクト間で共有するNugetパッケージを選択し、をクリックしますManage。これにより、インストールされている特定のNuGetパッケージを、他のどのプロジェクトにも追加できます。


1
私はこのウィンドウについて知りませんでした。超強力、いいね!
willem

私はこの機能を1時間探しました。本当にありがとうございました!
Marco Guignard

6

既存のプロジェクトから新しいプロジェクトにパッケージをコピーする必要があるだけの場合は、packages.configファイルを新しいプロジェクトにコピーおよび/または変更して実行します。 Update-Package -reinstall -Project YourProjectName


0

強制的に再インストールするオプションもあります。特定の問題で、これは私を助けました。

Update-Package Microsoft.Owin -Reinstall
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.