Partilhar via


Implantação de um processador de diretiva personalizada

Para usar um processador diretivo personalizado em Visual Studio em qualquer computador, é necessário registrá-lo por um dos métodos descritos em este tópico.

Os métodos alternativas são:

  • Extensão do Visual Studio (VSIX).Isso fornece uma maneira de instalar e desinstalar o processador de diretiva no seu próprio computador e em outros computadores.Normalmente, você pode compactar outros recursos no mesmo VSIX.

  • VSPackage.Se você estiver definindo um VSPackage que contém outros recursos além do processador de diretiva, há um método conveniente para registrar o processador de diretiva.

  • Definir uma chave do Registro.Em esse método, você adiciona uma entrada de Registro para o processador de diretiva.

Você precisará usar um de esses métodos somente se você deseja transformar o modelo de texto em Visual Studio ou em MSBuild.Se você usar um host personalizado em seu próprio aplicativo, seu host personalizado é responsável para localizar os processadores de diretiva para cada diretiva.

Implantando um processador de diretiva em um VSIX

Você pode adicionar um processador diretivo personalizado a Extensão do Visual Studio (VSIX).

Você precisará certificar-se que os dois seguintes itens estão contidos no arquivo de .vsix:

  • O assembly (.dll) que contém a classe diretiva personalizado do processador.

  • Um arquivo de .pkgdef que registra o processador de diretiva.O nome de raiz do arquivo deve ser o mesmo que o assembly.Por exemplo, seus arquivos podem ser chamados CDP.dll e CDP.pkgdef.

Verificar ou alterar o conteúdo de um arquivo de .vsix, alterar sua extensão de nome de arquivo para .zip e abra-o em.Após o conteúdo editado, altere o nome do arquivo de volta a .vsix.

Há várias maneiras de criar um arquivo de .vsix.O procedimento a seguir descreve um método.

Para desenvolver um processador diretivo personalizada em um projeto VSIX

  1. Crie um projeto de VSIX em Visual Studio.

    • Em a caixa de diálogo de Novo Projeto , expanda Visual Basic ou Visual C#, então expanda Extensibilidade.Clique projeto de VSIX.
  2. Em source.extension.vsixmanifest, defina o tipo de conteúdo e suportados edições.

    1. Em o editor do manifesto de VSIX, clique Adicionar Conteúdo e defina suas propriedades da seguinte maneira:

      Tipo de Conteúdo = VSPackage

      Projeto de origem = <o projeto atual>

    2. Clique edições selecionadas e verifique os tipos de instalação em que você deseja que o processador de diretiva para ser útil.

  3. Adicione um arquivo de .pkgdef e defina suas propriedades para ser incluídos no VSIX.

    1. Crie um arquivo de texto e nomeie <assemblyName>.pkgdef.

      <assemblyName> geralmente é o mesmo que o nome do projeto.

    2. Selecione no solution Explorer e defina suas propriedades da seguinte maneira:

      Ação de Compilação = Conteúdo

      Copiar para Diretório de Saída = Copiar sempre

      inclua em VSIX = True

    3. Defina o nome de VSIX e certifique-se que é a identificação exclusiva.

  4. Adicione o seguinte texto ao arquivo de .pkgdef.

    [$RootKey$\TextTemplating]
    [$RootKey$\TextTemplating\DirectiveProcessors]
    [$RootKey$\TextTemplating\DirectiveProcessors\ CustomDirectiveProcessorName]
    @="Custom Directive Processor description"
    "Class"="NamespaceName.ClassName"
    "CodeBase"="$PackageFolder$\AssemblyName.dll"
    

    Substituir os seguintes nomes com seus próprios nomes: CustomDirectiveProcessorName, NamespaceName, ClassName, AssemblyName.

  5. Adicione as seguintes referências para o projeto:

    • Microsoft.VisualStudio.TextTemplating.11.0

    • Microsoft.VisualStudio.TextTemplating.Interfaces.11.0

    • Microsoft.VisualStudio.TextTemplating.VSHost.11.0

  6. Adicionar sua classe personalizada diretiva do processador ao projeto.

    Esta é uma classe pública que deve implementar DirectiveProcessor ou RequiresProvidesDirectiveProcessor.

Para instalar o processador diretivo personalizado

  1. Em o Windows Explorer (Arquivo no windows Explorer 8), abra o diretório de compilação (geralmente bin \ debug ou bin \ release.)

  2. Se você deseja instalar o processador da diretiva em outro computador, copie o arquivo de .vsix em outro computador.

  3. Clique duas vezes no arquivo de .vsix.O instalador de extensão de Visual Studio aparece.

  4. Reinicie Visual Studio.Agora você poderá executar os modelos de texto que contém diretivas que se referem ao processador diretivo personalizado.Cada diretiva é de este formulário:

    <#@ CustomDirective Processor="CustomDirectiveProcessorName" parameter1="value1" … #>

