2010-09-08 3 views
2

J'ai cet exemple de configuration dans mon fichier assemblyinfo.Impossible de trouver un bon moyen d'incrémenter la version de fichier à chaque version compilée dans vs2010

// 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("3.1.0.*")] 
[assembly: AssemblyFileVersion("3.1.0.0")] 

Une fois que je reconstruis, je reçois ceci:

Fileversion: 3.1.0.0 Version du produit: 3.1.0.0

Ce que je voudrais est la version du produit à être statique, ce qui est déjà bien, mais je voudrais que la version du fichier s'incrémente automatiquement, est-ce possible? La version d'assemblage est bonne pour l'analyse technique, mais la version de fichier est une propriété NTFS visible en cliquant avec le bouton droit sur le fichier dans Windows Explorer, ainsi les clients et les consultants peuvent avoir une idée de la version sans utiliser un outil tiers.

+0

Je suis un peu confus par vos déclarations ci-dessus; 'AssemblyFileVersion' sera statique ci-dessus parce que vous l'avez défini sur 3.1.0.0 'AssemblyVersion' sera automatiquement incrémenté d'une valeur de '1' chaque fois que vous 'construisez' la solution. Si vous deviez regarder le binaire dans/bin et le reconstruire, AssemblyVersion serait 3.1.0.1 et continuerait à incrémenter chaque construction. Qu'est-ce que vous appelez «Version du produit»? En un mot, vous utilisez le symbole '*' dans la position que vous voulez incrémenter automatiquement. – atconway

+0

@atconway, vous ne pouvez pas utiliser les caractères * dans la propriété AssemblyFileVersion, si vous spécifiez 3.1. * - build, puis cliquez avec le bouton droit sur le fichier dans l'explorateur (sous les détails), notez que la version du fichier est 3.1. –

+0

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

Répondre

2

Fâcheusement (mais probablement à dessein) la * dans la version d'assemblage attributs ne fonctionne que si elle est appliquée à la dernière deux, pas seulement le dernier:

[assembly: AssemblyVersion("3.1.*")] 
// [assembly: AssemblyFileVersion("3.1.*")] - I take it back, this doesn't work. 

Si vous voulez augmenter la révision nombre sans rupture. références .Net alors je suggère que vous utilisez la version du fichier d'assemblage plutôt que la version d'assemblage, et incrémenter la version d'assemblage manuellement lorsque vous décidez de son nécessaire.

La seule alternative serait un complément tiers ou un processus externe.

(Il semble que j'avais tort - la syntaxe *seulement travaux sur la version de montage pas la version d'assemblage de fichiers.)

+0

Je vais accepter cela comme réponse, car commenter la version du fichier signifie qu'il hérite de la version d'assemblage. –

1

On dirait que quelqu'un a eu le même problème, et la résolution est de commenter la 'AssemblyFileVersion' attribut, et il prendra la valeur de la 'AssemblyVersion' qui devrait fonctionner pour vous.

La version du fichier d'assemblage ne change pas?
Assembly File Version not changing?

Questions connexes