Domanda

Le informazioni sulla versione, visualizzato quando gli si libra cursore del mouse sopra il file in Esplora risorse, è impostato per un file costruito da Visual Studio nella risorsa di versione. Vorrei impostare la versione in un unico luogo per tutti i file costruite da una soluzione, preferibilmente quando cambio la versione nelle proprietà di installazione. C'è un modo per fare questo?

La motivazione di questo è che se la versione non viene aggiornato per un file, quindi il programma di installazione lascerà le versioni precedenti dei file invece di sostituirli con i nuovi file. Questo accade anche quando la proprietà dei 'RemovePreviousVersions' è impostato. Al fine di salvare l'attività incline noioso e l'errore di aggiornamento della versione in ogni file costruito e installato, tolgo la risorsa di versione da tutti i file -. Che non è elegante

È stato utile?

Soluzione

La seconda risposta in argomento Stack Overflow Come cambiare programatically un progetto di versione del prodotto? dispone di una soluzione per l'impostazione del numero di versione da un file di intestazione comune in C ++. Basta posizionare il file di intestazione che contiene i numeri di versione hard-coded in una cartella in cui ogni progetto può trovare.

La risposta di cui sopra descrive anche un mezzo per incrementare il numero di versione. Un approccio alternativo per C ++ versione di incremento è disponibile l'articolo di Microsoft come incrementare le informazioni sulla versione dopo ogni generazione in Visual C ++ .

In alternativa, è possibile utilizzare il controllo del codice sorgente numero di revisione repository come parte del numero di versione. L'articolo Stack Overflow Creazione di un file con numero di build e il nome del ramo in SVN dà una certa comprensione in questo per gli utenti TortoiseSVN. I seguenti due articoli esplorano questo in modo più approfondito:

  
    

Integrazione del Subversion di revisione nella versione automatica     con .NET (C # o VB)

         

Integrazione del Subversion di revisione nella versione automatica     con nativo C / C ++

         
      

(le due pagine web di cui sopra sono dotate di collegamenti alle procedure simili per       gli utenti TortoiseHg)

    
  

In teoria, si potrebbe avere un singolo file di testo tenendo premuto il nuovo numero di versione, quindi eseguire uno script pre-build che sarebbe:

  1. Incremento del numero di versione nel file di testo (opzionalmente che incorpora un numero di revisione repository)
  2. scrivere o modificare i file di versione comune per:
    • C ++ (version.h)
    • C # (GlobalAssemblyInfo.cs)
    • Java (per mezzo di un file di proprietà di Formica, per esempio version.properties)
    • ecc.

Altri suggerimenti

Per centralizzare il controllo delle versioni per una soluzione:

  1. Prendete le informazioni sulla versione di AssemblyInfo.cs;
  2. Creare un nuovo file (GlobalAssemblyInfo.cs) e mettere il vostro informazioni sulla versione in esso (usando * per ottenere VS per creare un nuovo numero di versione per ogni generazione);
  3. Riferimento GlobalAssemblyInfo.cs come link: Add | Elemento esistente poi discesa sul pulsante Aggiungi nella selezione dei file per selezionare Aggiungi come collegamento al posto;
  4. Ripeti per ogni progetto nella soluzione;

Io uso un blocco come questo per la versione:

#if DEBUG

[assembly: AssemblyVersion ( "1.8.0.0")]

#else

[assembly: AssemblyVersion ( "1.8 *")]

#endif

In questo modo VS di ricostruire ogni assemblea durante lo sviluppo, ma dà ad ogni assemblaggio di un nuovo numero di versione quando costruire un rilascio.

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