Para desinstalar ou desativar temporariamente o processador diretivo personalizado

  1. Em o menu de Visual StudioFerramentas , clique gerenciador de extensão.

  2. Selecione o VSIX que contém o processador de diretiva, clique em Desinstalar ou Desativar.

Cc138364.collapse_all(pt-br,VS.110).gifSolução de problemas um processador de diretiva em um VSIX

Se o processador diretivo não funciona, as sugestões a seguir podem ajudar:

  • O nome do processador que você especificar na diretiva personalizado deve corresponder CustomDirectiveProcessorName que você especificou no arquivo de .pkgdef.

  • O método de IsDirectiveSupported deve retornar true quando é passado o nome do seu CustomDirective.

  • Se você não puder ver a extensão no gerenciador de extensão, mas o sistema não permitirá que você instalar o, exclua a extensão de %localappdata%\Microsoft\VisualStudio\11.0\Extensions\.

  • Abra o arquivo de .vsix e inspecione seu conteúdo.Para abri-lo, altere a extensão de nome de arquivo .zip a.Verifique que contém os arquivos .dll, de .pkgdef, e de extension.vsixmanifest.O arquivo de extension.vsixmanifest deve conter a lista apropriado no nó de SupportedProducts, e também deve conter um nó de VsPackage sob o nó de conteúdo:

    <Content>

    <VsPackage>CustomDirectiveProcessor.dll</VsPackage>

    </Content>

Implantando um processador de diretiva em um VSPackage

Se seu processador de diretiva é parte de um VSPackage que esteja instalado no GAC, você pode fazer com que o sistema gerar o arquivo de .pkgdef para você.

Coloque o seguinte atributo em sua classe de pacote:

[ProvideDirectiveProcessor(typeof(DirectiveProcessorClass), "DirectiveProcessorName", "Directive processor description.")]
ObservaçãoObservação

Este atributo é colocado na classe de pacote, não a classe diretiva do processador.

O arquivo de .pkgdef será gerado quando você criar o projeto.Quando você instala o VSPackage, o arquivo de .pkgdef registrará o processador de diretiva.

Verifique se o arquivo de .pkgdef aparece na pasta de compilação, que é geralmente bin \ debug ou bin \ release.Se não for exibido, abra o arquivo .csproj em um editor de texto, e remova o nó seguir: <GeneratePkgDefFile>false</GeneratePkgDefFile>.

Para mais informações, consulte VSPackages.

Definindo uma chave do Registro

Este método para instalar um processador diretivo personalizado é preferido o menos.Não fornece uma maneira conveniente ativa e desativa o processador de diretiva, e não fornece um método de distribuir o processador de diretiva para outros usuários.

Observação de cuidadoCuidado

Edite o Registro incorretamente fortemente pode danificar o seu sistema.Antes de fazer alterações no Registro, certifique-se de fazer backup dos dados avaliados no computador.

Para registrar um processador externo definindo uma chave do Registro

  1. Execução regedit de menu Iniciar windows.

  2. Em o, navegue até regedit

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\TextTemplating\DirectiveProcessors

    Se você deseja instalar o processador de diretiva na versão de avaliação de Visual Studio, inserir “Exp” após “11,0”.

  3. Adicione uma chave do Registro que tem o mesmo nome que a classe diretiva do processador.

    • Em a árvore de Registro, clique com o botão direito do mouse no nó de DirectiveProcessors , aponte para Novo, e então clique em Chave.
  4. Em o novo nó, adicionar valores de cadeia de caracteres para a classe e o CodeBase ou o assembly, de acordo com as tabelas a seguir.

    1. Clique com o botão direito do mouse no nó que você criou, aponte-o para a Novo, clique em Valor da cadeia de caracteres.

    2. Edite o nome de valor.

    3. Clique duas vezes no nome e editar os dados.

Se o processador diretivo personalizado não estiver no GAC, as subchaves do Registro devem ser semelhantes a tabela a seguir:

Nome

Tipo

Dados

(Padrão)

REG_SZ

(valor não definido como)

Classe

REG_SZ

<Namespace Name>.<Class Name>

CodeBase

REG_SZ

<Your Path>\<Your Assembly Name>

Se ele estiver no GAC, as subchaves do Registro devem ser semelhantes a tabela a seguir:

Nome

Tipo

Dados

(Padrão)

REG_SZ

(valor não definido como)

Classe

REG_SZ

<Your Fully Qualified Class Name>

Assembly

REG_SZ

<Your Assembly Name in the GAC>

Consulte também

Conceitos

Criação de processadores de diretiva de modelo personalizado T4 texto