2016-03-25 30 views
3

.nupkg nuget paket dosyalarını oluştururken OctoPack'i inanılmaz şekilde ileriye dönük olarak buldum, ancak dahil .nuspec dosyasını dahil ediyorum (şu anda, obj/octopackage veya başka bir klasör gibi başka bir klasöre yerleştirilmiş) birlikte Şu lib/net452 klasöründe olması gereken her şey sadece kökünden yerleştirilirOctopack nuget package dosyasının hedef yolunu belirtin

enter image description here

: ve tüm DLL bir lib/net452 folder içine yerleştirilmelidir böylece genel yapısı gibi göründüğünü _rels ve package ile ve Belirtildiği gibi .nuspec dosyası eksik.

Ya belgeler biraz seyrek veya hata ayıklama zihinsel bulanıklığımda bunu nasıl yapabildiğimi tamamen özledim. OctoPack'e, özellikle, derlenmiş çıktıyı .nupkg dosyasında nereye yerleştirmek istediğinizi bilen var mı?

cevap

3

NuGet paketinizi oluşturmak için OctoPack değil, nuget.exe kullanıyor olmalısınız. Bir dakika içinde nedenini açıklayacağım.

.nuspec dosyası, NuGet paketiniz için "blueprint" işlevi görmektedir (.nupkg). Yani kısa cevap, <files> öğesinin target özelliğini kullanarak .nuspec dosyanızdaki konumu belirtmektir. Detaylar NuGet site bulunabilir, ancak böyle bir şey görünecektir:

<files> 
    <file src="bin\$configuration$\*.dll" target="lib\net452\" /> 
</files> 

post-build adımda nuget.exe aramaya birkaç yolu vardır; Birçoğu NuGet sitesinde de açıklanmıştır.

OctoPack, nuget.org için paketler yaratmak değildir; Octopus Deploy için paketler oluşturmak için özel olarak tasarlanmıştır. Bu paketleri iki yoldan birini oluşturur:

  1. bir web.config dosya mevcut olması durumunda, OctoPack proje bir web projesi olan ve buna göre çıkış paketler varsayar. Hangi öğelerin içerik olarak işaretlendiğini belirlemek için proje dosyasını kullanır ve (her zaman web.config dönüştürme dosyalarını yakalayacaktır).
  2. Aksi takdirde, OctoPack projenin bir yürütülebilir veya bir bileşen olduğunu varsayar ve çıktı klasöründe bulduğu her şeyi (genellikle \Debug\bin veya \Release\bin) paketler. Gördüğünüz davranış budur.

OctoPack başlık altında nuget.exe kullandığından, bir .nuspec dosya yukarıdaki durumların her ikisinde geçersiz kılar. Yani, , NuTet paketinizi oluşturmak için OctoPack'i kullanırken, nuget.exe'u kullanmak daha uygundur.