Skapa, distribuera och felsöka anpassade objekt

Gäller för:SQL Server SSIS Integration Runtime i Azure Data Factory

Efter att du har skrivit koden för ett anpassat objekt för Integration Services måste du bygga assembleren, distribuera den och integrera den i SSIS Designer för att göra den tillgänglig för användning i paket, samt testa och felsöka den.

Steg i att bygga, distribuera och felsöka ett anpassat objekt för integrationstjänster

Du har redan skrivit den anpassade funktionaliteten för ditt objekt. Nu måste du testa det och göra det tillgängligt för användarna. Stegen är mycket lika för alla typer av anpassade objekt som du kan skapa för Integration Services.

Här är stegen för att bygga, distribuera och testa det.

  1. Signera sammansättningen för att genereras med ett starkt namn.

  2. Bygg sammanställningen.

  3. Distribuera assembleren genom att flytta eller kopiera den till lämplig Integration Services-mapp.

  4. Installera assembleren i den globala assemblercachen (GAC).

    Objektet läggs automatiskt till i verktygslådan.

  5. Felsök utplaceringen om det behövs.

  6. Testa och felsök din kod.

Du kan nu använda SSIS Designer i SQL Server Data Tools (SSDT) för att skapa, underhålla och köra paket som riktar sig mot olika versioner av SQL Server. För mer information om effekten av denna förbättring på dina anpassade tillägg, se Få dina anpassade SSIS-tillägg att stödjas av flerversionsstödet av SSDT 2015 för SQL Server 2016

Undertecknandet av församlingen

När en assembly är avsedd att delas måste den installeras i den globala assembly-cachen. Efter att assembleren har lagts till i den globala assemblercachen kan assembleren användas av applikationer som SQL Server Data Tools (SSDT). Ett krav på den globala assemblercachen är att assembleren måste signeras med ett starkt namn, vilket garanterar att en assembler är globalt unik. En stark namngiven församling har ett fullt kvalificerat namn som inkluderar namn, kultur, publik nyckel och versionsnummer för församlingen. Körtiden använder denna information för att lokalisera sammansättningen och särskilja den från andra assemblies med samma namn.

För att signera en assembly med ett starkt namn måste du först ha eller skapa ett offentligt/privat nyckelpar. Detta offentliga och privata kryptografiska nyckelpar används vid byggtillfället för att skapa en starkt namngiven samling.

För mer information om starka namn och om de steg du måste följa för att signera en assembly, se följande ämnen i .NET Framework SDK-dokumentationen:

  • Strong-Named Församlingar

  • Skapa ett nyckelpar

  • Att underteckna en församling med ett starkt namn

Du kan enkelt signera din assembly med ett starkt namn i Visual Studio vid byggtid. I dialogrutan Project Properties, välj fliken Signering. Välj alternativet att signera assembleren och ange sedan sökvägen för nyckelfilen (.snk).

Byggandet av församlingen

Efter att ha signerat projektet måste du bygga eller bygga om projektet eller lösningen genom att använda kommandona som finns i Bygg-menyn i SQL Server Data Tools. Din lösning kan innehålla ett separat projekt för ett anpassat användargränssnitt, som också måste signeras med ett starkt namn och kan byggas samtidigt.

Den mest praktiska metoden för att utföra de två följande stegen – att distribuera assembleren och installera den i den globala assemblercachen – är att skripta dessa steg som en post-build-händelse i Visual Studio. Bygghändelser finns tillgängliga på Kompile-sidan i Project Properties för en Visual Basic project, och från sidan Build Events för en C#-project. Den fullständiga sökvägen krävs för kommandopromptverktyg som gacutil.exe. Citattecken krävs både runt vägar som innehåller mellanrum och runt makron som $(TargetPath) som expanderar till vägar som innehåller mellanrum.

Här är ett exempel på en kommandorad för händelser efter byggnationen för en anpassad loggleverantör:

"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 "  

Utplacering av församlingen

SSIS-designern lokaliserar de anpassade objekt som är tillgängliga för användning i paket genom att räkna upp filerna som finns i en serie mappar som skapas när služba SSIS installeras. När standardinställningarna för installation av SQL Server används finns denna uppsättning mappar under C:\Program Files\Microsoft SQL Server\130\DTS. Men om du skapar ett installationsprogram för ditt anpassade objekt bör du kontrollera värdet på HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\SSIS\Setup\DtsPath registernyckeln för att verifiera platsen för denna mapp.

Note

För information om hur man distribuerar anpassade komponenter för att fungera bra med multiversionsstödet i SQL Server Data Tools, se Få dina SSIS-anpassade tillägg att stödjas av multiversionsstödet i SSDT 2015 för SQL Server 2016.

Du kan lägga monteringen i mappen på två sätt:

  • Flytta eller kopiera den kompilerade assembleren till rätt mapp efter att du byggt den. (För enkelhets skull kan du inkludera kopieringskommandot i en Post-build Event.)

  • Bygg sammansättningen direkt i rätt mapp.

Följande distributionsmappar under C:\Program Files\Microsoft SQL Server\130\DTS används för olika typer av anpassade objekt:

Egenutvecklat objekt Distributionsmapp
Uppgift Uppgifter
Anslutningshanteraren Connections
Loggleverantör LogProviders
Dataflödeskomponent PipelineComponents

Note

