Compartilhar via


Expondo os tipos de Designers visuais

Visual Studiodeve ter acesso às definições de classe e tipo em tempo de design para exibir um designer visual. Classes são carregados a partir de um conjunto predefinido de conjuntos que incluem o conjunto completo de dependência do projeto atual (referências mais suas dependências). Talvez também seja necessário para designers visuais para classes de acesso e tipos que são definidos nos arquivos gerados por ferramentas personalizadas.

O Visual Basic e Visual C# sistemas de projeto oferecem suporte para acessar a tipos e classes geradas através de temporário portátil arquivos executáveis (temporário PEs). Qualquer arquivo gerado por uma ferramenta personalizada pode ser compilado em um assembly temporário para que os tipos podem ser carregados a partir desses assemblies e expostos aos designers. A saída de cada ferramenta personalizada é compilada em uma separada PE temporária e o sucesso ou fracasso desta compilação temporária depende somente se o arquivo gerado pode ser compilado. Mesmo que um projeto pode não ser compilado como um todo, PEs temporários individuais ainda esteja disponível para os designers.

O sistema de projeto fornece suporte completo para controlar alterações para o arquivo de saída de uma ferramenta personalizada, desde que essas alterações são o resultado da execução da ferramenta personalizada. Cada vez que a ferramenta personalizada é executada, uma nova PE temporária é gerada, e são enviadas notificações apropriadas para designers.

Dica

Porque o arquivo executável de geração de programas temporários ocorre em segundo plano, sem erros são relatados para o usuário se a compilação falhar.

Ferramentas personalizadas que se beneficiar do suporte do PE temporário devem seguir as seguintes regras:

  • GeneratesDesignTimeSourcedeve ser definido como 1 no registro.

    Nenhuma compilação do arquivo executável de programa ocorre sem essa configuração.

  • O código gerado deve ser no mesmo idioma como a configuração de projeto global.

    O PE temporário é compilado, independentemente do que a ferramenta personalizada relata como a extensão solicitada na DefaultExtension desde que GeneratesDesignTimeSource é definido como 1 no registro. A extensão não precisa ser. vb,. cs ou. jsl; ele pode ser qualquer extensão.

  • O código gerado pela ferramenta personalizada deve ser válido e necessário compilar o seu próprio usando apenas o conjunto de referências presentes no projeto no momento Generate termina a execução.

    Quando uma PE temporária é compilada, o único arquivo de origem fornecido ao compilador é a saída da ferramenta personalizada. Portanto, uma ferramenta personalizada que usa uma PE temporária deve gerar arquivos de saída que podem ser compilados independentemente dos outros arquivos no projeto.

Consulte também

Conceitos

Introdução ao objeto BuildManager

Implementando os geradores de arquivo único

Determinando o Namespace padrão

Registrando os geradores de arquivo único