AssemblyInfo.cs sovversione e TortoiseSVN

Sto usando TortoiseSVN e Visual Studio 2008. C’è un modo per aggiornare assemblyinfo.cs del mio progetto con la versione di svn in ogni build?

Ad esempio, 1.0.0. [Versione di svn] -> 1.0.0.12

È ansible utilizzare lo strumento SubWCRev fornito con TortoiseSVN (disponibile anche separatamente).

Eseguilo da una riga di comando o usa l’ object COM che offre.

Lo strumento da riga di comando SubWCRev sostituisce le parole chiave all’interno di un file con le informazioni della tua copia di lavoro svn. Un esempio è mostrato nei documenti.

Lo faccio nel mio script di costruzione :

    

usando le attività di compilazione della comunità . Questo essenzialmente applica una regex a AssemblyInfo.cs, sostituendo la revisione corrente con la revisione svn.

Potresti usare la parola chiave $Rev$ sv $Rev$ svn ma che ti darà l’ultima revisione del file, penso che tu voglia ottenere il numero di revisione HEAD .

Dai un’occhiata a questa domanda:

  • Come sincronizzare il numero di revisione SVN con il mio sito Web ASP.NET?

Come ti senti a proposito di un add-in di Visual Studio?

Sì, puoi aggiungere un evento pre-build che chiama uno script che

  • chiama svn info per estrarre il numero di revisione corrente (se prima fai un aggiornamento, puoi includere direttamente la parola chiave $Revision$ in un file, controlla anche questo post );
  • modifica il file Properties \ AssemblyInfo.cs di conseguenza.

Quello che faccio di solito è trasformare un modello AssemblyInfo.cs quando il progetto è stato creato. Lo script è necessario per adattare la forma di $ Revision $ alla syntax di questo file, sfortunatamente.

Le proprietà interessanti sono (dove le stringhe del template sono tra ‘$’):

 [assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev$")] [assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev$")] 

Modifica: le svn info fanno parte del client SVN standard, non di TortoiseSVN, come indicato in un altro post. Facile da installare però. Tuttavia, TortoiseSVN viene fornito con SubWCRev.exe che trasforma un file con la sostituzione di parole chiave, quindi farebbe il trucco se aggiorni la tua copia locale.

In Visual Studio 2008, è ansible definire un evento di pre-build in grado di avviare uno script o un piccolo programma. All’interno di questo script o programma, è ansible utilizzare il comando svnversion per ottenere la revisione del repository, quindi analizzare il proprio AssemblyInfo.cs e modificare il numero di versione in base alle proprie esigenze .

Non sono sicuro che TortoiseSVN sia dotato di svnversion, ma viene fornito con la build SVN di Windows fornita da CollabNet

Ho creato un plug-in per la versione SVN per il progetto Incremento versione build (che viene chiamato nella risposta di pop-up). Questo plug-in SVN estrarrà il numero di revisione della modifica più recente dalla copia di lavoro e ti consentirà di utilizzarlo nel numero di versione, che dovrebbe realizzare esattamente ciò che stai cercando di fare.