Chạy ứng dụng ArcGIS 10.1 trên 10.2


10

Tôi hỗ trợ một ứng dụng .NET đã được biên dịch trên PC có cài đặt ArcGIS 10.1. Ứng dụng bao gồm giao diện người dùng và tiện ích mở rộng máy tính để bàn ArcGIS, cộng với bộ cài đặt được Windows Installer gọi để đăng ký tiện ích mở rộng máy tính để bàn trong khi cài đặt.

Vấn đề tôi gặp phải là ứng dụng sẽ không chạy trên PC với ArcGIS 10.2 vì không tìm thấy các bản lắp ráp ESRI 10.1 nên nó gặp sự cố. Dường như ESRI v9.3 không còn cung cấp các tệp chính sách của nhà xuất bản nữa để chuyển hướng chương trình khi chạy sang các phiên bản mới nhất.

Tôi đã quản lý để chuyển hướng chương trình để tải 10.2 hội đồng bằng cách thêm ràng buộc lắp ráp thời gian chạy vào .exe.config của ứng dụng. Tuy nhiên, điều này không chuyển hướng tiện ích mở rộng trên máy tính để bàn và sẽ không giải quyết vấn đề với trình cài đặt đang tìm kiếm các thư viện 10.1 khi cài đặt ứng dụng.

Giải pháp của ESRI dường như là biên dịch lại ứng dụng mỗi khi phiên bản ArcGIS mới được phát hành. Tuy nhiên, điều này có nghĩa là tôi sẽ cần có một bản sao của mỗi bản phát hành ArcGIS mà người dùng cuối đang sử dụng. Và tôi phải gỡ cài đặt và cài đặt lại các phiên bản khác nhau mỗi lần tôi cần thay đổi mã ứng dụng để biên dịch lại.

Có ai có bất cứ đề nghị? Các thư viện có thể được tải động khi chạy để tránh tìm kiếm một phiên bản cụ thể không? Còn có những giải pháp nào nữa ko?

Câu trả lời:


2

Đặt tham chiếu ArcGIS trong dự án của bạn để sử dụng các thuộc tính sau:

Copy Local = False
Specific Version = False

Trong hầu hết các trường hợp, điều này sẽ làm cho chương trình của bạn tương thích với giả định rằng bạn không sử dụng bất kỳ arcobject nào bị phản đối hoặc có các thay đổi vi phạm.


Tôi đã có các cài đặt này trong Visual Studio. Version Phiên bản cụ thể = Sai 'chỉ ảnh hưởng đến cách Visual Studio tải các tài liệu tham khảo, không chỉ khi ứng dụng được xây dựng và triển khai.
Andy

2

Có thể tốt nhất khi bạn thay đổi kiến ​​trúc dự án của mình thành Bổ trợ ESRI. Bằng cách đó, bạn sẽ tránh giao dịch với Windows Installer, nếu tôi hiểu chính xác kiến ​​trúc của bạn đang xử lý sổ đăng ký Windows.

Bổ trợ đơn giản hơn nhiều, không yêu cầu trình cài đặt cụ thể của windows, chúng chỉ được vận chuyển dưới dạng tệp .zip đặc biệt là loại tệp .esriAddIn và là những gì được ESRI khuyên dùng. Chúng không xử lý sổ đăng ký windows, chỉ ESRI và cài đặt bằng một cú nhấp chuột của tệp. Họ nên thực thi tốt hơn những thay đổi mà Rich Wawrzonek đã đề xuất.

Ngoài ra, ESRI đã tuyên bố ( xem trong phần trình bày ở đây ) rằng trong các phiên bản chính, tức là 10.x Bổ trợ tương thích ngược, tức là 10.2 có thể sử dụng Bổ trợ 10.1 và 10.0, 10.1 có thể sử dụng Bổ trợ 10.0. Với lời cảnh báo mà bạn nên biết nếu mọi thứ đã bị xóa hoặc thay đổi trong ArcObjects khi chuyển đổi.

Ví dụ, chữ ký phương thức cho phương thức OnContextMothy đã được thay đổi trong 10.2 cho các giao diện sau:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

Theo như loại bỏ, loại bỏ duy nhất trong 10.2 là :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

Phần còn lại của các thay đổi đã được thêm chức năng.

Để trả lời câu hỏi của bạn trong các bình luận bên dưới, Có, điều này sẽ đảm bảo rằng bạn không phải biên dịch cho các phiên bản Arc khác nhau (miễn là bạn vẫn ở 10.x). Khi họ chuyển sang 11, đây có thể là một câu chuyện khác. Theo như hỗ trợ MapInfo, tôi không quen với điều này.


Cảm ơn lời đề nghị nhưng tôi có hai suy nghĩ: 1. Điều này có đảm bảo giải quyết được vấn đề của các phiên bản DLL hay bổ trợ vẫn cần được biên dịch lại cho mỗi phiên bản ArcGIS không? Vấn đề không nằm ở trình cài đặt hoặc sổ đăng ký - vấn đề là ESRI không còn cung cấp các tệp chính sách của nhà xuất bản với các bản phát hành mới. 2. Ứng dụng của tôi không chỉ dành cho ArcGIS, nó còn hoạt động với MapInfo. Vì vậy, phần lớn ứng dụng là một giao diện độc lập và chỉ một phần nhỏ của mã liên quan đến ArcGIS hoặc MapInfo.
Andy

Andy thấy các bổ sung cho câu trả lời của tôi để giải quyết mối quan tâm của bạn.
GeoSharp
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.