Hiện tại tôi đang dùng điện thoại nên không thể kiểm tra lại cú pháp chính xác 😕 Gần đây tôi có liên quan đến cái này. Có thể bạn đã quen với việc triển khai .rdls ngay từ thư mục nguồn của mình. Với phiên bản mới so với 2015 đang chạy trên phiên bản máy chủ cũ hơn, bạn sẽ cần làm theo một vài bước đơn giản.
- Đảm bảo rằng môi trường mục tiêu của bạn được đặt chính xác trong các thuộc tính của dự án. Có thể là do bản nâng cấp nên nhận ra nó.
- Xây dựng dự án của bạn. Các tệp nguồn sẽ vẫn ở định dạng mới nhưng .rdls (và các tệp khác) sẽ được tạo ở phiên bản đích trong thư mục con bin của bạn. Chúng có thể được triển khai mà không gặp vấn đề gì.
Có vẻ như bắt đầu với Report Server 2016, có một cấu trúc tệp mới và xmlns trong tệp rdl sẽ thay đổi. Vs 2015 với SSDT-BI được cập nhật sẽ tự động nâng cấp mọi báo cáo bạn mở lên định dạng mới và sử dụng định dạng đó làm tệp nguồn mới. Nhưng việc xây dựng theo môi trường đích sẽ tạo rdls bằng cách sử dụng định dạng tệp và xmlns cũ.
CHỈNH SỬA Chỉ cần thêm một số thông tin bổ sung, tôi đã đưa ra một câu trả lời khác.
Trong thuộc tính dự án, bạn có thể có tối đa 3 tùy chọn cho TargetServerVersion tùy thuộc vào phiên bản VS và phiên bản SSDT-BI được cài đặt:
- SQL 2008
- SQL 2008 R2, SQL 2012, SQL 2014
- SQL 2016+ (mới trong VS 2015 với SSDT-BI mới nhất)
Mỗi trong số này sử dụng một xmlns khác nhau trong mã XML báo cáo. Khi bạn mở từng báo cáo, tệp .rdl trong báo cáo nguồn của bạn sẽ được nâng cấp lên xmlns mới nhất - dù muốn hay không.
Tuy nhiên, khi bạn triển khai hoặc xây dựng, các tệp .rdl trong thư mục bin của bạn sẽ được biên dịch để phù hợp với mục tiêu. Miễn là bạn sử dụng các phiên bản thư mục bin (tự động với triển khai VS), bạn có thể triển khai thành công các phiên bản này cho máy chủ của mình.