Bir NuGet paketini ikinci projeye bir çözümde nasıl kurabilirim?


195

Şu anda başlangıçta bir proje ( My.First.Project.Name) içeren bir çözüm üzerinde çalışıyorum . Windsor Kalesi'ni şu şekilde yükleyerek kurdum:

Install-Package Castle.Windsor

Çözüme yeni bir proje ( My.Second.Project.Name) ekledim ve bu projeye Windsor Kalesi'ni de yüklemek istiyorum, ancak Install-Package Castle.Windsortekrar çalıştırdığımda hatayı alıyorum:

'Castle.Core 2.5.2' zaten kurulu
'Castle.Windsor 2.5.2' zaten kurulu
My.First.Project.Name zaten bir 'Castle.Core 2.5.2' referansına
sahip My.First.Project.Name zaten bir 'Castle.Windsor 2.5.2' referansı

Benim sorum: NuGet Paket Yöneticisini paketi ikinci projeye kurmaya nasıl ikna edebilirim ?

Yanıtlar:


323

3 yaklaşım var :).
NuGet 1.1'de (en son sürüm) powershell boru hattını geliştirdik, böylece şunları yapabilirsiniz:

Get-Project -All | Install-Package SomePackage

Bu, tüm projelerinize "SomePackage" yükleyecektir. Hangi projeleri daraltmak için joker karakterler kullanabilirsiniz:

Get-Project Mvc* | Install-Package SomePackage

Bu joker semantik kullanır (bu durumda, mvc ile başlayan tüm projeleri bulun).

Get-Project SomeProject | Install-Package SomePackage

Bu, SomePackage'ı SomeProject'e yükler ve başka bir şey yapmaz.


3
ve 3. yaklaşım sadece Install-Package SomePackagemevcut projeye kurmaya çağırıyor .
Celal

1
Peki "mevcut" proje nedir?
Chris W

10
Açılır
menüden

@jalal Bu işe yaramıyor, sadece VS2015'te denedi. Paket her zaman ilk projeye yüklendi, mevcut projeye değil.
Ebedi21

6
@ Eternal21 Paket Yöneticisi Konsolu penceresinde proje açılır listesinden geçerli projeyi seçebilirsiniz.
Jalal

141

İki yaklaşım var.

Daha önce öğrendiğiniz gibi, Paket Yöneticisi Konsolu'nda çözümünüzdeki projeleri listeleyen bir açılır liste bulunur.

Diğer yaklaşım -Proje bayrağını kullanmaktır. Bu konuda güzel bir şey, proje isimleriyle size Intellisense kazandırması! Örneğin:

Install-Package SomePackage -Project MvcApplication2

82

Cevap, utanç verici bir şekilde, körü körüne basittir.

"Paket Yöneticisi Konsolu", araç çubuğunda "Varsayılan Proje" başlıklı bir açılır menüye sahip olup, projeyi orada değiştirerek paketi ikinci projeye yüklemeye My.Second.Project.Nameizin verir Install-Package Castle.Windsor.


2
kullanımı inanılmaz, tartışmasız, keyifli
l --''''''--------- '' '' '' '' '' '' '

15

Visual Studio 2015'te (Nuget v3.1.2'den itibaren) sözdizimi şimdi:

Install-Package ThePackage -ProjectName YourProjectName

Not: -Proje Adı - -Proje


8

Visual Studio'da, adresine gidebilirsiniz Tools -> NuGet Package Manager -> Manage NuGet Packages for the entire Solution. Oradan, projeler arasında paylaşmak istediğiniz Nuget Paketini seçin ve tıklayın Manage. Bu, istediğiniz diğer projelere belirli bir kurulu NuGet Paketi eklemenize izin verecektir.


1
Bu pencereyi hiç bilmiyordum. Süper güçlü, güzel!
willem

Bu işlevsellik etrafında bir saat geçiriyorum! Bunun için çok teşekkür ederim!
Marco Guignard

6

Sadece mevcut projeden yenisine paketleri kopyalamanız gerekiyorsa, Packages.config dosyasını yeni projeye kopyalayıp değiştirin ve çalıştırın Update-Package -reinstall -Project YourProjectName


0

Yeniden yüklemeyi zorlama seçeneği de vardır. Bazı problemlerle bu bana yardımcı oldu.

Update-Package Microsoft.Owin -Reinstall
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.