Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı
Entegrasyon Hizmetleri için özel bir nesne kodu yazdıktan sonra, montajı oluşturmalı, dağıtmalı ve paketlerde kullanılabilir hale getirmek için SSIS Designer'a entegre etmeli, test edip hata ayıklamalısınız.
Entegrasyon Hizmetleri İçin Özel Nesne Oluşturma, Dağıtma ve Hata Hata Bulma Adımları
Nesneniz için özel işlevselliği zaten yazdınız. Şimdi test etmeniz ve kullanıcılara sunulması gerekiyor. Adım adımlar, Entegrasyon Hizmetleri için oluşturabileceğiniz tüm özel nesne türleri için oldukça benzer.
İşte onu inşa etmek, dağıtmak ve test etmek için adımlar.
Oluşturulacak meclisi güçlü bir isimle imzala.
Montajı inşa et.
Assembly dosyasını uygun Entegrasyon Hizmetleri klasörüne taşıyarak veya kopyalayarak dağıtın.
Assembly dosyasını global assembly önbelleğe (GAC) kurun.
Nesne otomatik olarak Araç Kutusu'na eklenir.
Gerekirse dağıtımı sorun gider.
Kodunuzu test edin ve hata ayıklayın.
Artık SQL Server Veri Araçları (SSDT) içinde SSIS Designer'ı farklı SQL Server sürümlerini hedefleyen paketler oluşturmak, bakım yapmak ve çalıştırmak için kullanabiliyorsunuz. Bu iyileştirmenin özel uzantılarınız üzerindeki etkisi hakkında daha fazla bilgi için, SSIS özel uzantılarınızın SSDT 2015'in çok sürümlü desteğiyle desteklenmesini sağlamak için SQL Server 2016'ya bakabilirsiniz
Meclisin İmzası
Bir montaj paylaşılmak üzere tasarlandığında, küresel assembly önbelleğe kurulmalıdır. Assembly global assembly önbelleğe eklendikten sonra, assembly SQL Server Veri Araçları (SSDT) gibi uygulamalar tarafından kullanılabilir. Küresel assembly önbelleğinin bir gerekliliği, montajın güçlü bir isimle imzalanmasıdır; bu da bir montajın küresel olarak benzersiz olmasını garanti eder. Güçlü isimli meclis, meclisin adı, kültürü, açık anahtarı ve sürüm numarasını içeren tam nitelikli bir isme sahiptir. Çalışma zamanı, bu bilgiyi montajı bulmak ve aynı isimli diğer montajlardan ayırmak için kullanır.
Güçlü bir isimle bir assembly imzalamak için önce bir kamu/özel anahtar çiftine sahip olmanız veya oluşturmanız gerekir. Bu kamusal ve özel kriptografik anahtar çifti, yapım zamanında güçlü isimli bir assembly oluşturmak için kullanılır.
Güçlü isimler ve bir assembly imzalamak için izlenmeniz gereken adımlar hakkında daha fazla bilgi için .NET Framework SDK dokümantasyonundaki aşağıdaki konulara bakınız:
Strong-Named Meclisler
Anahtar Çifti Oluşturmak
Güçlü İsimle Bir Meclis İmzası
Montajınızı yapım zamanında Visual Studio'da güçlü bir isimle kolayca imzalayabilirsiniz. Project Properties diyalog kutusunda İmza sekmesini seçin. Montajı İmzalama seçeneğini seçin ve ardından anahtar (.snk) dosyasının yolunu verin.
Meclisin Kurulması
Projeyi imzaladıktan sonra, SQL Server Veri Araçları'un Build menüsünde bulunan komutları kullanarak projeyi veya çözümü inşa etmeli veya yeniden inşa etmelisiniz. Çözümünüz, güçlü bir isimle imzalanması gereken ve aynı zamanda oluşturulabilen özel bir kullanıcı arayüzü için ayrı bir proje içerebilir.
Sonraki iki adımı gerçekleştirmen—montajı dağıtmak ve küresel assembly önbelleğine yüklemek—bu adımları Visual Studio'da bir derleme sonrası etkinlik olarak scriptlemektir. Build olayları, Project Properties'in Compile sayfasından bir Visual Basic project ve C# project için Build Events sayfasından erişilebilir. Tam yol, gacutil.exegibi komut dizisi araçları için gereklidir. Hem uzay içeren yolların etrafında hem de uzay içeren yollara genişleyen $(TargetPath) gibi makroların etrafında tırnak işareti gereklidir.
İşte özel bir log sağlayıcısı için derleme sonrası bir olay komut satırı örneği:
"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 "
Meclisin Konuşlandırılması
SSIS Tasarımcısı, paketlerde kullanılabilecek özel nesneleri, SQL Server Integration Services kurulduğunda oluşturulan bir dizi klasörde bulunan dosyaları sıralayarak bulur. Varsayılan SQL Server kurulum ayarları kullanıldığında, bu klasör seti C:\Program Files\Microsoft SQL Server\130\DTS altında yer alır. Ancak, özel nesneniz için bir kurulum programı oluşturuyorsanız, bu klasörün konumunu doğrulamak içinHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\SSIS\Setup\DtsPath kayıt anahtarının değerini kontrol etmelisiniz.
Note
SQL Server Veri Araçları'ta çoklu sürüm desteğiyle iyi çalışacak özel bileşenlerin nasıl dağıtılacağı hakkında bilgi için, SSIS özel uzantılarınızın SSDT 2015'in çok sürümlü desteğiyle desteklenmesi için SQL Server 2016'ya bakınız.
Assembly dosyaya iki şekilde koyabilirsiniz:
Derlenmiş montajı oluşturduktan sonra uygun klasöre taşıyın veya kopyalayın. (Pratik için, kopyalama komutunu Post-build Olayına dahil edebilirsiniz.)
Montajı doğrudan uygun klasörde oluşturun.
C:\Program Files\Microsoft SQL Server\130\DTS altındaki aşağıdaki dağıtım klasörleri, çeşitli özel nesneler türleri için kullanılır:
| Özel nesne | Dağıtım klasörü |
|---|---|
| Görev | Görevler |
| Bağlantı yöneticisi | Bağlantılar |
| Günlük sağlayıcısı | LogProviders |
| Veri akışı bileşeni | PipelineComponents |
Note
Assembly dosyaları, mevcut görevlerin, bağlantı yöneticilerinin ve benzerlerinin sayımı için bu klasörlere kopyalanır. Bu nedenle, bu klasörlere yalnızca özel kullanıcı arayüzünü içeren assemblerler dağıtmak zorunda değilsiniz.
Montajın Global Assembly Önbelleğine Kurulumu
Görev montajını global assembly önbelleğe (GAC) yüklemek için, komut satırı aracınıgacutil.exekullanın veya montajları dizine %system%\assembly sürükleyin. Kolaylık için, Post-build etkinliğine gacutil.exe çağrısını da ekleyebilirsiniz.
Aşağıdaki komut, gacutil.exekullanılarak MyTask.dll adlı bir bileşeni GAC'ye yükler.
gacutil /iF MyTask.dll
Özel nesnenizin yeni bir sürümünü yükledikten sonra SSIS Designer'ı kapatıp yeniden açmalısınız. Eğer özel nesnenizin önceki sürümlerini global assembly önbelleğe yüklediyseniz, yeni sürümü yüklemeden önce onları kaldırmalısınız. Bir montajı kaldırmak için gacutil.exe çalıştırın ve seçenekle assembly adını /u belirtin.
Küresel assembly önbelleği hakkında daha fazla bilgi için .NET Framework Tools'taki Global Assembly Cache Tool (Gactutil.exe) bölümüne bakınız.
Dağıtımda Sorun Giderme
Özel nesneniz Araç Kutusu'nda veya mevcut nesneler listesinde görünürse ancak bir pakete ekleyemiyorsanız, aşağıdakileri deneyin:
Bileşeninizin birden fazla versiyonunu global assembly önbelleğinde arayın. Küresel assembly önbelleğinde bileşenin birden fazla versiyonu varsa, tasarımcı bileşeninizi yükleyemeyebilir. Assembly örneklerini global assembly önbellekten silin ve assembly'yi yeniden ekleyin.
Dağıtım klasöründe sadece tek bir assembly örneğinin bulunduğundan emin olun.
Araç kutusunu yenileyin.
Visual Studio'yidevenv.exe'a ekleyin ve başlatma kodunuzu adım atmak için bir breakpoint ayarlayın ki istisna oluşmasın.
Kodunuzu Test Etmek ve Hata Ayıklamak
Özel bir nesnenin çalışma zamanı yöntemlerini hata ayıklamanın en basit yolu, özel nesnenizi oluşturduktan sonra Visual Studio üzerindendtexec.exe başlatmak ve bileşeni kullanan bir paket çalıştırmaktır.
Bileşenin tasarım zamanı yöntemlerini, örneğin Validate yöntemini hata ayıklamak istiyorsanız, bileşeni ikinci bir Visual Studio örneğinde kullanan bir paket açın ve devenv.exe sürecine ekleyin.
Bir paket açık ve SSIS tasarımcısında çalışırken bileşenin çalışma zamanı metodlarını da hata ayıklamak istiyorsanız, paketin yürütülmesini durdurmalısınız ki DtsDebugHost.exe sürece de bağlanabilebiliyorsunuz.
Bir nesnenin çalışma zamanı metodlarını ayıklamak için dtexec.exe
Projenizi Debug yapılandırmasında imzalayıp geliştirin, dağıtın ve bu konuda açıklandığı gibi global assembly önbelleğe kurun.
Project Özelliklersekmesinde Başlat harici programı başlat eylemi olarak seçin ve C:\Program Files\Microsoft SQL Server\130\DTS\Binn içinde varsayılan olarak yüklü olandtexec.exebulun.
Komut satırı seçenekleri metin kutusunda, Başlat Seçenekleri'nde, bileşeninizi kullanan bir paketi çalıştırmak için gereken komut satırı argümanlarını girin. Genellikle komut satırı argümanı, /F[ILE] anahtarı ve ardından .dtsx dosyasının yolu ve dosya adından oluşur. Daha fazla bilgi için bkz . dtexec Yardımcı Programı.
Bileşeninizin çalışma zamanı yöntemlerinde uygun olduğunda kaynak kodunda kesme noktaları belirleyin.
Projenizi yürütün.
Özel bir nesnenin tasarım zaman metodlarını SQL Server Veri Araçları'a ekleyerek hata ayıklamak
Projenizi Debug yapılandırmasında imzalayıp geliştirin, dağıtın ve bu konuda açıklandığı gibi global assembly önbelleğe kurun.
Özel nesnenizin tasarım zamanı yöntemlerinde uygun olduğunda kaynak kodda kesme noktaları belirleyin.
İkinci bir Visual Studio örneğini açın ve özel nesneyi kullanan bir paket içeren bir Entegrasyon Hizmetleri projesini yükleyin.
Visual Studio'nin ilk örneğinden, paketin yüklendiği ikinci devenv.exe örneğine ilk örneğinin Debug menüsünden Sürece Bağla'yı seçerek ek edin.
Paketi Visual Studio'nun ikinci örneğinden çalıştırın.
Özel bir nesnenin çalışma zamanı metodlarını SQL Server Veri Araçları'a ekleyerek hata ayıklamak
Önceki prosedürde listelenen adımları tamamladıktan sonra, paketinizin yürütülmesini durdurun ki buDtsDebugHost.exebağlanabilesiniz. Bu duraklatmayı OnPreExecute etkinliğine bir breakpoint ekleyerek veya projenize bir Script görevi ekleyip modal mesaj kutusu gösteren bir script girerek zorlayabilirsiniz.
Paketi çalıştırın. Duraklama olduğunda, kod projenizin açık olduğu Visual Studio örneğine geçin ve Debug menüsünden Sürece Ekle'yi seçin. Tip sütununda Yönetilen olarak listelenenDtsDebugHost.exeörneğine x86 olarak eklediğinizden emin olun, sadece x86 olarak listelenen instance'a değil.
Duraklatılmış pakete geri dönüp kırılma noktasından sonra devam edin veya Script göreviyle ortaya çıkan mesaj kutusunu kapatmak için OK tuşuna tıklayın ve paket çalıştırma ile hata ayıklamasına devam edin.