SSIS에서 스크립트 작업 버전을 변경하는 방법은 무엇입니까?


10

VS2015에서 SSIS 프로젝트에 스크립트 작업을 추가했습니다. SQL Server 2016에 배포 할 때 version 15.0스크립트가 지원되지 않는다는 오류 메시지가 나타납니다 .

이것은 어디에 있습니까 version 15 come from? Stack Overflow에 대한 다른 유사한 질문을 읽으면 프로젝트의 대상 버전을 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 이벤트) "

또한 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에 수정 된 대상 버전이 있음에도 불구하고 동일한 오류가 발생했습니다.
Zach Smith

답변:


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를 통해 패키지를 필요한 인스턴스의 'Integration Services Catalog'에 배포하면이 메시지가 사라지고 프로젝트가 성공적으로 실행됩니다. SSMS를 통해 배포 할 수 있어야하므로 이상적이지 않지만 프로젝트를 진행할 수 있습니다.


1
해결 방법이 왜 작동하는지 알고 싶습니다.
Zach Smith

4

내 DBA가 마침내 이것을 알아 냈으며 문제는 SSMS 2017을 통해 그것을 깨닫지 않고 배포하고 있다는 것이 었습니다. 오류 메시지로 인해 길을 잃었으나 해결 방법이 실패의 원인을 찾도록 도와주었습니다. SSMS 2016을 사용 해보고 작동하는지 확인할 수 있습니다. 내 DBA가 제안한 다른 방법은 명령 줄을 사용하는 것입니다. 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의 버전을 정의 할 수있는 설정이 있습니다. 그러나 나는 그것이 작동하지 않는 것을 발견했다
Zach Smith

이것은 나를 위해 일했습니다. SSDT에서 직접 배포 할 수는 있었지만 원격으로 그렇게 할 수 없었습니다 .SSMS 2017을 통한 배포는 작동하지 않았으며 2016 ISDeploymentWizard.exe를 통한 명령 줄 옵션을 사용하면 작동했습니다. 감사!
Clinemi

0

다른 사람들과 비슷한 줄을 따라 원래 SQL2017 배포 마법사를 사용하여 SQL2014에 배포했습니다. 이로 인해 런타임 오류가 발생했습니다. SQL2014 배포 마법사를 사용하면 모든 것이 잘 작동했습니다.


-1

나는 같은 오류가 발생하여 이것을 추가 할 것이라고 생각했습니다. VS 2017을 실행하고 2016 SQL Server에 배포하고 있습니다. 나는 꽤 많은 기사를 읽은 다음이 문제를 해결하는 것이 얼마나 쉬운 지 깨달았습니다. VS 2017은 이전 버전과의 호환성이 뛰어납니다.

대상 서버 버전과 일치하도록 SSIS 패키지 버전변경하는 방법에 대한 이 기사를 통해 제 오류를 해결하는 데 도움이되었습니다.


OP는 자신의 경우 대상 서버를 변경하려고 시도했지만 작동하지 않았다는 점에 유의하십시오. 물론 (기사에 언급 된 바와 같이) 대상 버전에서 사용할 수없는 기능을 사용한 경우에는 해당 기능이 작동하지 않습니다.
RDFozz

예-대상 버전을 변경해도 작동하지 않았습니다. 그러나 대상 버전을 변경 한 다음 VS 2017을 통해 로컬로 배포하면 효과가 있었으므로 배포 마법사를 만드는 방법과 관련하여 VS 2017의 버그 (적어도 질문 할 때)가 의심됩니다. (이 접근 방식으로 인해 호환되지 않는 기능을 사용하지 않았다고 가정합니다)
Zach Smith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.