Làm cách nào để thay đổi phiên bản tác vụ tập lệnh trong SSIS?


10

Tôi đã thêm một tác vụ kịch bản cho một dự án SSIS trong VS2015. Khi tôi triển khai lên SQL Server 2016, tôi nhận được thông báo lỗi rằng version 15.0tập lệnh không được hỗ trợ.

Cái này ở version 15 come fromđâu? Đọc các câu hỏi tương tự khác trên Stack Overflow Tôi thấy rằng bạn có thể đặt phiên bản đích của dự án thành SQL Server 2012 - điều mà tôi đã làm (mục tiêu triển khai cuối cùng là SQL Server 2012).

Tôi cũng đã cố gắng xóa và tạo lại nhiệm vụ kịch bản. Và trong thông tin của tập lệnh, nó nói rằng nó sử dụng V10 của C #.

Làm thế nào tôi có thể giải quyết điều này?

Tác vụ tập lệnh: Lỗi: Có một ngoại lệ trong khi tải Tác vụ tập lệnh từ XML: System.Exception: Tác vụ tập lệnh "" ST_a1ad9dc5972c42b68c12a13155f10b6d "" sử dụng tập lệnh phiên bản 15.0 không được hỗ trợ trong phiên bản Dịch vụ tích hợp này. Để chạy gói, sử dụng Tác vụ tập lệnh để tạo tập lệnh VSTA mới. Trong hầu hết các trường hợp, tập lệnh được chuyển đổi tự động để sử dụng phiên bản được hỗ trợ, khi bạn mở gói Dịch vụ tích hợp máy chủ SQL trong% SQL_PRODVEL_SHORT_NAME% Dịch vụ tích hợp. tại Microsoft.SqlServer.Dts.T Nhiệm.ScriptTask.ScriptTask.LoadFromXML (XmlEuity elemProj, IDTSInfoEvents event) "

Tôi cũng đã mở dự án trong SSDT 2012 và được xây dựng lại với một tên khác. Cùng một lỗi. Dường như phải có một tài liệu tham khảo chưa bị xóa hoặc một cái gì đó.

Không có giải pháp nào cho câu hỏi này ( /programming/33613267/ssis-script-task-vs15-not-work-when-deploy-on-sql-server-2014 ) đã hoạt động.

Nhìn vào XML trong gói có tập lệnh, tôi có thể dễ dàng tìm thấy tác vụ đó và không có tham chiếu đến phiên bản 15 ở bất cứ đâu.

=========== CHỈNH SỬA

Sau khi sao chép dự án vào máy lưu trữ cơ sở dữ liệu, mở VS2015 và triển khai từ đó, gói sẽ thực thi.

Và sau đó khi quay trở lại máy của tôi và xây dựng ở đó, nó không.

Đây có phải là một lỗi? Hoặc tôi đang làm điều gì đó ngu ngốc bằng cách mong đợi bản dựng tạo ra trình hướng dẫn triển khai giống như sử dụng trình hướng dẫn từ VS ...

Tôi có SQL Server 2016 (13.0.4411.0), ssisdbcó phiên bản lược đồ (13.0.1601.5).

Tôi đang sử dụng gói dịch vụ tích hợp được tạo trong visual studio 2015. Thành phần tập lệnh có đường dẫn: C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\VSTA14_IS_ST_CS_Template.vstaxNó sẽ không cho phép tôi thực thi gói thông qua danh mục dịch vụ tích hợp (do thông báo của Zach). Tuy nhiên, có vẻ như nó sẽ cho phép tôi thực thi nó thông qua hệ thống tệp (sử dụng SQL Agent). Không chắc chắn nếu điều này đang hoạt động, sẽ cập nhật điều này một khi gói đã hoàn thành.


Tôi đã nhận thấy điều tương tự khi chỉ định các phiên bản gói. Tôi đã xây dựng dự án của mình và sao chép trình hướng dẫn qua việc quên thay đổi phiên bản đích của Máy chủ SQL. Tôi đã gặp một lỗi rằng phiên bản Target quá cao. Khi tôi xây dựng lại với phiên bản đích đã sửa, tôi cũng gặp lỗi tương tự, mặc dù XML đã hiển thị phiên bản đích đã sửa
Zach Smith

Câu trả lời:


5

Tôi tin rằng tôi có cùng một vấn đề, và đây là công việc xoay quanh vấn đề của tôi.

