Introdução ao objeto BuildManager

The BuildManager objeto é usado pelos desenvolvedores de terceiros para gerenciar os arquivos executável portáveis (PE). Arquivos PE são compilados ferramentas personalizadas que indicam para o projeto no sistema de sua saída a ser compilado em um PE temporário.

The BuildManager objeto e ferramentas personalizadas são usadas no desenvolvimento dos designers visuais. Um designer de Visual Studio Fornece uma interface gráfica do usuário para um arquivo. Para criar a interface do usuário, o designer talvez precise ser capaz de instanciar tipos descritos os arquivos de item de projeto.Arquivos temporários do PE da ferramentas personalizadas são arquivos de assembly que encapsulam tipos descritos em itens de projeto saídas de uma ferramenta personalizada.Assim, os designers e ferramentas personalizadas freqüentemente trabalham juntos para gerar a interface do usuário do time de design.Um mercadoria exemplo disso é a ferramenta personalizada que gera classes de um arquivo XSD.Designers visuais precisará, às vezes, instanciar sistema autônomo classes geradas para descobrir o que é proffered por meio de um conjunto de dados para fornecer interface do usuário para habilitação do suporte de time de design para recursos sistema autônomo vinculação de dados.

Ferramentas personalizadas

Uma ferramenta personalizada utiliza sistema autônomo entrada o Sumário de um item de projeto de arquivo e gera um arquivo de item novo projeto que podem ou não pode ser compilado subseqüentemente.Uma sequência de eventos típica é:

  1. O usuário ou um designer define o CustomTool propriedade de um item de projeto.

  2. A ferramenta personalizada é executada com o Sumário do item de projeto sistema autônomo entrada.Se a ferramenta personalizada não reconhecer a entrada, os erros são relatados para o usuário sistema autônomo determinadas pela ferramenta personalizada.Para obter mais informações, consulte RunCustomTool.

  3. Juntamente com as referências de projeto, a saída da ferramenta personalizada é compilada em um executável portátil (PE temporário).

    Observação:

    A saída é compilada somente em uma PE temporária se a ferramenta personalizada é registrada com o GeneratesDesignTimeOutput valor do registro é definido como 1.

  4. Uma descrição do PE está disponível chamando o BuildManager objeto BuildDesignTimeOutput método.

    A saída PE temporária retornada por BuildDesignTimeOutput é o seguinte:

    <root>
        <Application private_binpath=”full output path to temporary PE,
    excluding the name”/>
        <Assembly
            codebase = “filename of the temporary PE, e.g., foo.dll””
            name = “name of the temporary PE == filename without the 
    extension, e.g., “foo””
            version = “always “0.0.0.0””
            snapshot_id = “unique ID number” 
            replaceable = “currently unused; always set to “True””
        />
    </root>
    

O objeto BuildManager

The BuildManager objeto fornece acesso para o PEs temporário. The DesignTimeOutputMonikers propriedade é uma matriz de todos os os PE monikers (nomes) em que o projeto. O sistema de projeto atribui monikers PE com base na hierarquia do projeto.Por exemplo, se houvesse um arquivo do XML designer, SomeData.xsd na Pasta1 de Projeto1 que gerou a saída, SomeData.cs, em seguida, o moniker seria Project1\Folder1\SomeData.cs. The BuildDesignTimeOutput método obtém um identificador de origem sistema autônomo um parâmetro e retorna uma descrição do PE uma cadeia de caracteres XML.

The BuildManagerEventsClass objeto DesignTimeOutputDeleted evento é disparado quando um arquivo de item de projeto que gera uma PE é excluído do projeto. The DesignTimeOutputDirty evento é disparado sempre que uma ferramenta personalizada (gerador de arquivo único), que gera uma PE temporária é executada. Todos os geradores de arquivo único em um projeto são executados quando:

  • Um projeto é aberto imediatamente após uma atualização.

  • O namespace raiz foi alterado.

Geradores de arquivo único individuais são executados quando:

  • O documento com um gerador de arquivo único é salvo (por exemplo, um conjunto de dados).

  • O documento com um gerador de arquivo único é em aberto e sujo, e o usuário alternar para um documento diferente dentro de Visual Studio.

  • Um arquivo de projeto com um gerador de single file for renomeado ou movido.

  • O usuário symbolically renomeou um tipo que é usado dentro do arquivo de saída de um gerador de arquivo único.Por exemplo, se o usuário chama renomeação simbólica foo' tipo' e essa ID de tipo usado em dataset1.vb (a saída de um conjunto de dados), o gerador de arquivo único é chamado após concluir a operação de renomeação.

clicar no link na tabela a seguir para uma demonstração de como programar usando o BuildManager objeto.

Para

Consulte

Exibir identificadores de origem para os arquivos temporários do PE e para monitorar BuildManagerEvents.

Como: Use o BuildManager e BuildManagerEvents objetos

Fornecedores de terceiros

Grande parte o BuildManager funcionalidade do objeto também pode ser acessada através do ITypeResolutionService interface. No entanto, outros fornecedores que deseja que um designer abrangente devem usar o DesignTimeOutputMonikers propriedade e BuildDesignTimeOutput método. Para obter mais informações, consulte The Spectrum do Visual Studio Automation.