Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
Depois de escrever o código para um objeto personalizado para os Serviços de Integração, deve construir o assembly, implementá-lo e integrá-lo no SSIS Designer para o tornar disponível para uso em pacotes, e testá-lo e depurá-lo.
Etapas na Construção, Implementação e Depuração de um Objeto Personalizado para Serviços de Integração
Já escreveste a funcionalidade personalizada para o teu objeto. Agora tens de o testar e disponibilizá-lo aos utilizadores. Os passos são muito semelhantes para todos os tipos de objetos personalizados que pode criar para os Serviços de Integração.
Aqui estão os passos para o construir, implementar e testar.
Assine a assembleia para ser gerada com um nome forte.
Constrói o conjunto.
Implemente o assembly movendo-o ou copiando-o para a pasta Integration Services apropriada.
Instale o assembly na cache global assembly (GAC).
O objeto é automaticamente adicionado à Caixa de Ferramentas.
Resolver o problema da implementação, se necessário.
Testa e depura o teu código.
Agora pode usar o SSIS Designer no SQL Server Data Tools (SSDT) para criar, manter e executar pacotes que visam diferentes versões do SQL Server. Para mais informações sobre o impacto desta melhoria nas suas extensões personalizadas, consulte Como suportar as suas extensões personalizadas SSIS pelo suporte multi-versão do SSDT 2015 para SQL Server 2016
Assinatura da Assembleia
Quando um assembly está destinado a ser partilhado, tem de ser instalado na cache global de assembly. Depois de o assembly ter sido adicionado à cache global assembly, o assembly pode ser usado por aplicações como o SQL Server Data Tools (SSDT). Um requisito da cache global de montagem é que a montagem deve ser assinada com um nome forte, o que garante que uma montagem é globalmente única. Uma assembleia com nome forte tem um nome totalmente qualificado que inclui o nome, cultura, chave pública e número de versão da assembleia. O runtime utiliza esta informação para localizar o conjunto e diferenciá-lo de outros montadores com o mesmo nome.
Para assinar uma assembleia com um nome forte, deve primeiro ter ou criar um par de chaves pública/privada. Este par de chaves criptográficas públicas e privadas é usado em tempo de compilação para criar um assembly com nome forte.
Para mais informações sobre nomes fortes e sobre os passos que deve seguir para assinar uma assembleia, consulte os seguintes tópicos na documentação do SDK do .NET Framework:
Strong-Named Assembleias
Criação de um Par de Chaves
Assinar uma Assembleia com um Nome Forte
Pode facilmente assinar o seu assembly com um nome forte no Visual Studio durante a compilação. Na caixa de diálogo Project Properties, selecione o separador Assinar. Selecione a opção Assinar o assembly e depois forneça o caminho do ficheiro chave (.snk).
Construindo a Assembleia
Após assinar o projeto, deve construir ou reconstruir o projeto ou a solução utilizando os comandos disponíveis no menu Build do SQL Server Data Tools. A sua solução pode conter um projeto separado para uma interface de utilizador personalizada, que também deve ser assinada com um nome forte e pode ser construído ao mesmo tempo.
O método mais conveniente para realizar os dois passos seguintes — implantar o assembly e instalá-lo na cache assembly global — é scriptar estes passos como um evento pós-compilação no Visual Studio. Os eventos de compilação estão disponíveis na página de compilação de Project Propriedades para um Visual Basic project, e na página de Eventos de Construção para um project C#. O caminho completo é necessário para utilitários de prompt de comandos como gacutil.exe. As aspas são necessárias tanto em caminhos que contêm espaços como em macros como $(TargetPath) que se expandem para caminhos que contêm espaços.
Aqui está um exemplo de linha de comandos de evento pós-compilação para um fornecedor de registos 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\130\DTS\LogProviders "
Implantação do Assembly
O SSIS Designer localiza os objetos personalizados disponíveis para uso em pacotes enumerando os ficheiros encontrados numa série de pastas que são criadas quando o SQL Server Integration Services é instalado. Quando são usadas as definições de instalação padrão do SQL Server, este conjunto de pastas está localizado em C:\Program Files\Microsoft SQL Server\130\DTS. No entanto, se criares um programa de configuração para o teu objeto personalizado, deves verificar o valor da chave de registoHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\SSIS\Setup\DtsPath para verificar a localização dessa pasta.
Note
Para informações sobre como implementar componentes personalizados para funcionar bem com o suporte multi-versão no SQL Server Data Tools, veja Conseguir que as suas extensões personalizadas SSIS sejam suportadas pelo suporte multi-versão do SSDT 2015 para SQL Server 2016.
Podes colocar o assembly na pasta de duas formas:
Move ou copia o assembly compilado para a pasta apropriada depois de o compilar. (Para conveniência, pode incluir o comando copiar num Evento Pós-construção.)
Constrói o assembly diretamente na pasta apropriada.
As seguintes pastas de implementação em C:\Program Files\Microsoft SQL Server\130\DTS são usadas para os vários tipos de objetos personalizados:
| Objeto personalizado | Pasta de implantação |
|---|---|
| Tarefa | Tarefas |
| Gestor de ligações | Connections |
| Provedor de Logs | LogProviders |
| Componente de fluxo de dados | PipelineComponents |
Note
Os assemblies são copiados para estas pastas para suportar a enumeração de tarefas disponíveis, gestores de ligações, e assim por diante. Portanto, não é necessário implementar assemblies que contenham apenas a interface personalizada para objetos personalizados nessas pastas.
Instalação do Assembly no Global Assembly Cache
Para instalar o conjunto de tarefas na cache global de montagem (GAC), use a ferramenta de linha de comandosgacutil.exe, ou arraste os assemblies para o %system%\assembly diretório. Para conveniência, pode também incluir o chamado para gacutil.exe num Evento Pós-construção.
O comando seguinte instala um componente chamado MyTask.dll no GAC usando gacutil.exe.
gacutil /iF MyTask.dll
Deve fechar e reabrir o SSIS Designer depois de instalar uma nova versão do seu objeto personalizado. Se instalou versões anteriores do seu objeto personalizado na cache assembly global, deve removê-las antes de instalar a nova versão. Para desinstalar um conjunto, execute gacutil.exe e especifique o nome do conjunto com a /u opção.
Para mais informações sobre a cache global assembly, consulte a Ferramenta Global Assembly Cache (Gactutil.exe) na .NET Framework Tools.
Resolução de Problemas da Implementação
Se o seu objeto personalizado aparecer na Toolbox ou na lista de objetos disponíveis, mas não conseguir adicioná-lo a um pacote, experimente o seguinte:
Procura na cache global assembly várias versões do teu componente. Se existirem múltiplas versões do componente na cache global de assembly, o designer pode não conseguir carregar o seu componente. Apague todas as instâncias do assembly do cache global de assembly e volte a adicionar o assembly.
Certifica-te de que só existe uma única instância do assembly na pasta de deployment.
Atualize a Caixa de Ferramentas.
Anexe Visual Studio à devenv.exe e defina um ponto de interrupção para passar pelo seu código de inicialização para garantir que não ocorrem exceções.
Testar e Depurar o Seu Código
A abordagem mais simples para depurar os métodos de execução de um objeto personalizado é iniciar dtexec.exe a partir de Visual Studio depois de construir o seu objeto personalizado e executar um pacote que utilize o componente.
Se quiser depurar os métodos de design time do componente, como o método Valide, abra um pacote que use o componente numa segunda instância de Visual Studio e anexe-o ao seu processodevenv.exe.
Se também quiseres depurar os métodos de execução do componente quando um pacote está aberto e a correr no designer SSIS, tens de forçar uma pausa na execução do pacote para que também possas ligar ao processoDtsDebugHost.exe .
Depurar os métodos de tempo de execução de um objeto anexando a dtexec.exe
Assine e constrói o seu projeto na configuração Debug, implemente-o e instale-o na cache assembly global conforme descrito neste tópico.
No separador Debug de Project Propriedades, selecione Iniciar programa externo como Iniciar Ação e localizedtexec.exe, que está instalado por defeito em C:\Program Files\Microsoft SQL Server\130\DTS\Binn.
Na caixa de texto das opções da linha de comandos , em Opções de Inicio, introduza os argumentos da linha de comandos necessários para executar um pacote que use o seu componente. Frequentemente, o argumento da linha de comandos consiste no comutador /F[ILE] seguido do caminho e nome do ficheiro .dtsx. Para obter mais informações, consulte dtexec Utility.
Defina pontos de interrupção no código-fonte, quando apropriado, nos métodos de execução do seu componente.
Gere o teu projeto.
Para depurar os métodos de design de um objeto personalizado, anexando-os ao SQL Server Data Tools
Assine e constrói o seu projeto na configuração Debug, implemente-o e instale-o na cache assembly global conforme descrito neste tópico.
Defina pontos de interrupção no código-fonte, quando apropriado, nos métodos de design do seu objeto personalizado.
Abra uma segunda instância do Visual Studio e carregue um projeto de Serviços de Integração que contenha um pacote que utilize o objeto personalizado.
A partir da primeira instância de Visual Studio, associe-se à segunda instância de devenv.exe em que o pacote é carregado selecionando Anexar ao Processo no menu Depuração da primeira instância.
Executa o pacote a partir da segunda instância do Visual Studio.
Para depurar métodos de tempo de execução de um objeto personalizado ligando-os ao SQL Server Data Tools
Depois de completar os passos listados no procedimento anterior, force uma pausa na execução do seu pacote para que possa anexar a DtsDebugHost.exe. Pode forçar esta pausa adicionando um ponto de interrupção ao evento OnPreExecução , ou adicionando uma tarefa Script ao seu projeto e introduzindo um script que mostre uma caixa de mensagem modal.
Execute o pacote. Quando a pausa ocorrer, mude para a instância do Visual Studio onde o seu projeto de código está aberto e selecione Anexar ao Processo no menu Debug. Certifica-te de anexar à instância deDtsDebugHost.exe listada como Gerida, x86 na coluna Tipo , e não apenas à instância listada como x86 .
Volte ao pacote pausado e continue para além do ponto de interrupção, ou clique em OK para desligar a caixa de mensagem levantada pela tarefa Script, e continue a execução e depuração do pacote.