2010-05-06 4 views
2

La version du produit MSI est-elle disponible pour l'application?Comment obtenir la version du produit MSI par programme en C#

J'ai essayé, Assembly.GetExecutingAssembly(). GetName(). Version, mais il me donne la version d'assemblage qui est différente de ce que je veux. Je peux éditer cette valeur à l'endroit approprié, mais ce serait pratique si je pouvais juste montrer le numéro de version du programme d'installation de MSI. Un autre point est, le numéro de version MSI a 3 parties, chaque partie étant séparée par un '.', Par exemple 1.0.3, où comme le numéro d'assemblage a 4 parties, par exemple 1.0.2.4. À partir de là, je conclus que nous devons mettre à jour ces valeurs séparément et qu'il n'y a aucun moyen de les synchroniser.

Est-ce que je comprends bien?

Répondre

3

Le MSI est autorisé à avoir quatre parties spécifiées pour sa version, bien qu'il ne compare que les trois premières (ce qui peut causer de la confusion lors d'une mise à jour mineure avec des mises à jour seulement dans la quatrième partie). Ainsi, vous pouvez certainement synchroniser vos numéros dans une sorte de script de construction si votre solution d'installation est scriptable. En ce qui concerne l'affichage de la version MSI de votre application, vous devez connaître votre GUID ProductCode afin que l'API MSI puisse rechercher sa version. Vous pouvez également écrire une entrée de registre contenant la version dans un emplacement plus stable et la lire dans votre application.

Questions connexes