Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Eventos de build no Visual Basic podem ser usados para executar scripts, macros ou outras ações como parte do processo de compilação. Eventos de pré-build ocorrem antes da compilação; eventos pós-build ocorrem após a compilação.
Como especificar eventos de pré-construção e pós-construção
Para exibir ou alterar eventos de compilação (build) para um projeto do Visual Basic .NET Core ou .NET 5 e posterior, clique com o botão direito no nó do projeto e escolha Propriedades (ou pressione Alt+Enter), e vá para Compilar>Eventos. Insira a linha de comando desejada. O diretório de trabalho é o diretório de saída.
Para projetos do .NET Framework, siga estas etapas:
Com um projeto selecionado no Gerenciador de Soluções, no menu Projeto, clique em Propriedades.
Clique na guia Compilar.
Clique no botão Build Events para abrir a caixa de diálogo Build Events.
Insira os argumentos da linha de comando para sua ação de pré-compilação ou pós-compilação e clique em OK.
Nota
Adicione uma call instrução antes de todos os comandos pós-build que executam .bat arquivos. Por exemplo, call C:\MyFile.bat ou call C:\MyFile.bat call C:\MyFile2.bat.
Nota
Se o evento de pré-compilação ou pós-compilação não for concluído com êxito, você poderá encerrar a compilação fazendo com que sua ação de evento retorne um código diferente de zero (0), que indica uma ação bem-sucedida.
Você pode referenciar "macros" (que na prática são nomes de propriedades do MSBuild) nos scripts. Para fazer referência a uma propriedade, use a sintaxe $(PropertyName), que é substituída pelo valor da propriedade quando o script de evento é executado. Para obter uma lista de valores comumente usados, consulte as propriedades comuns do MSBuild. Pode haver outras propriedades, além das definidas no arquivo de projeto, em quaisquer arquivos importados dentro do arquivo de projeto, em variáveis de ambiente ou passadas na linha de comando usando a opção -p MSBuild durante os builds de linha de comando.
Exemplo: como alterar informações de manifesto usando um evento de pós-build
O procedimento a seguir mostra como definir a versão mínima do sistema operacional no manifesto do aplicativo usando um comando .exe chamado a partir de um evento pós-build (o arquivo .exe.manifest no diretório do projeto). A versão mínima do sistema operacional é um número de quatro partes, como 4.10.0.0. Para fazer isso, o comando alterará a seção <dependentOS> do manifesto:
<dependentOS>
<osVersionInfo>
<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
</osVersionInfo>
</dependentOS>
Para criar um comando .exe para alterar o manifesto do aplicativo
Crie um aplicativo de console para o comando. No menu Arquivo, clique em Novo e em Projeto.
Na caixa de diálogo Novo Projeto, no nó Visual Basic, selecione Windows e, em seguida, o modelo Aplicativo de Console. Nomeie o projeto
ChangeOSVersionVB.Em Module1.vb, adicione a seguinte linha às outras instruções
Importsna parte superior do arquivo:Imports System.XmlAdicione o seguinte código em
Sub Main:Sub Main() Dim applicationManifestPath As String applicationManifestPath = My.Application.CommandLineArgs(0) Console.WriteLine("Application Manifest Path: " & applicationManifestPath.ToString) 'Get version name Dim osVersion As Version If My.Application.CommandLineArgs.Count >= 2 Then osVersion = New Version(My.Application.CommandLineArgs(1).ToString) Else Throw New ArgumentException("OS Version not specified.") End If Console.WriteLine("Desired OS Version: " & osVersion.ToString()) Dim document As XmlDocument Dim namespaceManager As XmlNamespaceManager namespaceManager = New XmlNamespaceManager(New NameTable()) With namespaceManager .AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1") .AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2") End With document = New XmlDocument() document.Load(applicationManifestPath) Dim baseXPath As String baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os" 'Change minimum required OS Version. Dim node As XmlNode node = document.SelectSingleNode(baseXPath, namespaceManager) node.Attributes("majorVersion").Value = osVersion.Major.ToString() node.Attributes("minorVersion").Value = osVersion.Minor.ToString() node.Attributes("buildNumber").Value = osVersion.Build.ToString() node.Attributes("servicePackMajor").Value = osVersion.Revision.ToString() document.Save(applicationManifestPath) End SubO comando usa dois argumentos. O primeiro argumento é o caminho para o manifesto do aplicativo (ou seja, a pasta na qual o processo de build cria o manifesto, normalmente <ProjectName>.publish). O segundo argumento é a nova versão do sistema operacional.
No menu Compilar, clique em Compilar Solução.
Copie o arquivo .exe para um diretório, como C:\TEMP\ChangeOSVersionVB.exe.
Em seguida, invoque esse comando em um evento pós-build para alterar o manifesto do aplicativo.
Para invocar um evento de pós-build para alterar o manifesto do aplicativo
Crie um aplicativo do Windows para o projeto a ser publicado. No menu Arquivo, clique em Novo e em Projeto.
Na caixa de diálogo Novo Projeto, no nó Visual Basic, selecione Área de Trabalho do Windows e, em seguida, o modelo Aplicativo do Windows Forms. Nomeie o projeto
VBWinApp.Com o projeto selecionado no Gerenciador de Soluções, no menu Projeto, clique em Propriedades.
No Designer de Projeto, acesse a página Publicar e defina o Local de publicação como C:\TEMP.
Publique o projeto clicando em Publicar Agora.
O arquivo de manifesto será criado e colocado em C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. Para exibir o manifesto, clique com o botão direito do mouse no arquivo, clique em Abrir com, então clique em Selecionar um programa em uma lista de programas instalados e clique em Bloco de Notas.
Pesquise no arquivo o elemento
<osVersionInfo>. Por exemplo, a versão pode ser:<os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />No Designer de Projeto, vá para a guia Compilar e clique no botão Eventos de Build para abrir a caixa de diálogo Eventos de Build.
Na caixa Linha de Comando do Evento de Pós-Build, digite o seguinte comando:
C:\TEMP\ChangeOSVersionVB.exe "$(TargetPath).manifest" 5.1.2600.0Quando você cria o projeto, esse comando altera a versão mínima do sistema operacional no manifesto do aplicativo para 5.1.2600.0.
A macro
$(TargetPath)expressa o caminho completo para o executável que está sendo criado. Portanto,$(TargetPath).manifestespecifica o manifesto do aplicativo criado no diretório bin . A publicação copia esse manifesto para o local de publicação que você definiu anteriormente.Publique o projeto novamente. Acesse a página Publicar e clique em Publicar Agora.
Exiba o manifesto novamente. Para exibir o manifesto, vá para o diretório de publicação, clique com o botão direito do mouse no arquivo, clique em Abrir com, então em Selecionar o programa em uma lista e, em seguida, clique no Bloco de Notas.
A versão agora deve ler:
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />