Introdução ao objeto BuildManager

O BuildManager objeto é usado por desenvolvedores de terceiros para gerenciar o portátil arquivos de (PE) executável. Arquivos PE são compilados a partir de ferramentas personalizadas que indicam ao projeto do sistema que sua saída deve ser compilado em temporários do PE.

O BuildManager objeto e ferramentas personalizadas são usadas no desenvolvimento dos designers visual. Um designer no 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 nos arquivos de item do projeto. Arquivos temporários do PE a partir de ferramentas personalizadas são arquivos de assembly que encapsulam tipos descritos em itens de projeto são as saídas de uma ferramenta personalizada. Assim, designers e ferramentas personalizadas freqüentemente trabalham juntos para gerar a interface do usuário em tempo de design. Um bom exemplo disso é a ferramenta personalizada que gera classes de um arquivo XSD. Designers visuais precisarão, às vezes, instanciar classes geradas para descobrir o que é dedicaram através de um conjunto de dados para fornecer a interface do usuário para habilitar o suporte de tempo de design para recursos como vinculação de dados.

Ferramentas personalizadas

Uma ferramenta personalizada aceita como entrada o conteúdo de um item de projeto de arquivo e gera um novo arquivo de item de projeto que podem ou não ser compilado subseqüentemente. Uma seqüência típica de eventos é:

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

  2. A ferramenta personalizada é executada com o conteúdo do item de projeto como entrada. Se a ferramenta personalizada não reconhecer a entrada, são relatados erros ao usuário conforme determinado pela ferramenta personalizada. Para obter mais informações, consulte RunCustomTool.

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

    ObservaçãoObservação

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

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

    A saída do 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., sample.dll""
            name = "name of the temporary PE == filename without the 
    extension, e.g., "sample""
            version = "always "0.0.0.0""
            snapshot_id = "unique ID number" 
            replaceable = "currently unused; always set to "True""
        />
    </root>
    

O objeto BuildManager

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

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

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

  • O namespace raiz foi alterado.

Geradores de individual único arquivo sejam executados quando:

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

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

  • Um arquivo do projeto com um gerador de arquivo único é renomeado ou movido.

  • O usuário simbolicamente renomeou um tipo que é usado dentro do arquivo de saída de um gerador de arquivo único. Por exemplo, se o usuário invoca simbólico Renomear no tipo 'Tipo' e o id do tipo usado em dataset1.vb (a saída de um dataset), o único arquivo gerador chamado após a conclusão da operação de renomeação.

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

Para

Consulte

Exibir os identificadores para os arquivos temporários do PE e ao monitor BuildManagerEvents.

How to: Use o BuildManager e objetos de BuildManagerEvents

Fornecedores terceirizados

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