55 votes

Comment utiliser au mieux la version du fichier et la version de l'assemblage?

Dans .NET, deux numéros de version sont disponibles lors de la construction d'un projet, version de fichier et version d'assemblage. Comment utilisez-vous ces chiffres? Les garder les mêmes? Auto-incrémentation d'une, mais changer manuellement l'autre?

Et qu'en est-il de l'attribut AssemblyInformationalVersion ?

J'avais trouvé cet article de support de la base de connaissances Microsoft qui fournissait de l'aide: Comment utiliser la version d'assembly et la version du fichier d'assembly .

74voto

Jon Dewees Points 1794

Dans les solutions de plusieurs projets à la fois, une chose que j'ai trouvé très utile est d'avoir tous les AssemblyInfo fichiers point à un projet unique qui régit la gestion des versions. Donc, mon AssemblyInfos ont une ligne:

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

J'ai un projet avec un seul fichier qui déclare la chaîne:

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

Mon processus de génération automatique puis juste changements de chaîne en la tirant à la version la plus récente de la base de données et l'augmentation de l'avant-dernier numéro.

J'ai seulement changer le numéro de version Majeur lors de la featureset change de façon spectaculaire.

Je n'ai pas changer de version de fichier.

22voto

voyce Points 499

L'article mentionne la distinction la plus importante: les versions des Fichiers sont utilisés uniquement à des fins d'affichage, tandis que la version de l'assembly joue un rôle important dans l' .NET de chargement de comportement.

Si vous modifiez l'assemblée numéro de version, puis l'identité de votre assemblée dans son ensemble a changé. Les développeurs devront reconstruire pour référencer votre nouvelle version (sauf si vous mettez un peu d'auto-gestion des versions "politique" à la place) et à l'exécution seulement les assemblages avec correspondance des numéros de version sera chargé.

Ce qui est important dans mon environnement, où nous avons besoin d'une incrémentation, très visible le numéro de version pour des fins de vérification, mais nous ne voulons pas forcer les développeurs à reconstruire ou qui ont de nombreuses versions simultanément dans la production. Dans ce cas, pour l'amont compatible avec des changements mineurs que nous mettons à jour la version du fichier, mais pas la version de l'assembly.

14voto

Adam Haile Points 12576

Dans un scénario où j'ai plusieurs assemblages de fichiers (c.-à-d. 1 exe et 5 dll), j'utiliserai une version de fichier différente pour chacun, mais la même version d'assembly pour chacun d'entre eux, ce qui vous permettra de savoir quel fichier exe est associé à chaque dll.

12voto

Mark Sowul Points 4249

Les versions de fichier sont uniquement utilisées à des fins d'affichage, alors que la version d'assemblage joue un rôle important dans le comportement de chargement .NET.

Pas assez. La version du fichier est également importante pour Windows Installer lorsque vous mettez à niveau une version existante par rapport à une précédente.

12voto

Philip Wallace Points 4550

Avec mon application actuelle, chaque projet VS possède un lien vers un fichier source "AssemblyBuildInfo" qui possède les attributs suivants:

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

De cette manière, tous les assemblys de ma solution partagent la même version et les mêmes informations sur l'entreprise (autrement dit, si je dois la modifier, je ne la modifie qu'une fois). En excluant FileVersion, il est automatiquement défini sur AssemblyVersion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: