SORU
7 ŞUBAT 2012, Salı


Otomatik NuGet oluşturma inşa sürecinin bir parçası olarak paketi

NuGet üzerinden dağıtma ben kitaplıkları oluşturmak, böylece uzatmak istiyorum otomatik bir inşa süreci var. Şu anda, nuget.exe paketleri oluşturmak için çalışan manuel bir işlemdir.

2010 o kadar Kur VS NuGet benim paketi (*.için en iyi yolu nedir nupkg) dosya bir sonuç "" yap? yayındır

Diğer dosyalar (içerik ve araçlar) paketleri bazıları için var unutmayın. Ve, çoğu durumda, desteklemek için birden fazla proje tek NuGet paketi ile birleşti .NET 4, Silveright ve Telefon 7.

(""Süreç bir çözüm Komut satırını kullanarak inşa eden toplu iş dosyası basit bir koşucudur.) otomatik mevcut açıklığa kavuşturmalıdır

GÜNCELLEME

Sorun çözülmüş değil, çünkü bu tartışma yenilemek istiyorum. Sırada link @pravin verilir yararlı, değil Adres aslında ben birden fazla proje tek bir paket gibi diğer içeriği gibi PowerShell komut, yapılandırma ve kaynak kod dönüşümleri, vb.

Kullanabileceğim en iyi örnek, hem de bir olan bir derleme .NET ve Silverlight 5 sürümü 4. Bu aynı paket içinde dağıtılır. Edemem sonrası inşa paketi İKİ proje bağımlı olduğu paketi oluşturmak için bir olay kullanın.

CEVAP
2 Mart 2012, Cuma


Pekala işe yarayabilecek bir şey özel bir MSBuild oluşturmaktır .dosya projen. Özel komut birkaç hedefleri, çözüm derleme yürütmek için ilk tanımlayabilirsiniz. Aşağıdaki derleme çalıştırmak için ikinci bir hedef nuget.exe komut satırı yardımcı programı çağırmak için EXEC MSBuild görevi kullanın. Sonra, sizin parti-runner dosya msbuild yürütülebilir özel proje argüman olarak dosya temin yürütmek için güncelleme. Zaten bu durumda sadece argüman olsun takas olur hangi parti senaryonu, MSBuild kullanarak olabilir. Senin çözümün çözüm öğeleri dosya projen için özel içerebilir. Eğer bunu yaparsan kolayca Visual Studio harici bir referans aracı hızlı bir şekilde özel komut umut gibi ve paketi üreten olduğundan emin olmak için test etmek için ekleyebilirsiniz.

Örnek MSBuild

Bir başlangıç noktası olarak kullanabilirsiniz:

<Project DefaultTargets="Compile" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
  <SolutionFile></SolutionFile>
  <NugetExecutable>C:\PathToNuget\nuget.exe</NugetExecutable>
  <NuspecFile></NuspecFile>
</PropertyGroup>

<Target Name = "Compile">
    <MSBuild Project="$(SolutionFile)" Properties="Configuration=Release" />
</Target>

<Target Name = "Package">
<!-- You could use the MSBuild Copy task here to move the compiled code into
       a structure that fits your desired package format -->
  <Exec Command=""$(NugetExecutable)" pack $(NuspecFile)" />
</Target>

Peki, o zaman şöyle diyebilirsin:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" Build.proj /p:SolutionFile=PathToSolution\App.sln;NuspecFile=foo.nuspec

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Need for Speed

    Need for Spe

    8 ŞUBAT 2006
  • tutvid

    tutvid

    19 AĞUSTOS 2006
  • Videojug

    Videojug

    25 EKİM 2006