VB .NET - Obtendo informações do Assembly
No artigo de hoje vou mostrar como podemos obter informações do Assembly usando a linguagem VB .NET em um projeto Windows Forms. |
A caixa de diálogo Informações do Assembly é usada para especificar os valores dos atributos do assembly .NET Framework, que são armazenados no arquivo AssemblyInfo criado automaticamente com o seu projeto.
No Solution Explorer, para projeto Visual Basic, o arquivo está localizado no nó
My Project (clique no ícone Show All Files (mostrar todos os
arquivos) para vê-lo);
As informações contidas no arquivo são:
Title | Especifica um título para o manifesto do assembly. Corresponde à AssemblyTitleAttribute. |
Description | Especifica uma descrição opcional para o manifesto do assembly. Corresponde à AssemblyDescriptionAttribute. |
Company | Especifica o nome da empresa para o manifesto do assembly. Corresponde à AssemblyCompanyAttribute. |
Product | Especifica um nome do produto para o manifesto do assembly. Corresponde à AssemblyProductAttribute. |
Copyright | Especifica um aviso de copyright para o manifesto do assembly. Corresponde à AssemblyCopyrightAttribute |
Trademark | Especifica uma marca registrada para o manifesto do assembly. Corresponde à AssemblyTrademarkAttribute. |
Assembly Version | Especifica um número de versão que instrui o compilador para usar uma versão específica para o recurso de versão de arquivo Win32. Corresponde à AssemblyFileVersionAttribute. |
GUID | Um GUID exclusivo que identifica o conjunto. Quando você cria um projeto, Visual Studio gera um GUID para o assembly. Corresponde à Guid. |
Neutral Language | Especifica qual a cultura o assembly suporta. Corresponde à NeutralResourcesLanguageAttribute. O padrão é (nenhum). |
Make assembly COM-Visible | Especifica se os tipos no Assesmbly estarão disponíveis para COM. Corresponde à ComVisibleAttribute |
Usando os
atributos do Assembly é possível especificar as meta informações do assembly,
como o título do produto ou versão, quer automaticamente pelo Visual Studio ou
manualmente editando o arquivo "AssemblyInfo.vb" em My Project.
Neste artigo vamos criar uma classe para ler os atributos a partir de qualquer
assembly. Para obter informação de um conjunto de AssemblyInfo o construtor pode
ser usado, passando o conjunto específico. Se o atributo assembly correspondente
a uma propriedade não for encontrado, será retornado nothing.
Recursos usados :
Criando o projeto no VS 2013 Express Edition
Abra o VS 2013 Express for Windows desktop e clique em New Project;
A seguir selecione Visual Basic -> Windows Forms Application;
Informe o nome Assembly_Info_vbn e clique no botão OK;
No formulário form1.vb vamos incluir os seguintes controles a partir da ToolBox:
1 Label -
1 TextBox - txtAssembly
1 TextBox - txtInfo, Multiline = True
2 Buttons - btnAssemblyInfo e btnSair
1 Button - btnProcurar
Disponha os controles no formulário conforme o leiaute da figura abaixo:
Criando a classe para obter informações do Assembly
Podemos obter as informações do Assembly diretamente sem carregar o assembly usando o código abaixo:
AssemblyName.GetAssemblyName("nome_do_arquivo.exe").Version
ou ainda
Dim _assembly As AssemblyName =
AssemblyName.GetAssemblyName("c:\winnt\microsoft.net\framework\v1.0.3705\mscorlib.dll")
Console.WriteLine(_assembly.Version.ToString())
Podemos também usar o código a seguir :
Dim aAssembly As Assembly = Assembly.GetExecutingAssembly Dim Descricao As AssemblyDescriptionAttribute = _ Dim Titulo As AssemblyTitleAttribute = _ MessageBox.Show("Titulo : " & Titulo.Title & " Descrição " & Descricao.Description)
|
Ou podemos criar uma classe para facilitar o trabalho.
No menu PROJECT clique em Add Class e informe o nome InformacaoAssembly.vb e clique no botão Add;
A seguir digite o código abaixo nesta classe:
Imports System.IO Imports System.Reflection Public Class InformacaoAssembly Private ReadOnly assembly As Assembly Public Sub New(assembly As Assembly) ''' <summary> ''' <summary> ''' <summary> ''' <summary> ''' <summary> Protected Function GetAttributeValue(Of TAttr As Attribute)(resolveFunc As Func(Of TAttr, String),
End Class |
Poderíamos ter criado métodos estáticos (Shared) na classe acima. Fica a seu critério alterar o código.
No evento Click do botão Procurar inclua o código abaixo para abrir a caixa de diálogo OpenFileDialog:
Private Sub btnProcurar_Click(sender As Object, e As EventArgs) Handles btnProcurar.Click Dim ofd1 As New OpenFileDialog ofd1.Multiselect = False Dim dr As DialogResult = ofd1.ShowDialog() If dr = DialogResult.OK Then |
Agora é só alegria; basta usar a classe no seu projeto.
Para isso vamos incluir o código no evento Click do botão - Obter Informações do Assembly - conforme abaixo:
Private Sub btnAssemblyInfo_Click(sender As Object, e As EventArgs) Handles btnAssemblyInfo.Click Dim assemblyInfo As InformacaoAssembly txtInfo.Text += "Company: " + assemblyInfo.Company + vbNewLine Catch ex As Exception |
Para obter informação de outro assembly basta selecionar o arquivo. Para obter informações do assembly da aplicação local basta deixar a caixa de texto vazia e clicar
Executando o projeto iremos obter o seguinte resultado:
Pegue o projeto completo aqui : Assembly_Info_vbn.zip
Porque pela graça sois salvos, por meio
da fé; e isto não vem de vós, é dom de Deus.
Não vem das obras, para que ninguém se glorie;
Efésios 2:8,9
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Exibindo o número da versão da sua aplicação - Macoratti.net