Domanda

In .NET ci sono due numeri di versione disponibile quando la costruzione di un progetto, la Versione del File e la Versione dell'Assembly.Come stai con questi numeri?Mantenendo la stessa?Auto-incrementante, ma di modificare manualmente le altre?

Inoltre, che cosa circa il AssemblyInformationalVersion attributo?

Avevo trovato questo supporto Microsoft Knowledge Base (KB) articolo fornito qualche aiuto: Come utilizzare Assembly Version e Montaggio di Versione del File.

È stato utile?

Soluzione

In uno scenario In cui ho più di un file di assiemi (es.1 exe e 5 dll) io uso un file diverso per tutti, ma l'assemblea stessa versione per tutti, che consente di sapere quale exe ciascuna delle dll andare con.

Altri suggerimenti

In soluzioni con più progetti, una cosa che ho trovato molto utile è avere tutti i file AssemblyInfo punto di un progetto unico che disciplina il controllo delle versioni.Quindi il mio AssemblyInfos avere una linea:

[assembly: AssemblyVersion(Foo.StaticVersion.Bar)]

Ho un progetto con un unico file che dichiara la stringa:

namespace Foo
{
    public static class StaticVersion
    {
         public const string Bar= "3.0.216.0"; // 08/01/2008 17:28:35
    }
}

Il mio processo di generazione automatica quindi solo le modifiche che stringa tirando la versione più recente del database e l'incremento dell'ultimo secondo numero.

Ho solo cambiato il Maggiore numero di build quando il featureset cambia radicalmente.

Io non modificare il file di versione).

L'articolo menziona la più importante distinzione:Le versioni dei File sono utilizzati solo per scopi di visualizzazione, mentre la versione dell'assembly svolge una parte importante nel .NETTO il caricamento di comportamento.

Se si cambia il numero di versione dell'assembly, quindi l'identità della vostra assemblea è cambiato.Gli sviluppatori dovranno ricostruire a fare riferimento alla nuova versione (a meno di mettere un po ' di auto-controllo delle versioni "politica", e in fase di runtime solo assemblee con i corrispondenti numeri di versione verrà caricato.

Questo è importante, nel mio ambiente, dove abbiamo bisogno di un incremento, altamente visibile il numero di versione per fini di controllo, ma non vogliamo forzare gli sviluppatori di ricostruire o di avere molte versioni contemporaneamente in produzione.In questo caso per backwardly compatibile con piccole modifiche si aggiorna la versione del file, ma non la versione dell'assembly.

Le versioni dei File sono utilizzati solo per scopi di visualizzazione, mentre la versione dell'assembly svolge una parte importante nel .NETTO il caricamento di comportamento.

Non del tutto.La versione del file è importante anche per Windows Installer quando si aggiorna una versione esistente su un precedente.

Con il mio attuale applicazione, ogni VS progetto ha un link a un "AssemblyBuildInfo" file di origine che ha i seguenti attributi:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyCompany("Acme Corporationy")]
[assembly: AssemblyCopyright("Copyright ©  2009 Acme Corporation")]

In questo modo, tutti gli assembly nella mia soluzione condividere la stessa versione e le informazioni di società (nel senso che se devo cambiare, ho cambiato solo una volta).Escludendo il FileVersion, è impostato automaticamente il AssemblyVersion.

@Adam:Si modifica il file di versione con ogni generazione?Si sta utilizzando la versione di controllo (SYN o VSS) e l'utilizzo dei dati per collegamento sorgente per i binari?

Sembra senso che l'Assemblea versione rimane la stessa.cioè"2.0.0.0".Che corrisponde alla distribuzione del prodotto.

La versione del file cambia in base alla revisione dal controllo del codice sorgente."2.0.??.revisione" Questo permetterebbe di ottenere un link da una dll specifica (o exe) per la fonte che l'ha costruita.

Ho scritto un post sul blog su questo argomento, che può essere utile per la comunità http://blog.raffaeu.com/archive/2011/12/11/sharing-assembly-version-in-visual-studio-2010.aspx

Li tengo lo stesso.Ma poi, non ho assembly su più file, che è quando la AssemblyVersion numero diventa importante.Io uso Microsoft-data di codifica per la mia generazione di numeri, piuttosto che auto-incremento (non riesco a trovare il numero di volte che qualcosa è stato costruito per essere così importante).

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