Partilhar via


Compilando, implantando e depurando objetos personalizados

Depois de escrever o código de um objeto personalizado do Integration Services, você deve compilar o assembly, implantá-lo e integrá-lo ao SSIS Designer para disponibilizar seu uso em pacotes, além de testá-lo e depurá-lo.

Etapas para compilar, implantar e depurar um objeto personalizado para serviços de integração

Você já gravou a funcionalidade personalizada para seu objeto. Agora você tem que testá-la e disponibilizá-la aos usuários. As etapas são bem similares para todos os tipos de objetos personalizados que você pode criar para o Integration Services.

Eis as etapas que você segue ao compilar, implantar e depurar objetos personalizados:

  1. Assine o assembly para que seja gerado com um nome forte.

  2. Compile o assembly.

  3. Implante o assembly movendo-o ou copiando-o até a pasta do Integration Services apropriada.

  4. Instale o assembly no GAC (cache de assembly global).

    O objeto é automaticamente adicionado à Caixa de Ferramentas.

  5. Solucione problemas de implantação, se necessário.

  6. Teste e depure seu código.

Assinando o assembly

Quando um assembly for compartilhado, ele deverá ser instalado no cache de assembly global. Depois de acrescentado ao cache de assembly global, ele poderá ser usado por aplicativos como SSDT (SQL Server Data Tools). Um requisito do cache de assembly global é que o assembly seja assinado com um nome forte, que garante que ele seja globalmente único. Um assembly com nome forte tem um nome totalmente qualificado que inclui nome, cultura, chave pública e número da versão do assembly. O tempo de execução usa essas informações para localizar o assembly e diferenciá-lo de outros assemblies com o mesmo nome.

Para assinar um assembly com um nome forte, você deve primeiro ter ou criar um par de chaves pública/privada. Esse par de chaves criptográficas pública e privada é usado na hora da compilação para criar um assembly com nome forte.

Para obter mais informações sobre nomes fortes e sobre as etapas que você deve seguir para assinar um assembly, consulte os tópicos a seguir na documentação do SDK .NET Framework:

  • Assembly de nome forte

  • Criando um par de chaves

  • Assinando um assembly com um nome forte

Você pode assinar seu assembly facilmente com um nome forte em Visual Studio no momento da compilação. Na caixa de diálogo Propriedades do Projeto, selecione a guia Assinatura. Selecione a opção Assinar o assembly e forneça o caminho do arquivo chave (.snk).

Compilando o assembly

Depois de assinar o projeto, você deve compilar ou recompilar o projeto ou a solução usando os comandos disponíveis no menu Compilar do SQL Server Data Tools. Sua solução pode conter um projeto separado para uma interface do usuário personalizada, que também deve ser assinada com um nome forte e pode ser compilada ao mesmo tempo.

O método mais conveniente para efetuar as próximas duas etapas – implantação e instalação do assembly no cache de assembly global – é gerar o script dessas etapas como um evento pós-compilação em Visual Studio. Os eventos de compilação estão disponíveis na página Compilar de Propriedades do Projeto para um projeto Visual Basic, e na página Compilar Eventos para um projeto C#. O caminho completo é obrigatório para utilitários de prompt de comando, como gacutil.exe. São necessárias aspas nos caminhos que contêm espaços e nas macros, como $ (TargetPath) que se expande para caminhos que contêm espaços.

Eis um exemplo de uma linha de comando de evento pós-compilação para um provedor de log personalizado:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe" -u $(TargetName)
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe" -i $(TargetFileName)
copy $(TargetFileName) "C:\Program Files\Microsoft SQL Server\110\DTS\LogProviders "

Implantando o assembly

O SSIS Designer localiza os objetos personalizados disponíveis para serem usados em pacotes, enumerando os arquivos encontrados em uma série de pastas que são criadas quando o SQL Server Integration Services é instalado. Quando as configurações de instalação padrão do SQL Server são usadas, esse conjunto de pastas está localizado em C:\Program Files\Microsoft SQL Server\110\DTS. No entanto, se você criar um programa de instalação para seu objeto personalizado, deverá verificar o valor da chave do Registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\SSIS\Setup\DtsPath para descobrir o local dessa pasta.

Você pode colocar o assembly na pasta de dois modos:

  • Mova ou copie o assembly para a pasta apropriada após compilá-lo. (Para sua conveniência, você pode incluir o comando de cópia em um Evento de Pós-Compilação).

  • Compile o assembly diretamente na pasta apropriada.

As seguintes pastas de implantação em C:\Program Files\Microsoft SQL Server\110\DTS são usadas para os vários tipos de objetos personalizados:

Objeto personalizado

Pasta de implantação

Tarefa

Tarefas

Gerenciador de conexões

Conexões

Provedor de log

LogProviders

Componente de fluxo de dados

PipelineComponents

ObservaçãoObservação

Os assemblies são copiados para essas pastas para dar suporte à enumeração de tarefas disponíveis, gerenciadores de conexões, e assim por diante. Portanto, não é necessário implantar assemblies que contenham somente a interface do usuário personalizada para objetos personalizados nessas pastas.

Instalando o assembly no GAC

Para instalar o assembly da tarefa no GAC (global assembly cache, cache de assembly global), use a ferramenta de linha de comando gacutil.exe ou arraste os assemblies até o diretório %system%\assembly. Para sua conveniência, também é possível incluir a chamada para gacutil.exe em um Evento de Pós-Compilação.

