A implantação de um processador de diretiva personalizada

Para usar um processador de diretriz personalizado no Visual Studio em qualquer computador, você deve registrá-lo por um dos métodos descritos neste tópico.

Os métodos alternativos são:

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

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

  • Defina uma chave de registro. Nesse método, você pode adicionar uma entrada de registro para o processador de diretriz.

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

A implantação de um processador de diretiva em um VSIX

Você pode adicionar um processador de diretriz personalizado para um Extensão de Visual Studio (VSIX).

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

  • O assembly (. dll) que contém a classe de processador de diretriz personalizada.

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

Para inspecionar ou alterar o conteúdo de um arquivo de .vsix, altere a extensão de nome de arquivo para. zip e abra-o. Depois de editar o conteúdo, altere o nome do arquivo para .vsix.

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

Para desenvolver um processador de diretriz personalizado em um projeto VSIX

  1. Criar um projeto VSIX em Visual Studio.

    • No Novo projeto caixa de diálogo caixa, expanda Visual Basic ou Visual C#, em seguida, expanda extensibilidade. Clique em o projeto VSIX.
  2. Em source.extension.vsixmanifest, defina o tipo de conteúdo e suporte para edições.

    1. No editor de manifesto de VSIX, clique em Adicionar conteúdo e definir suas propriedades da seguinte maneira:

      Tipo de conteúdo = VSPackage

      Projeto de origem = <o projeto atual>

    2. Clique em Selecionado edições e verificar os tipos de instalação na qual você deseja que o processador de diretriz para ser usada.

  3. Adicionar um arquivo de .pkgdef e definir suas propriedades a serem incluídas na VSIX.

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

      <assemblyName> geralmente é o mesmo nome do projeto.

    2. Selecione-o no Solution Explorer e definir suas propriedades da seguinte maneira:

      Ação de compilação = conteúdo

      Copy to Output Directory = Copy Always

      Incluir no VSIX = True

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

  4. Adicione o seguinte texto no arquivo .pkgdef.

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

    Substitua os seguintes nomes de seus próprios nomes: CustomDirectiveProcessorName, NamespaceName, ClassName, AssemblyName.

  5. Adicione as seguintes referências ao projeto:

    • Microsoft.VisualStudio.TextTemplating.10.0

    • Microsoft.VisualStudio.TextTemplating.Interfaces.10.0

    • Microsoft.VisualStudio.TextTemplating.VSHost.10.0

  6. Adicione a sua classe de processador de diretriz personalizada ao projeto.

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

Para instalar o processador de diretiva personalizada

  1. No Windows Explorer, abra o diretório de compilação (geralmente bin\Debug ou bin\Release).

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

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

  4. Reinicie Visual Studio. Agora, você poderá executar modelos de texto que contêm diretivas que se referem a processador de diretriz personalizado. Cada diretiva é deste formulário:

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

Para desinstalar ou desativar temporariamente o processador de diretriz personalizado

  1. No Visual Studio Ferramentas menu, clique em Extension Manager.

  2. Selecione o VSIX que contém o processador de diretriz e, em seguida, clique em desinstalar ou Desativar.

Solucionando problemas de um processador de diretiva em um VSIX

Se o processador de diretriz não funcionar, as sugestões a seguir podem ajudar:

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

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

  • Se você não conseguir ver a extensão do Extension Manager, mas o sistema não permitirá que você instalá-lo, exclua a extensão de %localappdata%\Microsoft\VisualStudio\10.0\Extensions\.

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

    <Content>

    <VsPackage>CustomDirectiveProcessor.dll</VsPackage>

    </Content>

A implantação de um processador de diretiva no VSPackage

Se o processador de diretriz é parte de um VSPackage que será instalado no GAC, você pode ter o sistema gerar o arquivo .pkgdef para você.

Coloque o seguinte atributo em sua classe de pacote:

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

Esse atributo é colocado na classe de pacote, não a classe do processador de diretriz.

O arquivo .pkgdef será gerado quando você constrói o projeto. Quando você instala o VSPackage, o arquivo .pkgdef registrará o processador de diretriz.

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

Para obter mais informações, consulte VSPackages.

A definição de uma chave do registro

Esse método de instalação de um processador de diretriz personalizado é o menos preferido. Não fornecem uma maneira conveniente de habilitar e desabilitar o processador de diretriz e não fornece um método de distribuição de processador de diretriz para outros usuários.

Aviso

A edição incorreta do Registro pode danificar gravemente seu sistema. Antes de fazer alterações no registro, certifique-se de fazer backup dos dados importantes no computador.

Para registrar um processador de diretriz definindo uma chave do registro

  1. Execute regedit a partir do menu Iniciar do Windows.

  2. Regedit, navegue até

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\TextTemplating\DirectiveProcessors

    Se você deseja instalar o processador de diretriz na versão experimental do Visual Studio, insira "Exp" Depois de "10.0".

  3. Adicione uma chave do registro que tem o mesmo nome da classe do processador de diretriz.

    • Na árvore do registro, clique com o botão direito do DirectiveProcessors nó, aponte para novae em seguida, clique em chave.
  4. No novo nó, adiciona os valores de seqüência de caracteres para a classe e CodeBase ou Assembly, de acordo com as tabelas a seguir.

    1. Clique com o botão direito no nó que você criou, aponte para novae em seguida, clique em O valor de seqüência de caracteres.

    2. Edite o nome do valor.

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

Se o processador de diretriz personalizado não está no GAC, as subchaves do registro devem ter a aparência da tabela a seguir:

Nome

Tipo

Dados

(Padrão)

REG_SZ

(valor não definido)

Classe

REG_SZ

< nome do Namespace >. < nome da classe >

CodeBase

REG_SZ

< caminho > \ < seu nome de Assembly >

Se o assembly no GAC, as subchaves do registro devem ter a aparência da tabela a seguir:

Nome

Tipo

Dados

(Padrão)

REG_SZ

(valor não definido)

Classe

REG_SZ

< seu nome totalmente qualificado da classe >

Assembly

REG_SZ

< seu nome de Assembly no GAC >

Consulte também

Conceitos

A criação de processadores de diretiva de modelo de texto personalizado