Chi tiết đầu tiên:

  • Tôi có máy chủ sql 2016 (13.0.4411.0)
  • SSISDB có phiên bản lược đồ (13.0.1601.5)
  • Tôi đang sử dụng gói dịch vụ tích hợp được tạo trong studio trực quan
  • Thành phần tập lệnh (Trạng thái là 2015 C #) có đường dẫn: C: \ Program Files (x86) \ Microsoft SQL Server \ 130 \ DTS \ Binn \ VSTA14_IS_ST_CS_Template.vstax

Nếu tôi triển khai vào danh mục thông qua SSMS, nó sẽ không cho phép tôi thực thi gói thông qua danh mục dịch vụ tích hợp (do thông báo của Zach - phiên bản 15.0 không được hỗ trợ).

Cách giải quyết:

Nếu tôi triển khai gói thông qua Visual Studio đến 'Danh mục dịch vụ tích hợp' trong trường hợp được yêu cầu, thông báo này sẽ biến mất và dự án chạy thành công. Điều này không lý tưởng vì chúng tôi sẽ có thể triển khai thông qua SSMS, nhưng có nghĩa là dự án có thể tiến triển.


1
Tôi rất muốn biết tại sao cách giải quyết hoạt động.
Zach Smith

4

DBA của tôi cuối cùng đã tìm ra điều này cho tôi và vấn đề là tôi đã triển khai qua SSMS 2017 mà không nhận ra điều đó. Thông báo lỗi khiến tôi lạc lối nhưng cách giải quyết của bạn đã giúp dẫn đến lý do đằng sau sự thất bại. Tôi đoán bạn có thể thử SSMS 2016 và xem nếu nó hoạt động. Một cách khác mà DBA của tôi đề xuất là sử dụng dòng lệnh. Một cái gì đó như thế này, với 130 được tô sáng vì đó là phiên bản bạn cần cho năm 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"

Tôi hy vọng điều đó sẽ giúp làm sáng tỏ điều này. Tôi đã làm việc với nó trong một thời gian dài trước khi tìm ra cách giải quyết của bạn và cuối cùng là tìm ra giải pháp này. Vì vậy, cảm ơn!


Ý bạn là gì khi "triển khai qua SSMS 2017 mà không nhận ra điều đó"? Tôi sử dụng VS 2017 để triển khai .. và có một cài đặt cho phép bạn xác định phiên bản SQL Server bạn đang nhắm mục tiêu. Nhưng tôi thấy rằng nó không hoạt động
Zach Smith

Điều này làm việc cho tôi. Triển khai trực tiếp từ SSDT đã hoạt động nhưng chúng tôi không thể thực hiện điều đó từ xa, việc triển khai qua SSMS 2017 sẽ không hoạt động và sau đó sử dụng tùy chọn dòng lệnh thông qua ISDeploymentWizard.exe 2016 đã hoạt động. Cảm ơn!
Clinemi

0

Cùng với các dòng tương tự với các dòng khác, ban đầu tôi đã triển khai đến SQL2014 bằng cách sử dụng trình hướng dẫn triển khai SQL2017. Điều này tạo ra lỗi thời gian chạy. Khi tôi sử dụng trình hướng dẫn triển khai SQL2014, mọi thứ đều hoạt động tốt.


-1

Tôi nghĩ rằng tôi sẽ thêm vào điều này, vì tôi đã nhận được cùng một lỗi. Tôi đang chạy VS 2017 và triển khai đến SQL Server 2016. Tôi đã đọc khá nhiều bài báo, sau đó nhận ra rằng thật dễ dàng để tôi khắc phục điều này. VS 2017 có khả năng tương thích ngược tuyệt vời.

Bài viết này về việc thay đổi phiên bản của gói SSIS để phù hợp với phiên bản máy chủ mục tiêu của bạn đã giúp tôi khắc phục lỗi trong trường hợp của mình.


Lưu ý rằng OP cho biết ông đã cố gắng thay đổi máy chủ mục tiêu trong trường hợp của mình, nhưng nó không hoạt động. Tất nhiên (như đã lưu ý trong bài viết), nếu anh ta đã sử dụng một tính năng không có sẵn trong phiên bản đích, mọi thứ sẽ không hoạt động vì điều đó.
RDFozz

Có - chỉ thay đổi phiên bản mục tiêu không hoạt động. Tuy nhiên, việc thay đổi phiên bản đích và sau đó triển khai cục bộ thông qua VS 2017 đã có hiệu quả - vì vậy tôi nghi ngờ có lỗi trong VS 2017 (ít nhất là khi tôi đặt câu hỏi) liên quan đến cách tạo thuật sĩ triển khai. (Tôi cho rằng vì cách tiếp cận này có hiệu quả mà tôi đã không sử dụng các tính năng không tương thích)
Zach Smith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.