IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Versioning d'une application


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Versioning d'une application
    Bonjour,

    Je m'interroge sur la façon d'utiliser et de gérer les informations de l'assembly.
    Parmi les questions :
    - Quelle règle adopter pour définir les 4 paramètres :
    <version principale>.<version secondaire>.<numéro de build>.<numéro de révision>
    - Quelle différence entre la "version de l'assembly" et la "version de fichier" ?
    - Le fait d'être en "debug" ou en "release" a-t-il une influence sur ces paramètres et vice-versa ?

    Je n'ai pas trouvé de réponses sur MSDN

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    En tapant MSDN Version dans google je trouve directement ceci :
    Citation Envoyé par msdn
    Les numéros de version comportent de deux à quatre composants : principal, secondaire, build et révision.
    Les composants principal et secondaire sont obligatoires ; les composants build et révision sont facultatifs, mais le composant build est obligatoire si le composant révision est défini.
    Tous les composants définis doivent être des entiers supérieurs ou égaux à 0.
    Le format du numéro de version est comme suit (les composants facultatifs sont affichés entre crochets ([ et ]) :
    major.minor[.build[.revision]]

    Les composants sont utilisés par convention de la façon suivante :
    • Major : Les assemblys portant le même nom, mais ayant des versions principales différentes, ne sont pas interchangeables. Un numéro de version supérieur peut indiquer une réécriture majeure d'un produit lorsque la compatibilité descendante ne peut pas être assumée.
    • Secondaire : Si le nom et le numéro de version principal de deux assemblys sont identiques, mais que le numéro de version secondaire est différent, cela indique une amélioration significative avec intention de conserver une compatibilité descendante. Ce numéro de version secondaire supérieur peut indiquer une version ponctuelle d'un produit ou une nouvelle version d'un produit dont la compatibilité descendante est totale.
    • Build : une différence dans le numéro de build représente une recompilation de la même source. Différents numéros de build peuvent être utilisés lorsque le processeur, la plateforme ou le compilateur change.
    • Révision : Les assemblys portant le même nom et les mêmes numéros de versions principale et secondaire, mais ayant des révisions différentes sont destinés à être totalement interchangeables. Un numéro de révision supérieur peut être utilisé dans un build qui résout une faille de sécurité dans une version précédente d'un assembly.


    ....
    ça à l'aire de répondre à ta première question.

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Merci, c'est un peu plus clair (ton lien ne marche pas et je n'ai pas retrouvé la source dans Google !!)
    Cela dit, j'ai toujours du mal à comprendre les nuances entre :
    - version d'assembly
    - version de fichiers
    - version de publication (il parait que ce 3ème numéro est généré à la publication)

  4. #4
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    La version de ficher est celle que l'OS voit (et celle que tu vois si tu fait click droit et propriété). Elle n'est pas utilisée par .NET
    La version d'assembly n'est pas utilisée par l'OS mais par .NET. C'est ce que le Framework va utiliser pour savoir quelle est le numéro de version.

    Ces versions n'ont pas besoin d'être synchronisées, mais c'est pratique si c'est le cas car ça permet de voir quelle est le numéro de version sans passer par .NET

  5. #5
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour noftal,

    Pour mieux appréhender le concept de version d'Assembly et version de fichiers il faut que tu concentres tes recherches sur :

    - PE file format (fichier natif)
    - DotNet File format (fichier natif + assembly DotNet)

    Sur un fichier de type "PE DotNet Assembly" il est possible d'obtenir différentes informations :

    Assembly (ce sont des attributs) :

    AssemblyTitle
    AssemblyDescription
    AssemblyCompany
    AssemblyProduct
    AssemblyCopyright
    AssemblyTrademark
    AssemblyVersion
    AssemblyFileVersion

    NB : sachant que nous pouvons développer nous-mêmes nos attributs personnalisés.


    VersionInfo :

    Comments
    CompanyName
    FileDescription
    FileVersion
    InternalName
    LegalCopyright
    OriginalFileName
    PrivateBuild
    ProductName
    ProductVersion
    SpecialBuild


    Alors que sur un fichier de type "PE" nous n'obtenons que les infos de versions du fichier !


    Prenons un exemple concret :


    --> Tu ouvres 1 fichier DotNet avec cette fonction en vue d'obtenir les informations de version du fichier (PE) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim fvi As FileVersionInfo = FileVersionInfo.GetVersionInfo("YOUR_DOTNET_FILE")
    'Déroule les propriétés de l'instance fvi grâce à l'intellisense (fvi.comments,...etc)
    Msgbox(fvi.Comments)
    Msgbox(fvi.ProductName)
    NB : Ces informations (type de ressource = 16 ou "RT_VERSION") se situent dans la partie "PE", accessibles via les API suivantes :
    - LoadLibraryEx
    - FindResource
    - LoadResource
    - LockResource
    - SizeofResource
    - FreeLibrary

    Plus d'infos sur les types de resources : ici


    --> Tu ouvres le même fichier en vue d'obtenir les informations d'assembly :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Imports System.Reflection
    '......
    '........
      Dim asm As Assembly = Reflection.Assembly.LoadFrom("YOUR_DOTNET_FILE")
                For Each att In asm.GetCustomAttributes(False)
                    Select Case att.GetType
                        Case GetType(AssemblyDescriptionAttribute)
                            MsgBox(TryCast(att, AssemblyDescriptionAttribute).Description)
                        Case GetType(AssemblyTitleAttribute)
                            MsgBox(TryCast(att, AssemblyTitleAttribute).Title)
                    End Select
                Next
    En fait les informations sur un fichier de type "PE DotNet" peuvent être complètements différentes mais il faut les modifier soi-même car par défaut (à la création du fichier) les infos sont censés être les mêmes !

    Cette une fonction de modification que je propose dans mon dernier projet : http://wallace87000.upd.fr/DotNetPatcher.exe



    IMPORTANT : Attention Infos de Version de fichier ne correspond pas au numéro de version ! Beaucoup de personnes font l'amalgame !
    Cela correspond à l'ensemble des informations contenu dans le ResourceType 16 = VERSIONINFO


    J'espère que c'est assez explicite .

    A+

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Salut,
    Je vais regarder cela, mais ton .exe semble contenir 2 virus (détection positive d'Antivir)

Discussions similaires

  1. Comment nommer les versions d'une application
    Par Bweb dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 15/02/2013, 15h07
  2. Gestion des version d'une application Web
    Par infostars dans le forum ASP.NET
    Réponses: 5
    Dernier message: 11/03/2009, 11h20
  3. Réponses: 6
    Dernier message: 14/04/2008, 18h21
  4. Réponses: 7
    Dernier message: 22/11/2007, 20h07
  5. Récupérer la version d'une application
    Par selmak7 dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/06/2006, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo