2010-01-07 1 views
4

J'ai développé une ressource HTTP, qui utilise l'en-tête Last-Modified, et elle devrait refléter toutes les modifications apportées à l'application. Je voudrais mettre à jour ce champ pour indiquer la date de construction ou la dernière date de mise à jour de l'application. Voici quelques solutions que j'ai pensé:Comment puis-je mettre à jour un paramètre en fonction de la version?

  1. Utilisez un script de compilation pour modifier un paramètre DateTime chaque fois que l'application est construite.

  2. Obtenez le dernier temps de modification de tous les fichiers dans le dossier de l'application

Quelle approche semble plus intéressante? Avez-vous une suggestion?

Répondre

2
  1. Est très facile à faire. Vous pouvez écrire un fichier simple (par exemple, xml) et l'ajouter en tant que ressource intégrée afin qu'il soit compilé dans votre application. Cela vous donne la liberté de fournir toute forme d'information dont vous avez besoin.

  2. Je l'éviterais. C'est un peu hacky, et sujettes à des problèmes (par exemple si un fichier journal est écrit dans le dossier, alors vous commencerez à rapporter la date du jour au lieu de la date de construction). Mieux et plus facile à lire le datestamp de Application.StartupPath (le principal fichier .exe)

  3. Dans votre AssemblyInfo, spécifiez une version de [assembly: AssemblyVersion("1.23.*")] et le compilateur ajoutera automatiquement la date et l'heure de construction à la version (il ressemblera un peu à: 1.23.4567.12345). Vous pouvez alors lire la date/heure de compilation à l'aide (pincé d'un coup de recherche, mais semble correcte):

AssemblyName an = Assembly.GetEntryAssembly().GetName(); 
DateTime date = new DateTime(2000, 1, 1, 0, 0, 0); 
date += TimeSpan.FromDays(an.Version.Build) + TimeSpan.FromSeconds(an.Version.Revision * 2); 

+0

Très intéressant! –

Questions connexes