O comando seguinte instala um componente denominado MyTask.dll no GAC com o uso de gacutil.exe.

gacutil /iF MyTask.dll

É necessário fechar e reabrir o SSIS Designer depois que você instalar uma versão nova de seu objeto personalizado. Se você instalou versões anteriores do seu objeto personalizado no GAC, deve removê-las antes de instalar a versão nova. Para desinstalar um assembly, execute gacutil.exe e especifique o nome do assembly com a opção /u.

Para obter mais informações sobre o GAC, consulte a Ferramenta Cache de Assembly Global (Gactutil.exe) nas Ferramentas .NET Framework.

Solucionando problemas de implantação

Se seu objeto personalizado aparecer na Caixa de Ferramentas ou na lista de objetos disponíveis, mas você não conseguir adicioná-lo a um pacote, tente o seguinte:

  1. Procure múltiplas versões do seu componente no GAC. Se houver múltiplas versões do componente no GAC, o designer talvez não consiga carregar seu componente. Exclua todas as instâncias do assembly do GAC e adicione o assembly novamente.

  2. Verifique se há somente uma única instância do assembly na pasta de implantação.

  3. Atualize a caixa de ferramentas.

  4. Anexe Visual Studio a devenv.exe e defina um ponto de interrupção para percorrer seu código de inicialização e garantir que não ocorra uma exceção.

Testando e depurando seu código

A abordagem mais simples para depurar os métodos de tempo de execução de um objeto personalizado é começar dtexec.exe de Visual Studio depois de compilar seu objeto personalizado e executar um pacote que use o componente.

Para depurar os métodos de tempo de design do componente, como o método Validate, abra um pacote que use o componente em uma segunda instância de Visual Studio, e anexe ao seu processo devenv.exe.

Se você também desejar depurar os métodos de tempo de execução do componente quando um pacote estiver aberto e em execução no designer SSIS, deverá forçar uma pausa na execução do pacote para que também seja possível anexar ao processo DtsDebugHost.exe.

Para depurar os métodos de tempo de execução de um objeto anexando a dtexec.exe

  1. Assine e compile seu projeto na configuração de Depuração, implante-o e instale-o no GAC como descrito neste tópico.

  2. Na guia Depurar de Propriedades do Projeto, selecione Iniciar programa externo como Iniciar Ação e localize dtexec.exe, que está instalado por padrão em C:\Arquivos de Programas\Microsoft SQL Server\110\DTS\Binn.

  3. Na caixa de texto Opções da linha de comando, em Iniciar Opções, digite os argumentos de linha de comando necessários para executar um pacote que use seu componente. Frequentemente, o argumento de linha de comando consistirá no comutador /F [ILE] seguido pelo caminho e pelo nome do arquivo .dtsx. Para obter mais informações, consulte Utilitário dtexec.

  4. Defina pontos de interrupção no código fonte, quando apropriado, nos métodos de tempo de execução de seu componente.

  5. Execute seu projeto.

Para depurar os métodos de tempo de design de um objeto personalizado anexando às Ferramentas de Dados do SQL Server

  1. Assine e compile seu projeto na configuração de Depuração, implante-o e instale-o no cache de assembly global como descrito neste tópico.

  2. Defina pontos de interrupção no código fonte, quando apropriado, nos métodos de tempo de design de seu objeto personalizado.

  3. Abra uma segunda instância de Visual Studio e carregue um projeto do Integration Services que contenha um pacote que use o objeto personalizado.

  4. Da primeira instância do Visual Studio, anexe à segunda instância de devenv.exe na qual o pacote foi carregado selecionando Anexar ao Processo do menu Depurar da primeira instância.

  5. Execute o pacote da segunda instância de Visual Studio.

Para depurar os métodos de tempo de execução de um objeto personalizado anexando às Ferramentas de Dados do SQL Server

  1. Depois de concluir as etapas listadas no procedimento anterior, force uma pausa na execução do seu pacote para que você possa anexar ao DtsDebugHost.exe. Você pode forçar essa pausa adicionando um ponto de interrupção ao evento OnPreExecute, ou adicionando uma tarefa Script ao seu projeto e inserindo um script que exiba uma caixa de mensagem modal.

  2. Execute o pacote. Quando a pausa ocorrer, alterne para a instância de Visual Studio em que seu projeto de código está aberto, e selecione Anexar ao Processo do menu Depurar. Certifique-se de anexar à instância de DtsDebugHost.exe listada como Gerenciada, x86 na coluna Tipo, não à instância listada apenas como x86.

  3. Retorne ao pacote pausado e continue até o ponto de interrupção, ou clique em OK para ignorar a caixa de mensagem gerada pela tarefa Script, e continue a execução e a depuração do pacote.

Ícone do Integration Services (pequeno) Mantenha-se atualizado com o Integration Services

Para obter os downloads, artigos, exemplos e vídeos mais recentes da Microsoft, bem como soluções selecionadas pela comunidade, visite a página do Integration Services no MSDN:


Para receber uma notificação automática dessas atualizações, assine os RSS feeds disponíveis na página.

Consulte também

Tarefas

Solucionando problemas de ferramentas para desenvolvimento de pacotes

Conceitos

Desenvolvendo objetos personalizados para o Integration Services

Persistência de objetos personalizados