2008-09-23 12 views
5

Puedo agregar cadenas de versión personalizadas a una DLL C++ en Visual Studio editando el archivo .rc a mano. Por ejemplo, si añado a la sección VersionInfo del archivo .rc¿Puedo agregar cadenas de versión personalizadas a una DLL .net?

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

Luego de esa fecha es visible en el explorador de archivos, en las propiedades del DLL, bajo la ficha Versión.

¿Puedo hacer lo mismo con una C# DLL? No solo para la fecha de compilación, sino para otra información de versión (como la información de control de origen)

ACTUALIZACIÓN: Creo que puede haber una manera de hacerlo incorporando un recurso de Windows, así que tengo asked how to do that.

Respuesta

4

En AssemblyInfo.cs, se puede poner:

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

Es una advertencia del compilador si no es un número como 1.2.3.4, pero estoy bastante seguro de que todo saldrá bien.

+0

Gracias - que aparece como 'Versión del producto', que puede ser aceptable como una solución alternativa. Lo que realmente me gustaría es poder ver 'Build Date' aparecer como el nombre de la propiedad. – Simon

5

Ampliando la respuesta del Khoth, En AssemblyInfo.cs:

que puede hacer:

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

Dónde CustomResource se define como:

[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; 
    } 
} 

Esta solución es agradable porque da tiene la flexibilidad que necesita y no causa ninguna advertencia del compilador.

Desafortunadamente no es posible usar un DateTime porque los valores ingresados ​​en Attributes deben ser constantes, y un DateTime no es una constante.

+1

Todavía hay dos problemas: El primero es que solo puede agregar una CustomResourceAttribute de esa manera; Creo que debes agregar "AllowMultiple = true" a tu atributo AttributeUsage allí. El segundo es que los recursos personalizados no se muestran en la pestaña de la versión, ¿cómo puedo lograr que hagan eso? – Simon

+0

Tiene razón, olvidé el AllowMultiple. Intentaré almorzar hoy (jueves, -7 zona horaria) para obtener los datos que se muestran en la pestaña de la versión. – KyleLanser

+0

Lo siento, no hay tiempo, jugaré con él este fin de semana. – KyleLanser

Cuestiones relacionadas