Share via


Como: especificar eventos de compilação (C#)

Use eventos compilação para especificar comandos executados inicia a compilação antes ou após a compilação conclusão.Criar eventos são executados somente se a compilação com êxito atingir esses pontos em o processo de criação.

Quando um projeto é criado, eventos Pre-Build são adicionados a um arquivo chamado PreBuildEvent. bat e eventos post-build são adicionados a um arquivo chamado PostBuildEvent.Se você deseja garantir a verificação de erros, adicione seus próprios comandos de verificação de erros para as etapas de criação.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio.

Como Especificar Eventos Pre-Build e Post-Build

Para especificar um evento compilação

  1. No Solution Explorer, selecione o projeto para o qual você deseja especificar o evento de compilação.

  2. No menu Project, clique em Properties..

  3. Selecione a Build Events Guia.

  4. Na caixa Pre-build event command line, especifique a sintaxe do evento compilação.

    ObservaçãoObservação

    Eventos Pre-Build não são executadas se o projeto está atualizado e nenhum compilação é acionado.

  5. Na caixa Post-build event command line, especifique a sintaxe do evento compilação.

    ObservaçãoObservação

    Adicione uma instrução call antes de todos os comandos Post-Build que executam arquivos .bat.Por exemplo, call C:\MyFile.bat ou call C:\MyFile.bat call C:\MyFile2.bat.

  6. Na caixa Run the post-build event, especifique em que condições para executar o evento Post-Build.

    ObservaçãoObservação

    Para adicionar longa Sintaxe, ou para selecionar as macros de compilação do Evento/Post-build linha de comando caixa de diálogo evento de pré-compilação, clique no botão reticências ( )para exibir uma caixa de edição.

    A sintaxe do evento de compilação pode incluir qualquer comando que é válido em um prompt de comando ou em um arquivo. bat.O nome de uma arquivo em lotes deve ser precedido por call para garantir que todos os comandos subsequentes serão executados.

    Nota se o seu evento Pre-Build ou Post-Build não for concluída com êxito, você pode finalizar a compilação por ter sua ação de evento fechado com um código diferente de zero (0), o que indica uma ação bem-sucedida.

Exemplo: Como alterar informações de manifesto usando um evento Post-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 Post-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

  1. Crie um aplicativo de console para o comando.No menu File, aponte para New e clique Project.

  2. Na caixa de diálogo Novo Projeto ,expanda Visual C# , clique em Windows e em seguida, clique no modelo Console Application .Nomeie o projeto ChangeOSVersionVB .

  3. Em Module.vb, adicione a seguinte linha para as outras instruções using na parte superior do arquivo:

    using System.Xml;
    
  4. No Editor de Códigos de ChangeOSVersionCS, substitua o código no namespace Program com o seguinte código:

    class Program
    {
       /// <summary>
       /// This function will set the minimum operating system version for a ClickOnce application.
       /// </summary>
       /// <param name="args">
       /// Command Line Arguments:
       /// 0 - Path to application manifest (.exe.manifest).
       /// 1 - Version of OS
       ///</param>
       static void Main(string[] args)
       {
          string applicationManifestPath = args[0];
          Console.WriteLine("Application Manifest Path: " + applicationManifestPath);
    
          // Get version name.
          Version osVersion = null;
          if (args.Length >=2 ){
             osVersion = new Version(args[1]);
          }else{
             throw new ArgumentException("OS Version not specified.");
          }
          Console.WriteLine("Desired OS Version: " + osVersion.ToString());
    
          XmlDocument document;
          XmlNamespaceManager namespaceManager;
          namespaceManager = new XmlNamespaceManager(new NameTable());
          namespaceManager.AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1");
          namespaceManager.AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2");
    
          document = new XmlDocument();
          document.Load(applicationManifestPath);
    
          string baseXPath;
          baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os";
    
          // Change minimum required operating system version.
          XmlNode node;
          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);
       }
    }
    

    O comando utiliza dois argumentos: o caminho de manifesto do aplicativo (ou seja, a pasta no qual o processo de criação cria o manifesto, geralmente ProjectName.publish) e a nova versão do sistema operacional.

  5. Crie o projeto.Sobre o Build menu, clique em Build Solution.

  6. Copie o arquivo .exe para uma pasta, como C:\TEMP\ChangeOSVersionVB.exe .

Em seguida, chame este comando em um evento Post-Build para alterar o manifesto do aplicativo.

Para chamar um evento Post-Build para alterar o manifesto do aplicativo

  1. Crie um aplicativo do Windows para o projeto a ser publicado.No menu File, aponte para New e clique Project.

  2. Na caixa de diálogo Novo Projeto ,expanda Visual C# , clique em Windows e em seguida, clique no modelo Console Application .Nomeie o projeto VBWinApp .

  3. Com um projeto selecionado no Solution Explorer, no menu Project clique em Properties.

  4. No Criador de projeto, vá para a página Publish e defina Publishing location C:\TEMP\.

  5. 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 e clique em Abrir com ,clique em seguida, selecione o programa a partir de uma lista e em seguida, clique em Bloco de notas .

    Pesquisar no arquivo para o elemento <osVersionInfo>.Por exemplo, a versão pode ser:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. No Criador de projeto, clique na guia Criar eventos e clique no botão Editar Post-Build .

  7. Na caixa Linha de Comando de Eventos Post-Build , digite o seguinte comando:

    C:\TEMP\ChangeOSVersionVB.exe "$ (TargetPath) .manifest" 5.1.2600.0

    Ao criar o projeto, esse comando alterará a versão mínima do sistema operacional no manifesto do aplicativo para 5.1.2600.0.

    Porque a macro $(TargetPath) expressa o caminho completo para o arquivo executável que está sendo criado, o $(TargetPath).manifest especificará o manifesto do aplicativo criado no diretório Bin.A publicação copiará esse manifesto para o local de publicação que você definiu anteriormente.

  8. Publicar o projeto novamente.Vá para a página Publish 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 e clique em Abrir com e, em seguida, selecione o programa a partir de uma lista e em seguida, clique em Bloco de notas .

    A versão agora deve ler:

    <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
    

Consulte também

Tarefas

Como: especificar eventos de compilação (Visual Basic)

Referência

Página de eventos de compilação, Project Designer (C#)

Evento/Post-build linha de comando caixa de diálogo evento de pré-compilação

Outros recursos

Compilando aplicativos no Visual Studio