2013-02-08 23 views
5

yanlış yerlere ambalajlanarak App_Start dahil edilmedi, ancak ekstra içerik klasörü görünümler için ekleniyordu ... aşağıdaki açıklama)Nuget dosyalarım dosya spec ile Nuget Spec dosyası var

Projenin kendisi

biçiminde düzenlenmiştir

  • :

    \<root> 
    |_ readme.txt 
    |_ content 
         |_ content 
         | |_ Views 
         |   |_ Home 
         |    |_ <viewname>.cshtml 
         |    |_ <viewname2>.cshtml 
         |_ App_Start 
         | |_ <PreprocessFilename>.cs.pp 
         |_ readme.txt 
    

    Yani saygı ile dosya yollarını ambalaj Nuget için: bana garip davranışlar gibi görünen ne

    \<root> 
    |_ readme.txt 
    |_ content 
         |_ Views 
         | |_ Home 
         |   |_ <viewname>.cshtml 
         |   |_ <viewname2>.cshtml 
         |_ App_Start 
          |_ <PreprocessFilename>.cs.pp 
    

    ancak Nuget paketi yapısı ile bir zip dosyası üretiyor olmasıdır Readme.txt neden iki yerde çoğaltılıyor?

  • Görünümlere neden ikinci bir 'içerik' alt klasörü verilir? (App_Start değil)
  • İçerik klasörümün kopyasını, gerçek yapının tam olarak ne olduğunu nasıl yansıtabilirim?
  • nasıl alakalı ise, ben paket oluşturmak için bir .csproj dosyası kullanıyorum

nuspec dosya daha "sürdürülebilir" hale getirmek için <file src="content\*" target="content" /> yönergesi dönebilirsiniz.

+0

Alex - Sorunu, yinelenen readme.txt dosyasıyla çözdünüz mü? – Randy

cevap

0

Aynı sorunu yaşıyorum, etrafta çalışabildim ama bir hack IMO. Daha iyi bir çözüm görmeyi çok isterim çünkü projemde direk pakette beklediğim dir ağaç var ama bu işe bugün ihtiyacım vardı .......

Ne yapmam gerekti Bu ben sonuna kadar istediği alt dir ayarlı hedefte sonra kök düzeyinde içerik dir dışarı ve yerde tüm alt dir çekin oldu.

<file src="Scripts\" target="content\Scripts" /> 
0

davranış olarak görünüyor sizi o Bir .csproject nuget pack MyProject.csproj'u paketleyin, önce paketi proje yapınıza göre düzenleyin ve daha sonra ek talimatlar için nuspec'e bakın. Ancak nuspec'in nu aldığına dair herhangi bir yol görünmüyor. Bu, proje tarafından paketlendiğinde önceki adımda eklenen içeriğini kaldırıyor.

Bu nedenle, varsayılan proje yapısı paketinizde istenmeyen içeriğe yol açıyorsa, bunun yerine doğrudan .nuspec ile paketlemeye bel bağlamanız gerekir. nuget pack MyProject.nuspec Ardından, nuspec öğesinde belirtilen içeriği yalnızca içeriği tam olarak istediğiniz şekilde tanımlayabileceğiniz içeriği getirecektir.

Eğer neredeyse istediğiniz yapıya sahip büyük bir proje varsa, ilk projeden paketi oluşturmak daha sonra ihtiyaç uyum sağlaması ve bu paketten bir nuspec ayıklamak için Nuget Package Explorer kullanmak daha uygun olabilir ve sonunda karşı koyduğun. Bu şekilde onu sıfırdan inşa etmek zorunda değilsiniz.

Düzenleme

Ya da ... Sen bazı belirli dosyaları görmezden gelip bu olacak .nuspec içinde bu dosyalar için özel bir şartname yazma söylemek bir .csproj üzerinde -Exclude parameter ile paketleme yürütebilir Ek veriler için otomatik olarak okunmalıdır.

Şahsen, paketiniz için tek tanımınız olarak .nuspec'e sahip olmanın daha özlü olduğunu buluyorum.