Introdução ao objeto BuildManager
O BuildManager objeto é usado por desenvolvedores de terceiros para gerenciar os arquivos executáveis portáteis (PE). Arquivos PE são compilados a partir de ferramentas personalizadas que indicam ao projeto do sistema que sua saída deve ser compilado em uma PE temporária.
O BuildManager objeto e ferramentas personalizadas são usadas no desenvolvimento de designers visuais. 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 de 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 de saídas de uma ferramenta personalizada. Assim, os designers e ferramentas personalizadas freqüentemente trabalham juntos para gerar a interface do usuário de tempo de design. Um bom exemplo disso é a ferramenta personalizada que gera classes de um arquivo XSD. Designers visuais precisarão, às vezes, instanciar as classes geradas para descobrir o que é proffered através de um conjunto de dados para fornecer a interface do usuário para habilitar o suporte em 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 pode ou não ser compilado subseqüentemente. Uma seqüência típica de eventos é:
O usuário ou um designer define o CustomTool propriedade de um item de projeto.
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.
Juntamente com as referências do projeto, a saída da ferramenta personalizada é compilada em um executável portátil (PE temporário).
Dica
A saída será compilada somente em uma PE temporária se a ferramenta personalizada é registrada com o GeneratesDesignTimeOutput o valor de registro definido como 1.
Uma descrição do 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 para o PEs temporário. O DesignTimeOutputMonikers propriedade é uma matriz de todos os os PE identificadores (nomes) no projeto. O sistema de projeto atribui identificadores de origem 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 obtém um identificador de origem como um parâmetro e retorna uma descrição do PE em uma cadeia XML.
O BuildManagerEventsClass do objeto DesignTimeOutputDeleted evento é gerado quando um arquivo de 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 um temporários do PE é executada. 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 são 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 alternar 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 a renomeação simbólica no tipo 'Tipo' e o id do tipo usado em dataset1.vb (a saída de um dataset), o gerador de arquivo único obtém 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 de origem para os arquivos temporários do PE e ao monitor 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 da automação no Visual Studio.