Bagaimana cara saya menginstal paket NuGet ke proyek kedua sebagai solusi?

195

Saat ini saya sedang mengerjakan solusi yang awalnya berisi satu proyek ( My.First.Project.Name). Saya telah menginstal Castle Windsor dengan menjalankan:

Install-Package Castle.Windsor

Saya baru saja menambahkan proyek lain ( My.Second.Project.Name) ke solusi dan ingin menginstal Castle Windsor ke proyek ini juga, tetapi ketika saya jalankan Install-Package Castle.Windsorlagi, saya mendapatkan kesalahan:

'Castle.Core 2.5.2' sudah terpasang
'Castle.Windsor 2.5.2' sudah menginstal
My.First.Project.Name sudah memiliki referensi ke 'Castle.Core 2.5.2'
My.First.Project.Name sudah memiliki referensi untuk 'Castle.Windsor 2.5.2'

Jadi pertanyaan saya adalah: Bagaimana saya membujuk Manajer Paket NuGet untuk menginstal paket ke proyek kedua ?

rampok
sumber

Jawaban:

323

Ada 3 pendekatan :).
Di NuGet 1.1 (Rilis terbaru) kami telah meningkatkan piping piping powershell sehingga Anda bisa melakukan ini:

Get-Project -All | Install-Package SomePackage

Itu akan menginstal "SomePackage" ke semua proyek Anda. Anda dapat menggunakan wildcard untuk mempersempit proyek mana:

Get-Project Mvc* | Install-Package SomePackage

Itu akan menggunakan semantik wildcard (dalam hal ini, cari semua proyek yang dimulai dengan mvc).

Get-Project SomeProject | Install-Package SomePackage

Itu akan menginstal SomePackage ke SomeProject dan tidak ada yang lain.

davidfowl
sumber
3
dan pendekatan ketiga hanya memanggil Install-Package SomePackageuntuk menginstalnya pada proyek saat ini.
Jalal
1
Tapi apa proyek "saat ini"?
Zbigniew Wiadro
10
Yang dipilih di dropdown
davidfowl
@jalal Itu tidak berhasil, coba saja di VS2015. Paket selalu diinstal ke proyek pertama, bukan yang sekarang.
Eternal21
6
@ Eternal21 Anda dapat memilih proyek saat ini dari drop-down proyek di jendela Package Manager Console.
Jalal
141

Ada dua pendekatan.

Seperti yang sudah Anda pelajari, Konsol Manajer Paket memiliki drop down yang mencantumkan proyek dalam solusi Anda.

Pendekatan lainnya adalah menggunakan flag -Project. Yang menyenangkan tentang itu adalah memberi Anda Intellisense dengan nama proyek! Sebagai contoh:

Install-Package SomePackage -Project MvcApplication2
Haacked
sumber
82

Jawabannya adalah, secara sederhana, secara membabi buta sederhana.

"Package Manager Console" memiliki drop-down berjudul "Default Project" di bilah alatnya, mengubah proyek di sana untuk My.Second.Project.Namekemudian memungkinkan Install-Package Castle.Windsoruntuk menginstal paket ke proyek kedua.

rampok
sumber
2
Anda adverbia penggunaan luar biasa, tidak diragukan lagi, menyenangkan
l --''''''--------- '' '' '' '' '' ''
15

Dalam Visual Studio 2015 (per Nuget v3.1.2) sintaksnya sekarang:

Install-Package ThePackage -ProjectName YourProjectName

Catatan: Nama- Proyek vs -Proyek

Tom Studee
sumber
8

Di Visual Studio, Anda bisa pergi ke Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution. Dari sana, pilih Paket Nuget yang ingin Anda bagikan antar proyek dan klik Manage. Ini akan memungkinkan Anda untuk menambahkan Paket NuGet yang diinstal khusus ke proyek lain yang Anda inginkan.

SaiyanGirl
sumber
1
Saya tidak pernah tahu tentang jendela ini. Sangat kuat, bagus!
willem
Saya telah menghabiskan satu jam melihat-lihat fungsi ini! Terima kasih banyak untuk yang ini!
Marco Guignard
6

Jika Anda hanya perlu menyalin paket dari proyek yang ada ke yang baru, cukup salin dan / atau modifikasi file paket.config ke proyek baru dan jalankan Update-Package -reinstall -Project YourProjectName

AdvanTiSS
sumber
0

Ada juga opsi untuk memaksa menginstal ulang. Dengan masalah tertentu, ini membantu saya.

Update-Package Microsoft.Owin -Reinstall
Damian Vogel
sumber