• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

crisoft

Publish Version

4 mensagens neste tópico

Olá a todos.

Comecei à pouco tempo a programar em C#, por isso sou uma novata nisto e ainda estou na fase de explorar as funcionalidades para poder criar a minha primeira desktop application.

Alguém me sabe dizer como passar automáticamente para uma caption a versão da aplicação?

Para visualizar numa janela do tipo About?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depende da aplicação.

Se for uma aplicação web podes colocar uma key no ficheiro de config e ler esse key.


lblVersion.Text = ConfigurationManager.AppSettings["SITE_VERSION"];

Ou podes usar o reflection para ler a versão que colocaste na assembly do teu programa.


using System.Reflection;

	public static void AssemblyProperties(ref string product, ref string version)
	{
		try
		{
			Assembly objAssembly = Assembly.GetExecutingAssembly();


			foreach(Attribute attr in Attribute.GetCustomAttributes(objAssembly)) 
			{
				if (attr.GetType() == typeof(AssemblyProductAttribute))
				{
					product = ((AssemblyProductAttribute)attr).Product;
				}
				if (attr.GetType() == typeof(AssemblyVersionAttribute))
				{
					version = ((AssemblyVersionAttribute)attr).Version;
				}
			}

			string delimStr = ",=";
			char[] delimiter = delimStr.ToCharArray();
			string[] strAssembly = objAssembly.ToString().Split(delimiter);
			version = strAssembly[2];
		}
		catch(Exception ex)
		{
			Log(ex);
		}
	}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito obrigado.

Entretanto também descobri que que se inserir um novo item na minha aplicação desktop do tip About Box, posso adaptar a parit do código gerado toda a informação de que preciso:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;

namespace PPTime
{
    partial class AboutBox1 : Form
    {
        public AboutBox1()
        {
            InitializeComponent();
            this.Text = String.Format("About {0} {0}", AssemblyTitle);
            this.labelProductName.Text = AssemblyProduct;
            this.labelVersion.Text = String.Format("Version {0} {0}", AssemblyVersion);
            this.labelCopyright.Text = AssemblyCopyright;
            this.labelCompanyName.Text = AssemblyCompany;
            this.textBoxDescription.Text = AssemblyDescription;
        }

        #region Assembly Attribute Accessors

        public string AssemblyTitle
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
                if (attributes.Length > 0)
                {
                    AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
                    if (titleAttribute.Title != "")
                    {
                        return titleAttribute.Title;
                    }
                }
                return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
            }
        }

        public string AssemblyVersion
        {
            get
            {
                return Assembly.GetExecutingAssembly().GetName().Version.ToString();
            }
        }

        public string AssemblyDescription
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyDescriptionAttribute)attributes[0]).Description;
            }
        }

        public string AssemblyProduct
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyProductAttribute)attributes[0]).Product;
            }
        }

        public string AssemblyCopyright
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
            }
        }

        public string AssemblyCompany
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyCompanyAttribute)attributes[0]).Company;
            }
        }
        #endregion
    }
}


Mas não há dúvidas que o teu método resume exactamente o que eu precisava...

Muito obrigada, mais uma vez

crisoft

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora alguém pode-me explicar qual a melhor forma de passar código para aqui (para ficar com uma formatação adequada?)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora