0

J'ai un numéro de version dans mon AssemblyInfo.cs fichier comme ceci:Interrogation AssemblyInformationalVersionAttribute tout en ciblant Windows Mobile 5.0 PocketPC

[assembly: AssemblyInformationalVersion("0.0.0.2")]

Normalement, je peux accéder à cette information en utilisant FileVersionInfo et je faire ont une référence à System.dll (où cette classe est normalement définie) mais l'espace de noms System.Diagnostics ne semble pas être disponible.

Voici le chemin qui dit VS est l'ensemble du système que je fais référence:

C: \ Program Files (x86) \ Microsoft.NET \ SDK \ CompactFramework \ v3.5 \ WindowsCE \ System .dll

en bref: Comment puis-je afficher la chaîne de version (AssemblyInformationalVersion) de ma demande dans ma demande?

Edit: En utilisant

Assembly.GetExecutingAssembly().GetName().Version.ToString()

retours "0.0.0.0" puisque cet attribut est pas défini dans mon fichier AssemblyInfo.cs.

Répondre

0

La solution était d'entrer manuellement les éléments suivants dans AssemblyInfo.cs:

[assembly: AssemblyVersion("1.2.3.4")]

Je ne suis pas sûr pourquoi Visual Studio l'a omis, mais en l'ajoutant,

Assembly.GetExecutingAssembly().GetName().Version

Renvoie la valeur attendue. En résumé: J'utilisais le code correct, mais j'avais les informations erronées dans mon fichier AssemblyInfo.cs.

1

Alors essayez-vous d'obtenir votre propre version de l'application:

Debug.WriteLine(string.Format("My App Version: {0}", 
    Assembly.GetExecutingAssembly().GetName().Version.ToString())); 

ou la version de l'ensemble de CF:

Debug.WriteLine(string.Format("System.dll Version: {0}", 
    typeof(int).Assembly.GetName().Version.ToString())); 

EDIT1

ou the actual native FileInfo version (je pense c'est celui que vous recherchez).

EDIT2

Ou vous pouvez le faire pour un ensemble géré:

var a = Assembly.GetExecutingAssembly().GetCustomAttributes(
    typeof(AssemblyInformationalVersionAttribute), true) 
    .FirstOrDefault() as AssemblyInformationalVersionAttribute; 
Debug.WriteLine(string.Format("AssemblyInformationalVersion: {0}", 
a.InformationalVersion)); 
+0

La solution la plus simple consistait à éditer moi-même le fichier AssemblyInfo.cs - VS a négligé d'ajouter l'attribut correct lors de la création initiale du fichier. Merci pour l'aide en tout cas. –

+0

Méfiez-vous, cependant. Il est courant de voir une construction ciblée "PocketPC" ne pas mettre l'AssemblyVersion en ressource native, mais si vous passez à "Windows CE", c'est le cas. Cependant, il semble que vous ne vous inquiétiez pas de la ressource native. – ctacke

+0

Pour autant que je sache, je n'ai rien de natif - tout est géré. Je l'ai testé sur mon appareil, et cela fonctionne. Ce n'est pas une chose critique. –

Questions connexes