Recuperar valor do AssemblyInfo.cs

20/12/2011

Ola,
Aguem pode me ajudar a solucionar esse problema:
Coloquei algumas informacoes nesse arquivo: meu titulo, meu produto, 1.0.0.0

[assembly: AssemblyTitle(meu titulo)]
[assembly: AssemblyDescription()]
[assembly: AssemblyConfiguration()]
[assembly: AssemblyCompany(Microsoft)]
[assembly: AssemblyProduct(meu produto)]
[assembly: AssemblyVersion(1.0.0.0)]

No pege load da master page: Segue o seguinte codigo:

protected void Page_Load(object sender, EventArgs e)
{

string AssembleTitle, AssembleVersion, AssembleProduct;

AssembleTitle = Convert.ToString( AssembleTitle);
AssembleProduct = Convert.ToString( AssembleProduct);
AssembleVersion = Convert.ToString( AssembleVersion);

Page.Title = AssembleTitle + : + AssembleProduct + : + AssembleVersion;

}

Qndo compilo, apresnta os seguintes erros:

- Use of unassigned local variable AssembleVersion
- Use of unassigned local variable AssembleTitle
- Use of unassigned local variable AssembleProduct

Independente se eu deixo ou nao somente a variavel do assembly do titulo, apresenta erro da mesma forma.






Jefferson

Respostas

20/12/2011

Fabio Rosa

Olá! Veja o código abaixo:

            //Versão
            string version = this.GetType().Assembly.GetName().Version.ToString();

            //Título
            string title = string.Empty;

            System.Reflection.Assembly thisAssembly = this.GetType().Assembly;
            object[] attributes = thisAssembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
            if (attributes.Length == 1)
            {
               title = ((AssemblyTitleAttribute) attributes[0]).Title;
            }

            string product = string.Empty;

            //Produto
            attributes = thisAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false);
            if (attributes.Length == 1)
            {
                product = ((AssemblyProductAttribute)attributes[0]).Product;
            }
Responder Citar

20/12/2011

Jefferson

Valeu cara.

Mas o codigo estava dando erro de indice.

Alterei desta forma:
Funcionou

object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
AssemblyTitleAttribute tituloPagina = (AssemblyTitleAttribute)attributes[0];

string versao = this.GetType().Assembly.GetName().Version.ToString();

attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
AssemblyProductAttribute produto = (AssemblyProductAttribute)attributes[0];

lbProduto.Text= produto.Product;
lbTituloPagina.Text= tituloPagina;
lbVersao.Text= versao;
Responder Citar

20/12/2011

Jefferson

Valeu cara. Mas o codigo estava dando erro de indice. Alterei desta forma: Funcionou object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); AssemblyTitleAttribute tituloPagina = (AssemblyTitleAttribute)attributes[0]; string versao = this.GetType().Assembly.GetName().Version.ToString(); attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); AssemblyProductAttribute produto = (AssemblyProductAttribute)attributes[0]; lbProduto.Text= produto.Product; lbTituloPagina.Text= tituloPagina.Title; lbVersao.Text= versao;
Responder Citar