2014-04-24 11 views
5

Birkaç NuGet paketi üreten bir çözümüm var ve paketleri derleme sırasında paketliyorum. Gecelik yapıların ön sürüm olarak işaretlenmesini istiyorum, bu yüzden paketlerimi buna göre uyarladım: 1.2.3-PreRelease0001. Ancak, her gece yapılan bir test geçtiğinde, aynı paketi aynı paketlerle, ancak PreRelease olmayan bir sürüm kullanarak yayınlamak istiyorum: 1.2.3.NuGet paketlerini Üretim için hazır olarak bildirildikten sonra nasıl yeniden paketleyebilirim?

Soruma Soru: Bir NuGet paketini farklı bir sürümle nasıl yeniden paketleyebilirim? Bazı unzip/edit/nuget pack komut dosyasını kesebilirim, ama daha iyi bir yol var mı?

Alternatifler:

  • inşa sırasında paket etmeyin - Daha sonra yeniden çalıştırmak ayrı bir süreç, paket.
    Con: Ben inşa sırasında paket halinde, doğrudan kaynaklardan
  • Run başka yapı olmayan yayın öncesi sürümünü bu kez paketleme gelen <Content> dosyalara erişim olsun.
    Con:
  • gece PreRelease olarak inşa işaretleyin ve yerine ayrı depo bunları yayımlamak etmeyin ... Ben test aynı bit dağıtmak ister.
    Con: PreRelease paketleri bu şekilde işaretlenmez ve yayınlandığı gibi yanlış olabilir.
  • İki kere derleme sırasında paket: Bir kez PreRelease ile ve bir kez olmadan.
    Con: Kişiler, Ön Yüklemez sürümlerini geri yüklemek için cazip gelebilir. Belki de bunları bir araya getirebilirim.

cevap

1

Bir paketin meta verilerini NuGet'te değiştirmek için ortak bir API yoktur. Son çözüm, yani inşa sırasında prerelease ve prerelease olmayan paketlerin üretilmesini, en iyisi olduğunu söyleyebilirim.

Kişilerin yanlışlıkla yayın öncesi paketi kullanmalarını engellemek için, önce özel bir dizinde oluşturabilirsiniz. Daha sonra, yalnızca yapının testi geçtikten sonra yayınlayın.

Evet, nuspec dosyasını paketten ayıklayabilir, gerekli değişiklikleri yapabilir ve sonra dosyayı pakete geri kaydedebilirsiniz. Sorun, nuspec formatı değiştiğinde çalışmanın durması olabilir.

+0

İki kez paketleyeceğim. Teşekkürler! – Jonathan

İlgili konular