Domanda

Abbiamo la configurazione CC.NET sulla nostra app ASP.NET. Quando compiliamo il progetto, l'app ASP.NET viene precompilata e copiata in una condivisione di rete, da cui un server esegue l'applicazione.

Il server è un po 'diverso dalle caselle di sviluppo e il server successivo nel nostro ambiente di gestione temporanea differisce ancora di più. La differenza sono i file di configurazione specifici e così via - quindi voglio escludere alcuni file - o eliminarli prima che l'app precompilata venga copiata in una condivisione di rete.

Il mio file di configurazione è simile al seguente:

    <project name="Assembly.Web.project">
    <triggers>
        <intervalTrigger seconds="3600" />
    </triggers>
    <sourcecontrol type="svn">
        <trunkUrl>svn://svn-server/MyApp/Web/Trunk</trunkUrl>
        <workingDirectory>C:\build-server\Assembly\Web\TEST-HL</workingDirectory>
    <executable>C:\Program Files (x86)\SVN 1.5 bin\svn.exe</executable>
    <username>uid</username>
    <password>pwd</password>
    </sourcecontrol>
    <tasks>
        <msbuild>
          <executable>C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe</executable>
          <workingDirectory>C:\build-server\Assembly\Web\TEST-HL</workingDirectory>
          <projectFile>C:\build-server\Assembly\Web\TEST-HL\Web\Web.sln</projectFile>
          <buildArgs>/noconsolelogger /p:Configuration=Debug /v:diag</buildArgs>
          <targets>Build</targets>
          <timeout>900</timeout>
          <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
        </msbuild>
    </tasks>
    <publishers>
        <buildpublisher>
             <sourceDir>C:\build-server\Assembly\Web\PrecompiledWeb</sourceDir>
             <publishDir>\\test-web01\Web</publishDir>
             <useLabelSubDirectory>false</useLabelSubDirectory>
             <alwaysPublish>false</alwaysPublish>
        </buildpublisher>           
    </publishers>
</project>

Come puoi vedere, utilizzo buildPublisher per copiare i file precompilati nella condivisione di rete. Quello che voglio fare qui è 1) eliminare alcuni file prima che vengano copiati o 2) sostituire quei file dopo che sono stati copiati.

NON VOGLIO avere alcune app in esecuzione che guardano file specifici per le modifiche, quindi sostituire i file con altri. Voglio che qualcosa venga fatto da CC.NET o attivato da CC.NET.

Puoi avviare un file .bat con CC.NET?

È stato utile?

Soluzione

Devi usare NAnt per questo tipo di cose. Ecco il Riferimento attività di Nant ..

Altri suggerimenti

Uso un NAnt task per tutta la pubblicazione, la distribuzione, la pulizia e così via.

Dai un'occhiata a MSDEPLOY o Progetti di distribuzione Web . C'è una domanda che fornirà maggiori dettagli qui

Naturalmente CruiseControl.NET può eseguire un file batch, è sufficiente utilizzare l'attività exec. Tuttavia, una risposta più semplice potrebbe essere quella di fare in modo che MSBuild faccia il compito per te. Dovrebbe essere semplice aggiungere alcuni passaggi nel target postcompile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top