SSISでスクリプトタスクのバージョンを変更する方法


10

VS2015のSSISプロジェクトにスクリプトタスクを追加しました。SQL Server 2016に展開すると、version 15.0スクリプトがサポートされていないというエラーメッセージが表示されました。

これはどこにありますversion 15 come fromか?スタックオーバーフローに関する他の同様の質問を読むと、プロジェクトのターゲットバージョンをSQL Server 2012に設定できることがわかります(私が行った(最終的な展開ターゲットはSQL Server 2012))。

また、スクリプトタスクを削除して再作成してみました。スクリプトの情報では、C#のV10を使用していると記載されています。

どうすればこれを解決できますか?

スクリプトタスク:エラー: XMLからスクリプトタスクを読み込むときに例外が発生しました:System.Exception:スクリプトタスク "" ST_a1ad9dc5972c42b68c12a13155f10b6d ""は、このリリースのIntegration Servicesでサポートされていないバージョン15.0スクリプトを使用しています。パッケージを実行するには、スクリプトタスクを使用して新しいVSTAスクリプトを作成します。ほとんどの場合、%SQL_PRODUCT_SHORT_NAME%Integration ServicesでSQL Server Integration Servicesパッケージを開くと、サポートされているバージョンを使用するようにスクリプトが自動的に変換されます。Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj、IDTSInfoEvents events)で」

SSDT 2012でもプロジェクトを開き、別の名前で再構築しました。同じエラー。削除されていない参照などがあるはずです。

この質問の解決策(/programming/34893267/ssis-script-task-vs15-not-work-when-deploy-on-sql-server-2014)はどれも機能しませんでした。

スクリプトが含まれているパッケージのXMLを見ると、そのタスクを簡単に見つけることができます。バージョン15への参照はどこにもありません。

===========編集

データベースをホストするマシンにプロジェクトをコピーし、VS2015を開いてそこからデプロイすると、パッケージが実行されます。

そして、私のマシンに戻ってそこでビルドするときは、そうではありません。

これはバグですか?または、ビルドがVSからのウィザードを使用するのと同じ展開ウィザードを生成することを期待して、私は何か愚かなことをしていますか?

SQL Server 2016(13.0.4411.0)がssisdbあり、スキーマバージョン(13.0.1601.5)があります。

Visual Studio 2015で作成された統合サービスパッケージを使用しています。スクリプトコンポーネントにはパスがあります。C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\VSTA14_IS_ST_CS_Template.vstax統合サービスカタログからパッケージを実行することはできません(Zachのメッセージが原因です)。ただし、ファイルシステムから(SQLエージェントを使用して)実行できるようです。これが機能しているかどうかは不明ですが、パッケージが完了すると更新されます。


パッケージのバージョンを指定するときにも同じことに気づきました。プロジェクトをビルドし、SQL Serverのターゲットバージョンを変更するのを忘れてウィザードをコピーしました。対象バージョンが高すぎるというエラーが表示されました。私は、補正後の目標バージョンで再構築するとXMLが補正後の目標バージョンを示しているにもかかわらず、私は、同じエラーを得た
ザック・スミス

回答:


5

私は同じ問題を抱えていると思いますが、これが私の問題を乗り越えた回避策です。

最初に詳細:

  • SQL Server 2016(13.0.4411.0)を持っています
  • SSISDBにはスキーマバージョンがあります(13.0.1601.5)
  • Visual Studioで作成された統合サービスパッケージを使用しています
  • スクリプトコンポーネント(2015 C#と記載されています)のパスは次のとおりです:C:\ Program Files(x86)\ Microsoft SQL Server \ 130 \ DTS \ Binn \ VSTA14_IS_ST_CS_Template.vstax

SSMSを介してカタログに展開した場合、統合サービスカタログを介してパッケージを実行できません(Zachで発生したメッセージ-バージョン15.0はサポートされていません)。

回避策:

Visual Studioを介してパッケージを必要なインスタンスの「統合サービスカタログ」に展開すると、このメッセージが表示されなくなり、プロジェクトは正常に実行されます。SSMSを介して展開できるはずなので、これは理想的ではありませんが、プロジェクトが進行できることを意味します。


1
回避策が機能する理由を知りたいです。
Zach Smith

4

私のDBAは最終的にこれを理解してくれました。問題は、SSMS 2017を通じて気付かずに展開していたことです。エラーメッセージは私を混乱させましたが、あなたの回避策は失敗の背後にある理由を導くのに役立ちました。SSMS 2016を試してみて、それが機能するかどうかを確認できます。私のDBAが提案したもう1つの方法は、コマンドラインを使用することです。これは2016に必要なバージョンであるため、130が強調表示されています。

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

これで問題が解決することを願っています。私はあなたの回避策を見つけ、最後にこの解決策を見つける前に、長い間、それについて取り組んでいました。ほんとありがと!


「SSMS 2017を実現せずに展開する」とはどういう意味ですか?VS 2017を使用して展開しています。対象とするSQL Serverのバージョンを定義できる設定があります。しかし、私はそれがうまくいかないことに
ザック・スミス

これでうまくいきました。SSDTから直接デプロイすることはできましたが、リモートで行うことはできず、SSMS 2017を介したデプロイは機能せず、2016 ISDeploymentWizard.exeを介してコマンドラインオプションを使用しても機能しました。ありがとう!
Clinemi、

0

他の人と同じように、私は最初にSQL2017配置ウィザードを使用してSQL2014に配置しました。これにより、実行時エラーが発生しました。SQL2014配置ウィザードを使用すると、すべてが正常に機能しました。


-1

同じエラーが発生したため、これに追加すると思いました。VS 2017を実行して2016 SQL Serverに展開しています。私はかなりの数の記事を読んだ後、これを修正するのがいかに簡単かを悟った。VS 2017には下位互換性があります。

ターゲットサーバーのバージョンと一致するようにSSISパッケージのバージョンを変更することに関するこの記事は、私の場合のエラーの解決に役立ちました。


OPは彼のケースでターゲットサーバーを変更しようとしたが、それが機能しなかったことに注意してください。もちろん(記事で述べたように)、ターゲットバージョンで利用できない機能を使用した場合、そのために動作しません。
RDFozz 2018

はい-対象バージョンを変更するだけでは機能しませんでした。ただし、ターゲットバージョンを変更してVS 2017を介してローカルに展開することは機能しました。そのため、展開ウィザードの作成方法に関するVS 2017のバグ(少なくとも質問したとき)を疑っています。(このアプローチが機能して以来、互換性のない機能を使用しなかったと想定しています)
Zach Smith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.