SSIS'de bir komut dosyası görev sürümü nasıl değiştirilir?


10

VS2015'te bir SSIS projesine bir komut dosyası görevi ekledim. SQL Server 2016'ya konuşlandırdığımda, version 15.0komut dosyasının desteklenmediğini belirten bir hata iletisi aldım .

Bu nerede version 15 come from? Yığın Taşması ile ilgili diğer benzer soruları okuma Projenin hedef sürümünü, yaptığım SQL Server 2012'ye ayarlayabildiğinizi görüyorum (nihai dağıtım hedefi SQL Server 2012'dir).

Ayrıca komut dosyasını silmeyi ve yeniden oluşturmayı denedim. Ve betiğin bilgisinde C # V10 kullandığını söylüyor.

Bunu nasıl çözebilirim?

Komut Dosyası Görevi: Hata: Komut Dosyası Görevi XML'den yüklenirken bir istisna oluştu: System.Exception: Komut Dosyası Görevi "" ST_a1ad9dc5972c42b68c12a13155f10b6d "", Entegrasyon Hizmetlerinin bu sürümünde desteklenmeyen 15.0 komut dosyasını kullanır. Paketi çalıştırmak için Komut Dosyası Görevi'ni kullanarak yeni bir VSTA komut dosyası oluşturun. Çoğu durumda,% SQL_PRODUCT_SHORT_NAME% Entegrasyon Hizmetlerinde bir SQL Server Entegrasyon Hizmetleri paketi açtığınızda, komut dosyaları desteklenen bir sürümü kullanmak üzere otomatik olarak dönüştürülür. Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML (XmlElement elemProj, IDTSInfoEvents olayları) "

Ayrıca projeyi SSDT 2012'de açtım ve farklı bir isimle yeniden inşa ettim. Aynı hata. Silinmemiş bir referans veya başka bir şey olması gerektiği anlaşılıyor.

Bu sorudaki çözümlerin hiçbiri ( /programming/34893267/ssis-script-task-vs15-not-work-when-deploy-on-sql-server-2014 ) işe yaramadı.

Komut dosyasının bulunduğu paketteki XML'e baktığımda, bu görevi kolayca bulabilirim ve hiçbir yerde sürüm 15'e referans yoktur.

=========== DÜZENLEME

Projeyi veritabanını barındıran makineye kopyaladıktan, VS2015'i açıp oradan dağıttıktan sonra paket yürütülür.

Ve sonra makineme geri dönüp orada inşa ederken, öyle değil.

Bu bir hata mı? Yoksa VS sihirbazı kullanarak aynı dağıtım sihirbazı üretmek için yapı bekleyerek aptalca bir şey mi yapıyorum ...

SQL Server 2016 (13.0.4411.0) ssisdbvar, şema sürümü (13.0.1601.5) var.

Visual studio 2015'te oluşturulan bir tümleştirme hizmetleri paketini kullanıyorum. Komut dosyası bileşeninin yolu: C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\VSTA14_IS_ST_CS_Template.vstaxBu paketi paketin tümleştirme hizmetleri kataloğu aracılığıyla (Zach'in yaşadığı mesaj nedeniyle) yürütmeme izin vermiyor. Ancak dosya sistemi üzerinden (SQL Agent kullanarak) çalıştırmama izin verdiği görülüyor. Bunun çalışıp çalışmadığından emin değilseniz, paket tamamlandıktan sonra bunu güncelleyecektir.


Paket sürümlerini belirtirken de aynı şeyi fark ettim. Projemi oluşturdum ve SQL Server hedef sürümünü değiştirmeyi unutmadan sihirbazı kopyaladım. Hedef sürümün çok yüksek olduğuna dair bir hata aldım. Düzeltilmiş hedef sürümle yeniden oluşturduğumda, XML düzeltilmiş hedef sürümü göstermesine rağmen aynı hatayı aldım
Zach Smith

Yanıtlar:


5

Aynı konuya sahip olduğuma inanıyorum ve işte benim sorunumun üstesinden gelen çalışmalar.

