Ho un sistema di build automatizzato che utilizza CruiseControl. Sto utilizzando SvnRevisionLabeller per ottenere la stringa della versione da utilizzare. Con questa stringa posso usare nant per aggiornare AssemblyInfo.cs così quando lo costruisco ha la stringa di compilazione corretta. Posso anche usare questa etichetta CC per taggare il repository di subversion.AssemblyInfo.cs dovrebbe essere inserito nel controllo della versione?
Quindi tutto è allineato
- etichetta Corporatura CCNet
- eseguibile (Informazioni Assembly)
- Version Control (tag subverson)
Ora, dove ho un problema è se voglio provare a ricostruire un vecchia immagine dal repository. Poiché AssemblyInfo.cs non è sotto controllo di versione ma piuttosto un file generato, quando provo a creare, le informazioni sulla versione non saranno le stesse di quando è stata creata questa versione del repository utilizzando CruiseControl. Mi piacerebbe essere in grado di generare esattamente la stessa immagine indipendentemente dal fatto che sia stata costruita durante la build CC o in una data successiva al momento del check out da Subversion.
So che spesso non è consigliabile, ma dovrei fare il check-in del file assemblyInfo.cs dopo ogni compilazione in modo che quando costruisco successivamente da una svn check-out vengano utilizzate le informazioni sulla versione corretta?
Grazie, Liam
Sto usando Subversion e CrusieControl.NET. Costruisco usando uno script NAnt. Tutto quello che ho letto è che AssemblyInfo.cs è un output generato durante il processo di compilazione.Quindi la sequenza di build è: - CCNet (SVN trigger da un check-in @say repository la versione 100) NAnt chiamato msbuild chiamato AssemblyInfo.cs viene creata afgter l'accumulo faccio a ora il check-in AssemblyInfo.cs ? Se il check-in del repository sarebbe quindi a Rev 101. Quindi il mio obiettivo di avere AssemblyInfo.cs che corrisponde alla revisione della build non è soddisfatto. Come faccio a fare questo? –
Credo che il motivo per cui non si desidera controllare in AssemblyInfo.cs nel tuo caso è perché il tuo sistema CI lo sta generando. Con una build normale incluso il modo in cui i server di compilazione TFS lo fanno, AssemblyInfo.cs viene archiviato e non viene generato per ogni build. – majinnaibu