2016-03-03 20 views
7

İşimin özel bir NuGet repo'su var. Paketleri ondan ve nuget.org'dan yükleyebiliyorum. Özel repoda saklanan ve nuget.org üzerinde barındırılan bir pakete bağımlı olan bir paket olduğunda sorunlara karışıyorum. Örneğin, özel repoğum P1 paketine ev sahipliği yapıyor. P1, nuget.org üzerinde barındırılan P2'ye bağımlıdır. Özel repo ile bir "install-package P1" kaynak olarak ayarlanırsa, bağımlılık P2'yi bulamadığı için bir hata alırım. Bu, özel repoda P2'yi aradığından ve nuget.org'da barındırıldığından dolayı mantıklı. Şimdiye kadar, çözüm nuget.org'dan P2'yi kuruyor ve P1'i özel repo'dan kuruyor. Bu teknik olarak işe yarıyor ve sıkıcı bir şekilde, takımın geri kalanına NuGet satmayı zorlaştıracak.Birden fazla kaynağa bağımlılıkla birlikte NuGet paketinin kurulması

Neyse, birden çok kaynağa sahip yükleme paketi çalıştırabilir miyim? Ben -Source parametresine bir liste geçirmeyi denedim ama şu ana kadar

aldım NuGet.config görsel stüdyosu tarafından yönetiliyor, böylece her yaptığımda yaptığım her değişiklik bir nuget komutuyla her seferinde siliniyor. Görsel stüdyo. Çözüm düzeyinde ek bir nuget.config dosyası eklemeyi denedim ama göz ardı edildiğini söyleyebilirim. Ben yüklemek = paket komutunun birkaç ziyaretleri denedim ama genellikle şuna benzer: Referans olarak

Install-Package P1 -Source https://api.nuget.org/v3/index.json,http://privatefeed.com 

burada NuGet.config dosyasıdır ancak bunu değiştirmesini nafile görünüyor. NuGet.exe kullanma

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageRestore> 
    <add key="enabled" value="True" /> 
    <add key="automatic" value="True" /> 
    </packageRestore> 
    <packageSources> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> 
    <add key="Private Nuget" value="http://privatefeed.com" /> 
    </packageSources> 
    <disabledPackageSources> 
    <add key="Microsoft and .NET" value="true" /> 
    </disabledPackageSources> 
    <activePackageSource> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> 
    </activePackageSource> 
</configuration> 
+0

Bize kullanmakta olan komut satırı gösterebilir misin? Ve nuget.config içinde ne var – Petrik

+0

Elbette, yukarıdaki düzenlemelere bakın. –

+0

Eklemeler için teşekkürler. Bunu makinemde test ettim ve iyi çalışıyor. Yerel feed'imden (makinemde) bir paket alabilir ve bağımlılıkları nuget.org'dan alabilirim. Yani nuget.exe (komut satırı sürümü) çalıştırırsanız bir sonraki soru ne olurdu. Örneğin. nuget.exe p1'i yükleyin ve tüm paketleri kapıp kapmadığını görün. Ayrıca nuget ve VS hangi sürümleri var? – Petrik

cevap

1

, birden paket kaynaklarını belirtin -Source seçeneği tekrarlayabilirsiniz.

Örnek:

nuget install P1 -Source https://api.nuget.org/v3/index.json -Source http://privatefeed.com 

O Paketi kullanarak birden kaynaklar Konsolu (PowerShell) yönetme belirtmek imkansız görünüyor. Ancak, -Source belirtilmemişse, bir NuGet.Config dosyası kullanılır. Yapılandırma dosyası birden fazla paket kaynağına sahip olabilir ve dosyanın kendisi bir ekiple paylaşılabilir.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> 
    <add key="Private Nuget" value="http://privatefeed.com" /> 
    </packageSources> 
</configuration> 

NuGet.Config olarak çözümünüzle aynı dizine kaydedin ve sürüm denetimine ekleyin.

Yapılandırma değişikliklerinin etkili olabilmesi için görsel stüdyonuzu yeniden yüklemeniz gerekebileceğini unutmayın.

Artık paketleri -Source yapılandırmadan yükleyebilirsiniz.

Örnek:

Install-Package P1