Önce ayrıntılar:

  • 2016 sql sunucum var (13.0.4411.0)
  • SSISDB'nin şema sürümü vardır (13.0.1601.5)
  • Visual Studio'da oluşturulan bir entegrasyon hizmetleri paketi kullanıyorum
  • Komut dosyası bileşeni (2015 C # olduğunu belirtir) şu yola sahiptir: C: \ Program Files (x86) \ Microsoft SQL Server \ 130 \ DTS \ Binn \ VSTA14_IS_ST_CS_Template.vstax

Kataloğa SSMS aracılığıyla dağıtırsam, paketi entegrasyon hizmetleri kataloğu üzerinden yürütmeme izin vermez (Zach - 15.0 sürümü desteklenmediği mesaj nedeniyle).

Geçici çözüm:

Paketi Visual Studio üzerinden gerekli örnekte 'Tümleştirme Hizmetleri Kataloğu'na dağıtırsam, bu ileti kaybolur ve proje başarıyla çalışır. Bu, SSMS aracılığıyla konuşlandırabileceğimiz için ideal değil, ancak projenin ilerleyebileceği anlamına geliyordu.


1
Geçici çözümün neden işe yaradığını bilmek isterim.
Zach Smith

4

DBA'm nihayetinde bunu benim için çözdü ve sorun, farkında olmadan SSMS 2017 aracılığıyla dağıttığımdı. Hata mesajı beni yoldan saptırdı, ancak geçici çözümünüz başarısızlığın ardındaki mantığa yol açmaya yardımcı oldu. Sanırım SSMS 2016'yı deneyebilir ve işe yarayıp yaramadığını görebilirsiniz. DBA'mın önerdiği diğer yol komut satırını kullanmaktır. 2016 için ihtiyacınız olan sürüm olduğundan 130'un vurgulandığı gibi bir şey:

"C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\ISDeploymentWizard.exe" 
/Silent /ModelType:Project 
/SourcePath:"E:\ssis\Project Path\bin\Development\Project.ispac" 
/DestinationServer:"server01" 
/DestinationPath:"/SSISDB/Projects/Project"

Umarım bu temizlemeye yardımcı olur. Geçici çözümünüzü bulmadan ve sonunda bu çözümü bulmadan önce uzun, uzun bir süre çalıştım. Çok teşekkürler!


"farkına varmadan SSMS 2017 aracılığıyla konuşlandırmak" ile ne demek istiyorsun? Ben dağıtmak için VS 2017 kullanın .. ve hedeflediğiniz SQL Server sürümünü tanımlamak için izin veren bir ayar var. Ama ben işe yaramadı buldum
Zach Smith

Bu benim için çalıştı. Doğrudan SSDT'den dağıtmak işe yaradı, ancak bunu uzaktan yapamadık, SSMS 2017 aracılığıyla dağıtmak işe yaramadı ve ardından 2016 ISDeploymentWizard.exe aracılığıyla komut satırı seçeneğini kullanmak işe yaradı. Teşekkürler!
Clinemi

0

Diğerlerine benzer hatlar boyunca, başlangıçta SQL2017 dağıtım sihirbazını kullanarak SQL2014'e konuşlandırdım. Bu çalışma zamanı hatası üretti. SQL2014 dağıtım sihirbazını kullandığımda her şey yolunda gitti.


-1

Aynı hatayı alıyorum diye buna ekleyeceğimi düşündüm. VS 2017 çalıştırıyorum ve 2016 SQL Server'a konuşlandırıyorum. Birkaç makaleyi okudum, sonra bunu düzeltmenin ne kadar kolay olduğunu anladım. VS 2017'nin geriye dönük uyumluluğu büyüktür.

SSIS paketinin sürümünü, hedef sunucunuzun sürümüyle eşleşecek şekilde değiştirmekle ilgili bu makale, benim durumumdaki hatayı çözmeme yardımcı oldu.


OP'nin kendi durumunda hedef sunucuyu değiştirmeyi denediğini söyledi, ancak işe yaramadı. Tabii ki (makalede belirtildiği gibi), hedef versiyonda bulunmayan bir özellik kullansaydı, bu yüzden işler işe yaramazdı.
RDFozz

Evet - sadece hedef sürümü değiştirmek işe yaramadı. Ancak, hedef sürümü değiştirmek ve daha sonra VS 2017 aracılığıyla yerel olarak dağıtmak işe yaradı - bu yüzden dağıtım sihirbazının nasıl oluşturulduğu konusunda VS 2017'de (en azından soruyu sorduğumda) bir hata olduğundan şüpheleniyorum. (Bu yaklaşımın uyumsuz özellikleri kullanmadığım için işe yaradığını varsayıyorum)
Zach Smith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.