2009-07-21 5 views
23

J'ai dans ma classe AssemblyInfo.cs le code:La version du fichier d'assemblage ne change pas?

[assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyFileVersion("1.0.*")] 

Appel System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() fonctionne très bien et donne la version mise à jour, cependant, quand je regarde la dll générée dans l'explorateur Windows, clic droit propriétés, cliquez sur le ' détails 'onglet, la version de fichier dit "1.0.0.0" même si la sortie ci-dessus dit 1.0.3489.17621?

+0

Quelle version de Visual Studio? –

+0

Studio visuel 2008, doh! – maxp

+0

voir http://stackoverflow.com/questions/64602/what-are-differences-between-assemblyversion-assemblyfileversion-and-assemblyin – John

Répondre

29

Vous ne pouvez pas utiliser 1.0. * Pour augmenter automatiquement la valeur AssemblyFileVersion, uniquement la valeur AssemblyVersion. (Vérifié dans toutes les versions de Visual Studio de 2005 à 2012).

Commentez la ligne suivante

[montage: ("1.0 *") AssemblyFileVersion]

et la version du fichier prendra le même numéro que la version de l'Assemblée.

+0

Fonctionne, im using vs2008 donc il semble avoir reporté. – maxp

+0

Situation horrible, m'a pris moi-même l'année dernière, les doigts croisés pour 2010! –

+0

Malheureusement, il semble qu'ils ne l'ont pas changé. Je reçois ceci: warning CS1607: Assembly generation -- The version '1.0.*' specified for the 'file version' is not in the normal 'major.minor.build.revision' format

22

Patrick a déjà donné la bonne réponse, mais voici juste un petit conseil. Si vous regardez dans AssemblyInfo.cs vous trouverez le bloc suivant à la fin:

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
//[assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

Maintenant, allez sur et retourner le commentaire des trois dernières lignes comme suit:

[assembly: AssemblyVersion("1.0.*")] 
//[assembly: AssemblyVersion("1.0.0.0")] 
//[assembly: AssemblyFileVersion("1.0.0.0")] 

Et tout fonctionne comme prévu ... :-)

+1

Excellente, a donné l'étiquette de réponse à Patrick, mais aurait donné deux fois si je pouvais: D – maxp

+0

ceci est une plus claire réponse – rajeemcariazo

+0

Intéressant qu'essayer à blanc out the AssemblyFileVersion dans l'interface graphique ne vous laisse pas jusqu'à ce que vous commentez comme cela dit. Merci! –