Assemblies kopieras till dessa mappar för att stödja uppräkning av tillgängliga uppgifter, anslutningshanterare och så vidare. Därför behöver du inte distribuera assemblies som endast innehåller det anpassade användargränssnittet för anpassade objekt till dessa mappar.

Installation av assembleren i den globala assemblercachen

För att installera uppgiftssammansättningen i den globala assemblercachen (GAC), använd kommandoradsverktyget gacutil.exe, eller dra sammansättningarna till katalogen %system%\assembly . För enkelhetens skull kan du också inkludera samtalet att gacutil.exe i en Post-build Event.

Följande kommando installerar en komponent som heterMyTask.dll i GAC genom att använda gacutil.exe.

gacutil /iF MyTask.dll

Du måste stänga och öppna SSIS Designer igen efter att du installerat en ny version av ditt anpassade objekt. Om du har installerat tidigare versioner av ditt anpassade objekt i den globala assemblercachen måste du ta bort dem innan du installerar den nya versionen. För att avinstallera en assembly , körgacutil.exe och ange assemblynamnet med alternativet /u .

För mer information om den globala assemblercachen, se Global Assembly Cache Tool (Gactutil.exe) i .NET Framework Tools.

Felsökning av utplaceringen

Om ditt anpassade objekt visas i Toolbox eller listan över tillgängliga objekt, men du inte kan lägga till det i ett paket, prova följande:

  1. Titta i den globala assemblercachen efter flera versioner av din komponent. Om det finns flera versioner av komponenten i den globala assemblercachen kan designern kanske inte ladda din komponent. Ta bort alla instanser av assembleren från den globala assemblercachen och lägg till assembleren igen.

  2. Se till att endast en instans av assembleren finns i distributionsmappen.

  3. Uppdatera verktygslådan.

  4. Bifoga Visual Studio till devenv.exe och sätt en brytpunkt för att stegvisa igenom din initialiseringskod för att säkerställa att inga undantag sker.

Testning och felsökning av din kod

Det enklaste sättet att felsöka körtidsmetoderna för ett anpassat objekt är att starta dtexec.exe från Visual Studio efter att ha byggt ditt anpassade objekt och köra ett paket som använder komponenten.

Om du vill felsöka komponentens designtidsmetoder, såsom Validate-metoden, öppna ett paket som använder komponenten i en andra instans av Visual Studio och koppla till dess devenv.exe-process.

Om du också vill felsöka komponentens körtidsmetoder när ett paket är öppet och körs i SSIS-designern måste du tvinga fram en paus i paketets körning så att du också kan koppla till DtsDebugHost.exe-processen .

För att felsöka ett objekts körtidsmetoder genom att koppla till dtexec.exe

  1. Signera och bygg ditt projekt i Debug-konfigurationen, distribuera det och installera det i den globala assemblercachen som beskrivs i detta ämne.

  2. På fliken Felsökning i Project Egenskaper, välj Starta externt program som Startåtgärd och hitta dtexec.exe, som installeras som standard i C:\Program Files\Microsoft SQL Server\130\DTS\Binn.

  3. I textrutan Kommandoradsalternativ , under Startalternativ, mata in de kommandoradsargument som krävs för att köra ett paket som använder din komponent. Ofta består kommandoradsargumentet av /F[ILE]-switchen följt av sökvägen och filnamnet för .dtsx-filen. Mer information finns i dtexec-verktyget.

  4. Sätt brytpunkter i källkoden där det är lämpligt i körtidsmetoderna för din komponent.

  5. Kör ditt projekt.

För att felsöka ett anpassat objekts designtidsmetoder genom att koppla till SQL Server Data Tools

  1. Signera och bygg ditt projekt i Debug-konfigurationen, distribuera det och installera det i den globala assemblercachen som beskrivs i detta ämne.

  2. Sätt brytpunkter i källkoden där det är lämpligt i designtidsmetoderna för ditt anpassade objekt.

  3. Öppna en andra instans av Visual Studio och ladda ett Integration Services-projekt som innehåller ett paket som använder det anpassade objektet.

  4. Från den första instansen av Visual Studio, koppla till den andra instansen av devenv.exe där paketet laddas genom att välja Fästa till process från Debug-menyn i den första instansen.

  5. Kör paketet från den andra instansen av Visual Studio.

För att felsöka ett anpassat objekts körtidsmetoder genom att koppla till SQL Server Data Tools

  1. När du har slutfört stegen som listats i föregående procedur, tvinga fram en paus i exekveringen av ditt paket så att du kan ansluta till DtsDebugHost.exe. Du kan tvinga fram denna paus genom att lägga till en brytpunkt i OnPreExekuver-händelsen , eller genom att lägga till en Script-uppgift i ditt projekt och ange ett skript som visar en modal meddelanderuta.

  2. Kör paketet. När pausen inträffar, byt till den instans av Visual Studio där ditt kodprojekt är öppet och välj Fäst till process i Debug-menyn. Se till att bifoga till instansen avDtsDebugHost.exe som anges som Managed, x86 i kolumnen Typ , inte till instansen som endast anges som x86 .

  3. Gå tillbaka till det pausade paketet och fortsätt förbi brytpunkten, eller klicka på OK för att stänga meddelanderutan som öppnas av Script-uppgiften, och fortsätt paketets körning och felsökning.