2009-04-17 10 views

risposta

40

È possibile condividere un file AssemblyInfo.cs tra tutti i progetti nella soluzione. Questo file condiviso dovrebbe contenere i numeri di versione. Per condividerlo, è necessario utilizzare Aggiungi file esistente in VS e selezionare Aggiungi come collegamento nella finestra di dialogo del file. Ogni progetto ha il suo AssemblyInfo.cs privato e condiviso. Quello privato contiene ancora gli attributi non versione.

Ho una configurazione di TeamCity, dove sto generando il file condiviso in ogni build di TeamCity utilizzando la versione di build effettiva e funziona perfettamente.

+6

Tendo a chiamare il file condiviso " SolutionInfo.cs "anche con cose come copyright in esso pure e salvato come elemento di soluzione per SCM con tutti i progetti che lo collegano allo stesso modo. – Richard

+0

Ho chiamato il file VersionInfo nel mio caso :) – grover

+0

Questo è così straordinariamente semplice (e brillantemente brillante), e un'abitudine così grande da coltivare in generale. Grazie. – GregRos

3

Cerca/Sostituisci?

I numeri di versione sono archiviati in file di testo dopo tutto (AssemblyInfo.cs nella cartella Proprietà per ciascun progetto).

+0

che funzionerebbe se tutti i gruppi erano alla stessa versione maggiore/minore. Sfortunatamente i miei sono dappertutto :) – PaulB

+0

Vuoi semplicemente incrementarli o renderli tutti uguali? Perché puoi facilmente usare un'espressione regolare per trovarli tutti, anche se hanno numeri diversi. –

+1

Ecco uno che funzionerebbe: \\ [assembly: \ s + AssemblyVersion \\ ("\ d + \. \ D + \. \ D + \. \ D +" \\) \\] –

10

Abbiamo un singolo AssemblyInfoCommon.cs che ha i numeri di versione ed è incluso in ogni progetto per riferimento. Gli altri file AssemblyInfo.cs rimangono ma contengono solo le informazioni specifiche dell'assembly (titolo e descrizione). Quindi abbiamo solo un file da aggiornare per ogni progetto C#.

7

È anche possibile avere una stringa di const pubblica in una delle classi, che rappresenta il numero di build e utilizzarlo in tutti i AssemblyInfo.cs per i diversi progetti. Ovviamente questo dovrebbe essere in un progetto a cui fanno riferimento tutti gli altri progetti, per funzionare.

È una buona opzione, se non ti piace l'idea di fare riferimento allo stesso AssemblyInfo.cs in tutti i tuoi progetti.

Modifica: Nota! Questo funziona anche quando si utilizzano più lingue (F # e C# nel mio caso).

0

Inoltre è possibile creare una certa assemblea "core" e aggiungere in ogni vostra assemblea riferimento assemblaggio "core". l'assemblaggio "core" sarà costante. In questo caso in ogni file di informazioni dell'Assembly verrà impostata la versione di assembly dalla costante "core". Ad esempio:

l'assembly "core" ha il file Ver.cs con costante: public const string Valore = "0.0.0.99";

in ciascuna soluzione Info montaggio sarà: [assembly: AssemblyFileVersion (Ver.Value)]

Problemi correlati