2008-09-23 7 views
5

Je peux ajouter des chaînes de version personnalisées à une DLL C++ dans Visual Studio en modifiant manuellement le fichier .rc. Par exemple, si j'ajoute à la section VersionInfo du fichier .rcPuis-je ajouter des chaînes de version personnalisées à une DLL .net?

VALUE "BuildDate", "2008/09/19 15:42:52" 

Ensuite, cette date est visible dans l'explorateur de fichiers, dans les propriétés de la DLL, sous l'onglet Version. Puis-je faire de même pour une DLL C#? UPDATE: Je pense qu'il peut y avoir un moyen de le faire en intégrant une ressource Windows, donc j'ai asked how to do that.

Répondre

4

En AssemblyInfo.cs, vous pouvez mettre:

[assembly: System.Reflection.AssemblyInformationalVersion("whatever you want")] 

Il est un avertissement du compilateur si ce n'est pas un numéro comme 1.2.3.4, mais je suis assez sûr que tout va fonctionner.

+0

Merci - cela apparaît comme «Version du produit», ce qui peut être acceptable comme une solution de contournement. Ce que j'aimerais vraiment, c'est pouvoir voir 'Build Date' apparaître comme le nom de la propriété. – Simon

5

L'expansion sur la réponse du Khoth, En AssemblyInfo.cs:

Vous pouvez faire:

[assembly: CustomResource("Build Date", "12/12/2012")] 

Où CustomResource est défini comme:

[AttributeUsage(AttributeTargets.Assembly)] 
public class CustomResourceAttribute : Attribute 
{   
    private string the_variable; 
    public string Variable {get { return the_variable; }} 

    private string the_value; 
    public string Value  {get { return the_value; }} 

    public CustomResourceAttribute(string variable, string value) 
    { 
     this.the_variable = variable; 
     this.the_value = value; 
    } 
} 

Cette solution est agréable car elle donne vous avez la flexibilité dont vous avez besoin et cela ne provoque aucun avertissement du compilateur.

Malheureusement, il n'est pas possible d'utiliser un DateTime car les valeurs entrées dans Attributs doivent être des constantes et une DateTime n'est pas une constante.

+1

Encore deux problèmes: Le premier est que vous pouvez seulement ajouter un CustomResourceAttribute de cette façon; Je pense que vous devez ajouter "AllowMultiple = true" à votre attribut AttributeUsage. La seconde est que les ressources personnalisées n'apparaissent pas dans l'onglet de la version - comment puis-je les faire faire cela? – Simon

+0

Vous avez raison, j'ai oublié le AllowMultiple. Je tenterai au déjeuner aujourd'hui (jeudi, -7 fuseau horaire.) Pour obtenir des données montrant sur l'onglet de version. – KyleLanser

+0

Désolé, pas de temps, je vais jouer avec ce week-end. – KyleLanser

Questions connexes