sırasında son sürümüne bir Nuget paketi güncellenemiyor. Bu DLL'ler müşterilerimize bir NuGet paketi ile teslim edilir. otomatik Biz iki ayrı .NET çözümler var yapı
- Önce Nuget Paketi Restore sağladı. Bu, package.config dosyasında tanımlı olan paketin, inşa edilmeden önce otomatik olarak NuGet tarafından indirileceğinden, "paketler" dizininden tamamen VCS'den kurtulmamı sağlar.
- Sonra Visual Studio:
$(SolutionDir).nuget\nuget update -prerelease $(ProjectDir)packages.config
aşağıdaki ön oluşturma olay ekledi. Bu, oluşturma sırasında NuGet paketimizin en son sürümünü çekmeme izin veriyor.
Şu anda Visual Studio'yu kullanarak yerel yapıları çalıştırmak ve TeamCity'yi kullanarak gözetimsiz yapıları çalıştırmak için yukarıdaki senaryoyu kullanıyorum. Çözüm, ilk görüşte her iki senaryo için de çalışıyor gibi görünüyor, ancak aslında beklenen sonuç üretmiyor: ürün test çözümünü oluşturulduğunda, bin
dizininde DLL'lerin en son sürümünü almıyorum, sadece en son-1 sürümü.
sorun olduğunu nedenle yapı tarafından yakalandı değildir onların yeni içerik packages.config
ve .csproj
dosyası da dahil olmak üzere beklendiği gibi nuget update
komut güncellemeleri her şeyin rağmen - benim tahminim gider - HintPath ayarları .csproj
dosyasından hala bir "önce inşa" durumu yansıtacak, bu nedenle eski DLL dosyaları bin
dizinine kopyalanır. .csproj
dosyasının yalnızca bir kez işlendiğini varsayardım: Önceden oluşturulmuş olay tetiklenmeden önce ve önceden oluşturulmuş olay tarafından yapılan değişiklikler bir sonraki yapıya kadar yok sayılır. Görünüşe öncesi inşa yeterli "ön" değil
- : Ben aşağıdaki çözümleri düşündü. Daha erken bir nokta varsa,
nuget update
komutunu ekleyebilirdim, yukarıdaki çözümüm muhtemelen işe yarayacaktı. - Bir ReferencePath tanımlayarak .csproj dosyasındaki HintPath-s'yi geçersiz kılabildiğimi okudum. Ama doğru yolu kolayca anlayabildiğinden şüphe edeyim ya da onu yeterince erken kurabilirdim, böylece yapı onu alır.
- Bir geçici çözüm olarak iki kez yapılandırabilirim: TeamCity ürün testi çözümü için derleme adımını çoğaltın ve Visual Studio'da her zaman yerel olarak iki kez çözüm oluşturabilirim.
Yapı sırasında bir NuGet paketini en son sürüme otomatik olarak nasıl güncelleyeceğini anlayan biri var mı?
http://brendanforster.com/doing-the-build-server-dance-with-nuget.html –
@DavidBrabant - Bu uzun bir okumadır. Paket güncellemesini ayrı bir oluşturma adımına taşımanız mı öneriliyor? – remark
@DavidBrabant, blog yayınının bağlantısı için çok teşekkürler. –