CruiseControl.net, Msbuild / s: OutputPath ve CCNetArtifactDirectory

oy
15

Şu anda kurulum cruisecontrol.net çalışıyorum. Şimdiye kadar güzel çalışıyor, ama MSBuild Görevi Bir Sorun var.

Göre Belgeler , bu MSBuild için CCNetArtifactDirectory geçer. Ama nasıl kullanabilirim?

Bu çalıştı:

<buildArgs>
   /noconsolelogger /p:OutputPath=$(CCNetArtifactDirectory)\test
</buildArgs>

Ama bu işe yaramaz. Aslında, bu hata ile hizmet öldürür:

ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException: bilinmiyor sembole Referans CCNetArtifactDirectory

Belgeler oldukça seyrek ve und ağırlıklı daha sonra elle bu projeyi inşa edebilmek için kaçınmak istediğiniz nedir .Sln Proje dosyasını değiştirerek teklifleri google - Gerçekten tercih ediyorum /p:OutputPath.

Oluştur 03/08/2008 saat 22:25
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
6

CCNetArtifactDirectory varsayılan olarak MSBuild geçirilir, böylece bu konuda endişelenmenize gerek yok. MSBuild belirlediğiniz çalışma dizinine ilgili "Bin konumda" inşa çıkışını yerleştirecektir.

<executable>c:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<workingDirectory>C:\data\projects\FooSolution\</workingDirectory>
<projectFile>FooSolution.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug </buildArgs>

Yani yukarıdaki örnekte, yapı çıktı C konacaktır: \ data \ proje \ FooSolution [ProjeAdı] \ Bin \ Debug. Eğer farklı bir konuma çıktı istesin sen ccnet etiketin bakmak isteyebilirsiniz.

<publishers>
  <xmllogger />
  <buildpublisher>
    <sourceDir>C:\data\projects\FooSolution\FooProject\bin\Debug</sourceDir>
    <publishDir>C:\published\FooSolution\</publishDir>
    <useLabelSubDirectory>false</useLabelSubDirectory>
  </buildpublisher>
</publishers>

Bu farklı bir konuma çıktı yayınlamak için izin verecektir.

Cevap 04/08/2008 saat 05:45
kaynak kullanıcı

oy
5

Sen MSBuild komut kendi içinde yapay dizin değişkeni kullanabilirsiniz. için SLN karşı bir MSBuild görevi içeren komut bir "İnşa" hedef de var - İşte benim CC.Net MSBuild komut dosyasından şu anda FxCop koşuyorum nasıl bir örnek (bu komut puan CC.Net budur ) fiili derleme yapın:

<Exec
  Command='FxCopCmd.exe /project:"$(MSBuildProjectDirectory)\FXCopRules.FxCop" /out:"$(CCNetArtifactDirectory)\ProjectName.FxCop.xml"'
  WorkingDirectory="C:\Program Files\Microsoft FxCop 1.35"
  ContinueOnError="true"
  IgnoreExitCode="true"
/>
Cevap 04/08/2008 saat 15:40
kaynak kullanıcı

oy
2

Parametreler gibi CCNetArtifactDirectoryortam değişkenleri kullanarak harici programlara geçirilir. Bunlar harici bir program mevcuttur ancak bunlar içinde değildir CCNETyapılandırması. Bu genellikle karışıklığa yol açar.

Onun yerine bir önişlemci sabitini kullanabilirsiniz:

<cb:define project.artifactDirectory="C:\foo">
<project>
  <!-- [...] -->
  <artifactDirectory>$(project.artifactDirectory)</artifactDirectory>
  <!-- [...] -->
  <tasks>
    <!-- [...] -->
    <msbuild>
      <!-- [...] -->
      <buildArgs>/noconsolelogger /p:OutputPath=$(project.artifactDirectory)\test</buildArgs>
      <!-- [...] -->
    </msbuild>
    <!-- [...] -->
  </tasks>
  <!-- [...] -->
</project>
Cevap 26/02/2010 saat 18:29
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more