CruiseControl.net, MSBuild, / p: OutputPath και CCNetArtifactDirectory

ψήφοι
15

Προσπαθώ να CruiseControl.net ρύθμιση αυτή τη στιγμή. Μέχρι στιγμής λειτουργεί ωραίο, αλλά έχω ένα πρόβλημα με το MSBuild εργασία.

Σύμφωνα με την τεκμηρίωση , περνά CCNetArtifactDirectory να MSBuild. Αλλά πώς μπορώ να το χρησιμοποιήσω;

Προσπάθησα αυτό:

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

Αλλά αυτό δεν λειτουργεί. Στην πραγματικότητα, αυτό σκοτώνει την υπηρεσία με αυτό το σφάλμα:

ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException: Αναφορά σε άγνωστο σύμβολο CCNetArtifactDirectory

Η τεκμηρίωση είναι αρκετά αραιή και google und κυρίως προσφορές τροποποίηση του .sln αρχείο έργου, το οποίο είναι αυτό που θέλετε να αποφύγετε προκειμένου να είναι σε θέση να οικοδομήσουμε το χέρι το έργο αυτό αργότερα - που πραγματικά θα προτιμούσα /p:OutputPath.

Δημοσιεύθηκε 03/08/2008 στις 22:25
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
6

Η CCNetArtifactDirectory διοχετεύεται στο MSBuild από προεπιλογή, έτσι ώστε να μην χρειάζεται να ανησυχείτε γι 'αυτό. MSBuild θα τοποθετήσει την έξοδο κατασκευή του «θέση bin» σχετικά με τον κατάλογο εργασίας που έχετε ορίσει.

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

Έτσι, στο παραπάνω παράδειγμα εξόδου κατασκευή σας θα τεθεί σε C: \ data \ projects \ FooSolution [ProjectName] \ bin \ Debug. Σε περίπτωση που θέλετε να εμφανίσετε σε μια διαφορετική θέση μπορεί να θέλετε να εξετάσει την ετικέτα σε CCNET.

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

Αυτό θα σας επιτρέψει να δημοσιεύσετε έξοδο σας σε μια διαφορετική θέση.

Απαντήθηκε 04/08/2008 στις 05:45
πηγή χρήστη

ψήφοι
5

Μπορείτε να χρησιμοποιήσετε τη μεταβλητή κατάλογο τεχνούργημα μέσα στο ίδιο το σενάριο MSBuild. Εδώ είναι ένα παράδειγμα για το πώς Τρέχω FxCop τώρα από CC.Net σενάριο MSBuild μου (αυτό το σενάριο είναι αυτό που CC.Net σημεία - υπάρχει και ένα «χτίσει» στόχος στο σενάριο που περιλαμβάνει ένα έργο MSBuild κατά της SLN να κάνουν την πραγματική κατάρτιση):

<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"
/>
Απαντήθηκε 04/08/2008 στις 15:40
πηγή χρήστη

ψήφοι
2

Παράμετροι ήθελε CCNetArtifactDirectoryέχουν περάσει σε εξωτερικά προγράμματα που χρησιμοποιούν μεταβλητές περιβάλλοντος. Διατίθενται στο εξωτερικό πρόγραμμα, αλλά δεν είναι μέσα CCNETδιαμόρφωσης. Αυτό συχνά οδηγεί σε σύγχυση.

Μπορείτε να χρησιμοποιήσετε μια σταθερή προεπεξεργαστή, αντί:

<cb:define project.artifactDirectory="C:\foo">
<project>
  <!-- [...] -->
  <artifactDirectory>$(project.artifactDirectory)</artifactDirectory>
  <!-- [...] -->
  <tasks>
    <!-- [...] -->
    <msbuild>
      <!-- [...] -->
      <buildArgs>/noconsolelogger /p:OutputPath=$(project.artifactDirectory)\test</buildArgs>
      <!-- [...] -->
    </msbuild>
    <!-- [...] -->
  </tasks>
  <!-- [...] -->
</project>
Απαντήθηκε 26/02/2010 στις 18:29
πηγή χρήστη

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