2009-08-19 7 views
0

Existe-t-il un moyen d'étendre les informations dans la boîte de dialogue Version du fichier Windows. Tous les attributs standard sont déjà utilisés, de sorte que je ne suis pas autorisé à ajouter des informations supplémentaires. Ce que j'ai besoin est une sorte de nouvelle classe d'attributs, qui peut être utilisé comme valeur supplémentaire présentée comme l'un des éléments de l'applet Propriétés du fichier/version sous:Comment étendre l'enformation de l'applet de la version Windows

Other version information: 
Item name:     Value: 
    Assembly Version    Information related to my additional attribute 
    File Version 
    Language 
    Product Name 
    Product Version 
>My Additional Attribute 

Un grand merci,
Ovanes

post-scriptum Après avoir obtenu une réponse pour travailler avec l'éditeur de ressources ou un outil de ligne de commande, qui injecte des ressources supplémentaires, je voudrais clarifier la configuration du projet en cours. Nous avons plus de 700 assemblages. Nous utilisons actuellement un fichier global AssemblyVersion.cs qui est inclus dans la compilation de chaque assembly. Tous les champs de version sont remplis une fois et inclus lors de la construction dans tous les assemblages. Le problème est que j'ai la politique stricte ce qu'ils doivent contenir. Dans les AssemblyVersion.cs toutes les données commun (projet connexe) est intégré comme:

[assembly: AssemblyCopyright("My global copyright message")] 

champs non pré-définies communes sont libres d'être spécifié dans le fichier propre version de l'Assemblée. Si ces champs sont spécifiés ici et que je les mets aussi dans AssemblyVersion.cs, il y aura des erreurs de compilation. Puisque nous générons des assemblages de noms forts, le piratage avec l'éditeur de ressources détruira la signature. L'importation du fichier de ressources dans les 700 assemblages peut prendre beaucoup de temps. Comme la meilleure approche que je vois d'écrire une propre classe d'attributs à utiliser comme:

[assembly: MyAssemblyAttribute("Some data goes here")] 

Comment faire ce spectacle d'attribut dans la boîte de dialogue de version de fichier?

Répondre

1

Les informations de la boîte de dialogue Version du fichier Windows sont stockées dans un Version data resource dans le fichier Win32 EXE. Il existe de nombreux outils (graphiques et basés sur la console) capables de modifier les ressources et d'ajouter de nouvelles données aux données de la version. Peut-être que vous pouvez utiliser l'un des basés sur la console pour ajouter vos informations automatiquement après la construction?

Vous pouvez également créer une ressource Win32 avec un compilateur de ressources et essayer de l'importer pendant la construction. Il y a un csc option pour cela:

L'option /de win32res insère une ressource Win32 dans le fichier de sortie. [...]

Une ressource Win32 peut contenir des informations de version ou de bitmap (icône) qui permettraient d'identifier votre application dans l'Explorateur Windows.

+0

J'ai édité mon post pour expliquer, pourquoi ce n'est pas une option pour moi. – ovanes

+0

L'attribut AssemblyCopyright et al. sont des attributs spéciaux reconnus par le compilateur. Vous devez modifier le compilateur pour reconnaître les nouveaux attributs à mettre dans la ressource de données de version. (En fait, vous pouvez: les sources du compilateur Mono C# sont disponibles gratuitement!) Je pense que la meilleure option est l'option '/ win32res' dans votre cas. – dtb

+0

J'ai inspecté la structure de la version dans Visual Studio. Vous ne pouvez pas y mettre plus de champs. Les deux seuls champs qui ne sont pas mappés aux attributs sont SpecialBuild et PrivateBuild. Puis-je enregistrer ces champs à définir via mon attribut au niveau de l'assemblage? Comme vous comprenez la personnalisation du compilateur n'est pas une option;) – ovanes

Questions connexes