Come modificare una versione dell'attività di script in SSIS?


10

Ho aggiunto un'attività di script a un progetto SSIS in VS2015. Quando ho distribuito a SQL Server 2016 ho ricevuto un messaggio di errore che lo version 15.0script non è supportato.

Dove va version 15 come from? Leggendo altre domande simili su Stack Overflow, vedo che è possibile impostare la versione di destinazione del progetto su SQL Server 2012, cosa che ho fatto (la destinazione di distribuzione finale è SQL Server 2012).

Ho anche provato a eliminare e ricreare l'attività di script. E nelle informazioni dello script dice che sta usando V10 di C #.

Come posso risolvere questo?

Attività di script: errore: si è verificata un'eccezione durante il caricamento di attività di script da XML: System.Exception: l'attività di script "" ST_a1ad9dc5972c42b68c12a13155f10b6d "" utilizza lo script della versione 15.0 che non è supportato in questa versione di Integration Services. Per eseguire il pacchetto, utilizzare l'attività Script per creare un nuovo script VSTA. Nella maggior parte dei casi, gli script vengono convertiti automaticamente per utilizzare una versione supportata quando si apre un pacchetto di SQL Server Integration Services in% SQL_PRODUCT_SHORT_NAME% Integration Services. presso Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML (eventi XmlElement elemProj, IDTSInfoEvents) "

Ho anche aperto il progetto in SSDT 2012 e ricostruito con un nome diverso. Stesso errore Sembra che ci debba essere un riferimento che non è stato eliminato o qualcosa del genere.

Nessuna delle soluzioni su questa domanda ( /programming/34893267/ssis-script-task-vs15-not-work-when-deploy-on-sql-server-2014 ) ha funzionato.

Osservando l'XML nel pacchetto in cui si trova lo script, posso facilmente trovare quell'attività e non c'è alcun riferimento alla versione 15 ovunque.

=========== MODIFICA

Dopo aver copiato il progetto sul computer che ospita il database, aprendo VS2015 e distribuendolo da lì, il pacchetto viene eseguito.

E poi quando torno alla mia macchina e costruisco lì, non lo fa.

è un insetto? O sto facendo qualcosa di stupido aspettandomi che la build produca la stessa procedura guidata di distribuzione dell'utilizzo della procedura guidata da VS ...

Ho SQL Server 2016 (13.0.4411.0), ssisdbha la versione dello schema (13.0.1601.5).

Sto usando un pacchetto di servizi di integrazione creato in Visual Studio 2015. Il componente script ha il percorso: C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\VSTA14_IS_ST_CS_Template.vstaxNon mi consente di eseguire il pacchetto attraverso il catalogo dei servizi di integrazione (a causa del messaggio sperimentato da Zach). Tuttavia sembra che mi permetterà di eseguirlo attraverso il file system (usando SQL Agent). Incerto se funziona, lo aggiornerà una volta completato il pacchetto.


Ho notato lo stesso quando si specificavano le versioni del pacchetto. Ho creato il mio progetto e copiato la procedura guidata dimenticandomi di cambiare la versione di destinazione di SQL Server. Ho avuto un errore che la versione di destinazione era troppo alta. Quando ho ricostruito con la versione di destinazione corretta ho ricevuto lo stesso errore, nonostante l'XML mostrasse la versione di destinazione corretta
Zach Smith

Risposte:


5

Credo di avere lo stesso problema, e qui è il lavoro che ha superato il mio problema.

Prima i dettagli:

  • Ho SQL Server 2016 (13.0.4411.0)
  • SSISDB ha la versione dello schema (13.0.1601.5)
  • Sto usando un pacchetto di servizi di integrazione creato in Visual Studio
  • Il componente script (che indica che è 2015 C #) ha il percorso: C: \ Programmi (x86) \ Microsoft SQL Server \ 130 \ DTS \ Binn \ VSTA14_IS_ST_CS_Template.vstax

Se eseguo la distribuzione nel catalogo tramite SSMS, non mi consente di eseguire il pacchetto tramite il catalogo dei servizi di integrazione (a causa del messaggio riscontrato da Zach - versione 15.0 non supportata).

La soluzione alternativa:

Se distribuisco il pacchetto tramite Visual Studio nel "Catalogo dei servizi di integrazione" nell'istanza richiesta, questo messaggio scompare e il progetto viene eseguito correttamente. Questo non è l'ideale in quanto dovremmo essere in grado di implementare tramite SSMS, ma significa che il progetto può progredire.


1
Mi piacerebbe sapere perché la soluzione alternativa funziona.
Zach Smith,

4

Il mio DBA ha finalmente capito questo per me e il problema era che stavo distribuendo attraverso SSMS 2017 senza rendermene conto. Il messaggio di errore mi ha portato fuori strada, ma la tua soluzione ha contribuito a portare il ragionamento dietro l'errore. Immagino che tu possa provare SSMS 2016 e vedere se funziona. L'altro modo suggerito dal mio DBA è usare la riga di comando. Qualcosa del genere, con 130 evidenziati poiché quella è la versione di cui hai bisogno per il 2016:

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

Spero che questo aiuti a chiarire questo. Ci ho lavorato molto, molto tempo prima di trovare la soluzione alternativa e poi finalmente trovare questa soluzione. Quindi grazie!


cosa intendi con "distribuzione tramite SSMS 2017 senza accorgermene"? Uso VS 2017 per distribuire .. e c'è un'impostazione che ti consente di definire la versione di SQL Server che stai prendendo di mira. Ma ho scoperto che non ha funzionato
Zach Smith il

Questo ha funzionato per me. La distribuzione diretta da SSDT ha funzionato, ma non è stato possibile farlo in remoto, la distribuzione tramite SSMS 2017 non funzionava e quindi l'utilizzo dell'opzione della riga di comando tramite ISDeploymentWizard.exe 2016 ha funzionato. Grazie!
Clinemi,

0

Lungo linee simili ad altre, inizialmente ho implementato SQL2014 utilizzando la procedura guidata di distribuzione SQL2017. Ciò ha prodotto l'errore di runtime. Quando ho usato la procedura guidata di distribuzione SQL2014 tutto ha funzionato bene.


-1

Ho pensato di aggiungere a questo, poiché stavo ottenendo lo stesso errore. Sono in esecuzione VS 2017 e la distribuzione su un SQL Server 2016. Ho letto alcuni articoli, poi ho capito quanto fosse facile per me risolvere questo problema. VS 2017 ha una grande compatibilità con le versioni precedenti.

Questo articolo sulla modifica della versione di un pacchetto SSIS in modo che corrisponda alla versione del server di destinazione mi ha aiutato a risolvere l'errore nel mio caso.


Si noti che l'OP ha affermato di aver provato a cambiare il server di destinazione nel suo caso, ma non ha funzionato. Naturalmente (come notato nell'articolo), se avesse usato una funzione non disponibile nella versione di destinazione, le cose non funzionerebbero a causa di ciò.
RDFozz,

Sì, la semplice modifica della versione di destinazione non ha funzionato. Tuttavia, modificare la versione di destinazione e quindi distribuire localmente tramite VS 2017 ha funzionato, quindi sospetto un bug in VS 2017 (almeno quando ho posto la domanda) per quanto riguarda la modalità di creazione della procedura guidata di distribuzione. (Suppongo che, poiché questo approccio ha funzionato, non ho usato funzioni incompatibili)
Zach Smith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.