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

Windows Forms Discussion :

[C#][.NET 2.0]Obtenir la date de dernière compilation


Sujet :

Windows Forms

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut [C#][.NET 2.0]Obtenir la date de dernière compilation
    Bonjour à tous,

    Est-il possible de connaitre la date de la dernière compilation d'une application.

    Parce que pour l'instant j'affiche dans le About une date que je met à jour manuellement mais j'oublie bien souvent de le faire.

    Utiliser la date de modification ne fonctionne pas car çela peut être modifié si l'on passe l'application via un serveur ftp par exemple (il me semble).


    Merci d'avance,
    Nicolas

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Il te suffit de récupérer, dans les propriétés du fichier, la date de création

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut
    La date de création ne change jamais, que l'on mette le fichier dans une archive, sur un serveur ftp, que l'on modifie son nom, ...?

    J'ai en tête que cette information n'était valide qu'à condition de rester sur le même PC.

  4. #4
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Si la date de creation peut changer ....
    je ne crois pas que tu puisses la recuperer comme cela ...

    cf : http://www.thescripts.com/forum/thread226146.html

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut
    Une solution élégante que j'ai vue est de définir une nouvelle macro pour le préprocesseur (comme __DATE__ en C++).
    Mais je n'ai aucune idée de comment faire et je n'ai rien trouvé sur Google.

    Quelqu'un a-t-il déjà joué avec ça?

  6. #6
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Perso je ne vois pas trop l'interet ... si deja tu fais attention avec les versions , c'est suffisant pour savoir ou tu en es.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut
    Oui si on veut.
    Mais je trouve beaucoup plus parlant un texte : "version du 27-10-2006" que v4.12.65.1235.
    On sait directement si on a à faire à une version récente ou qui date d' il y a plusieurs mois.
    On pourrait bien sûr débattre du fait de bien numéroter ses versions, mais je trouve quand même bien plus simple de ne jouer qu'avec une date, et de temps en temps, lorsqu'il y a un gros changement, de modifier le numéro de version...

    EDIT: ceci dit je pourrais mettre à la main, à l'instar du système de versioning d'ubuntu et dérivés, la version formée par année.mois.jour.
    Mais il n'empêche que, même dans ce cas, je trouve bien simple et efficace que le compilateur le fasse pour moi...

  8. #8
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Oui c'est pas faux ...

    Ben si tu trouve cela m'interesse !

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut
    En fait je pense qu'on a tous les deux mal lu le post en anglais que tu as proposé plus haut. (En tous cas moi )
    La dernière solution donnée est la bonne !

    Si dans le fichier AssemblyInfo.cs on remplace la ligne
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    [assembly: AssemblyVersion("1.0.0.0")] (ou tout autre valeur)
    par
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    [assembly: AssemblyVersion("1.0.*")]
    Visual studio génère automatiquement une valeur qui est le relative au premier janvier 2000.

    Il suffit d'utiliser le code donné sur ce post pour obtenir la date de compilation :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    private DateTime DateCompiled()
    {
     
    // Assumes that in AssemblyInfo.cs,
    // the version is specified as 1.0.* or the like,
    // with only 2 numbers specified;
    // the next two are generated from the date.
    // This routine decodes them.
     
    System.Version v =
    System.Reflection.Assembly.GetExecutingAssembly(). GetName().Version;
     
    // v.Build is days since Jan. 1, 2000
    // v.Revision*2 is seconds since local midnight
    // (NEVER daylight saving time)
     
    DateTime t = new DateTime(
    v.Build * TimeSpan.TicksPerDay +
    v.Revision * TimeSpan.TicksPerSecond * 2
    ).AddYears(1999);
     
    return t;
    }

    Voilà, pour ma part cette solution est satisfaisante...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    ok ,
    ca ne marche pas du tout ;
    Retourne 1/1/2000 0:0

  11. #11
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Hello

    A priori j'utiliserai les évenements de build pour gérer ce genre de chose.

    http://msdn.microsoft.com/fr-fr/library/ke5z92ks.aspx

    Après est-ce qu'il faut et comment modifier le n° de version, modifier la valeur d'une constante dans le code, modifier une valeur dans un fichier de ressource. Je ne peux pas t'aider plus.

Discussions similaires

  1. Comment obtenir la date de dernière modification d'un fichier
    Par Archampi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 30/04/2009, 20h37
  2. [XL-2003] Obtenir la date de dernière modification de l'actuel classeur
    Par Archampi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2009, 13h45
  3. Réponses: 2
    Dernier message: 15/10/2008, 10h02
  4. Réponses: 2
    Dernier message: 17/12/2005, 20h56

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