CruiseControl.net, MSBuild, / p: OutputPath és CCNetArtifactDirectory

szavazat
15

Próbálom beállítani CruiseControl.net abban a pillanatban. Eddig működik, szép, de van egy probléma a MSBuild feladat.

Szerint a dokumentáció , átadja CCNetArtifactDirectory a MSBuild. De hogyan tudom használni?

Próbáltam ezt:

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

De ez nem működik. Tény, hogy megöli a szolgáltatás ezzel a hiba:

ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException: Hivatkozás ismeretlen szimbólum CCNetArtifactDirectory

A dokumentáció meglehetősen gyér, és a google und főleg ajánlatok módosításával .sln Project file, ami az, amit szeretnénk elkerülni annak érdekében, hogy képes legyen kézzel építeni a projekt későbbi - én tényleg inkább /p:OutputPath.

A kérdést 03/08/2008 22:25
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
6

A CCNetArtifactDirectory jut el a MSBuild alapértelmezés szerint így dont kell aggódni. MSBuild fogja hozni az építmények kimenet a „bin hely” releváns a munkakönyvtárba hogy megadta.

<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>

Tehát a fenti példában az építmény kimenet kerül a C: \ data \ projektek \ FooSolution [ProjectName] \ bin \ Debug. Amennyiben azt szeretnénk, hogy a kimenetet egy másik helyen érdemes megnézni a címkét CCNET.

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

Ez lehetővé teszi, hogy tegye közzé a kimenetet egy másik helyre.

Válaszolt 04/08/2008 05:45
a forrás felhasználó

szavazat
5

Használhatja a tárgy könyvtár átállítását belsejében MSBuild script is. Íme egy példa arra, hogyan futok FxCop most én CC.Net MSBuild script (ez a script, amit CC.Net pontot - van is egy „Build” target a forgatókönyv, amely tartalmaz egy MSBuild feladat ellen SLN hogy ami a tényleges válogatás):

<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"
/>
Válaszolt 04/08/2008 15:40
a forrás felhasználó

szavazat
2

Paraméterek, mint CCNetArtifactDirectoryátadott külső programok környezeti változók használatával. Rendelkezésre állnak a külső program, de ezek nem belső CCNETkonfigurációt. Ez gyakran félreértésekhez vezet.

Használhatja a preprocessor konstans helyett:

<cb:define project.artifactDirectory="C:\foo">
<project>
  <!-- [...] -->
  <artifactDirectory>$(project.artifactDirectory)</artifactDirectory>
  <!-- [...] -->
  <tasks>
    <!-- [...] -->
    <msbuild>
      <!-- [...] -->
      <buildArgs>/noconsolelogger /p:OutputPath=$(project.artifactDirectory)\test</buildArgs>
      <!-- [...] -->
    </msbuild>
    <!-- [...] -->
  </tasks>
  <!-- [...] -->
</project>
Válaszolt 26/02/2010 18:29
a forrás felhasználó

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