Compilando, implantando e depurando objetos personalizados

Depois de gravar o código de um objeto personalizado para o 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.

  5. Adicione o objeto à caixa de ferramentas, quando o objeto é uma tarefa ou componente de fluxo de dados.

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

  7. 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 Business Intelligence Development Studio. 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 BI Development Studio. 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 é requerido 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\Microsoft Visual Studio 9.0\SDK\v3.5\Bin\gacutil.exe" -u $(TargetName)
"C:\Program Files\Microsoft Visual Studio 9.0\SDK\v3.5\Bin\gacutil.exe" -i $(TargetFileName)
copy $(TargetFileName) "C:\Program Files\Microsoft SQL Server\100\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 ServerIntegration Services é instalado. Quando as configurações de instalação do SQL Server padrão são usadas, esse conjunto de pastas é localizado sob C:\Program Files\Microsoft SQL Server\100\DTS. Entretanto, se você criar um programa de instalação para seu objeto personalizado, você deve checar o valor da chave do registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\Setup\DtsPath para verificar 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 sob C:\Program Files\Microsoft SQL Server\100\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, use a ferramenta da linha de comando gacutil.exe, ou arraste os assemblies até o diretório %system%\assembly. Para sua conveniência, você também pode 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 usando 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.

Adicionando uma tarefa ou componente de fluxo de dados à caixa de ferramentas

Depois de implantar o objeto personalizado e instalá-lo no GAC, ele poderá ser usado no Business Intelligence Development Studio como qualquer objeto incluído com o SQL ServerIntegration Services. Porém, ele deve ser acrescentado explicitamente à Caixa de Ferramentas.

Para adicionar um componente personalizado à caixa de ferramentas

  1. Clique com o botão direito do mouse na caixa de ferramentas e clique em Escolher Itens.

  2. Na caixa de diálogo Escolher Itens da Caixa de Ferramentas, clique na guia Itens do Fluxo de Controle do SSIS para uma tarefa, ou na guia Itens do Fluxo de Dados do SSIS para um componente de fluxo de dados.

  3. Clique na caixa de seleção de seu componente e clique em OK.

ObservaçãoObservação

Se o componente não for exibido na lista, clique em Procurar para localizá-lo. Mas, nesse caso, talvez ele não esteja instalado corretamente.

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. Reinicie 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 assegurar que nenhuma exceção ocorra.

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 utilize o componente.

Se quiser 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 quiser depurar os métodos de tempo de execução do componente quando um pacote estiver aberto e sendo executado no SSIS designer, você deve forçar uma pausa na execução do pacote para poder anexar também 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:\Program Files\Microsoft SQL Server\100\DTS\Binn.

  3. Na caixa de texto Opções da linha de comando, sob Iniciar Opções, digite os argumentos de linha de comando necessários para executar um pacote que use seu componente. Freqüentemente, 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 ao Business Intelligence Development Studio

  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. 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 de Visual Studio, anexe à segunda instância de devenv.exe em que 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 ao Business Intelligence Development Studio

  1. Após 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 Managed, x86 na coluna Tipo, não à instância listada somente 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) Fique atualizado com o Integration Services

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

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