2015-09-30 12 views
5

Bir CI'da oluşturulmuş, her oluşturduklarında yayın öncesi yayınlayan birçok kütüphaneye sahibiz. Diğer projeler bunlara dayanır ve inşa sırasında bunları otomatik olarak günceller.Bir NuGet paketindeki bir referansın Özel Sürüm özelliğini ne kontrol eder?

Ancak başvurular, Özel Sürüm = true ile ayarlanır; bu, bu dll'deki sürüm sayısını artırmanın yapının başarısız olmasına neden olduğu anlamına gelir.

Mülkün ayarını nasıl kontrol edebilirim?

cevap

4

Kaynak kodunu değiştirmeden NuGet'in davranışını değiştiremezsiniz. Visual Studio'nun içinden GAC olmayan bir derleme eklerken NuGet will always sets SpecificVersion to true.

Referansları düzeltmek veya manuel olarak değiştirmek için bir çeşit post build script'i çalıştırmanız gerekir.

CI sunucunuzdaki projeleri nasıl güncelleştirdiğinizden tam olarak emin değilsiniz. NuGet.exe update project.csproj kullanırsanız, bu en son NuGet paketine güncellenir ve SpecificVersion öğesini true olarak ayarlamaz. Ancak komut satırı uygulaması PowerShell komut dosyalarını veya içerik dosyalarını desteklemez, yalnızca referanslar güncellenir. Bu ayrıca mevcut bir güncelleme olduğunu varsayarsa, referans değiştirilmeyecektir.

+0

Çözümüm için tüm paketleri almak için komut satırından NuGet geri yüklemesini kullanıyorum. Paketler, yeni bir derleme için sürüm numarasının hiçbiri değişmediği, 1.0.0-en son sürüm olarak, bu işi komut satırından yapamadım. Dll svn numarası olan dördüncü bir sürüm numarası alır. Her yapı için bu sayı artırıldı. – Julius

+0

Cevabınızda, nuget her zaman SpecificVersion öğesini true olarak ayarlayacağınızı, ancak daha sonra, Nuget.exe update project.csproj dosyasını kullanırsanız, daha sonra söz konusu ifadeyi en son NuGet paketine güncelleyeceğini ve SpecialVersion değerini ayarlayamayacağınızı söyleyeceğini söyleyin (SpecificVersion'ı kastettiğinizi varsayar) doğru SpecificVersion ayarını yapmamak, gerçek gibi görünen varsayılanı kullanacağı anlamına mı geliyor? –

+0

Komut satırı nugeti, görsel stüdyonda nuget 2'ye farklı davranır. –