เรียกใช้แอปพลิเคชั่น ArcGIS 10.1 บน 10.2


10

ฉันรองรับแอปพลิเคชั่น. NET ที่คอมไพล์แล้วบนพีซีที่ติดตั้ง ArcGIS 10.1 แอปพลิเคชันประกอบด้วยส่วนต่อประสานผู้ใช้และส่วนขยายเดสก์ท็อป ArcGIS รวมถึงแอสเซมบลีของตัวติดตั้งที่ Windows Installer เรียกใช้เพื่อลงทะเบียนส่วนขยายเดสก์ท็อประหว่างการติดตั้ง

ปัญหาที่ฉันมีคือแอปพลิเคชันจะไม่ทำงานบนพีซีที่มี ArcGIS 10.2 เนื่องจากไม่พบชุดประกอบ ESRI 10.1 ดังนั้นจึงเกิดปัญหา ดูเหมือนว่าตั้งแต่ v9.3 ESRI จะไม่ส่งไฟล์นโยบายของผู้เผยแพร่อีกต่อไปเพื่อเปลี่ยนเส้นทางโปรแกรมขณะใช้งานเป็นเวอร์ชันล่าสุด

ฉันจัดการเพื่อเปลี่ยนเส้นทางโปรแกรมเพื่อโหลดชุดประกอบ 10.2 โดยเพิ่มการรวมรันไทม์แอสเซมบลีลงใน. exe.config ของแอปพลิเคชัน อย่างไรก็ตามสิ่งนี้จะไม่เปลี่ยนเส้นทางส่วนขยายเดสก์ท็อปและจะไม่แก้ปัญหาด้วยตัวติดตั้งที่กำลังมองหาไลบรารี 10.1 เมื่อติดตั้งแอปพลิเคชัน

ดูเหมือนว่าโซลูชันของ ESRI จะรวบรวมแอปพลิเคชั่นใหม่ทุกครั้งที่มีการปล่อย ArcGIS เวอร์ชันใหม่ อย่างไรก็ตามนี่หมายความว่าฉันต้องมีสำเนาของ ArcGIS ทุกรุ่นที่ผู้ใช้ใช้ และฉันจะต้องถอนการติดตั้งและติดตั้งเวอร์ชันที่แตกต่างกันใหม่ทุกครั้งที่ฉันต้องเปลี่ยนรหัสแอปพลิเคชันเพื่อรวบรวมใหม่

ไม่มีใครมีข้อเสนอแนะใด ๆ ? สามารถโหลดไลบรารีแบบไดนามิกที่รันไทม์เพื่อหลีกเลี่ยงการค้นหารุ่นที่เฉพาะเจาะจงหรือไม่ มีวิธีแก้ปัญหาอื่น ๆ อีกไหม?

คำตอบ:


2

ตั้งค่าการอ้างอิง ArcGIS ในโครงการของคุณเพื่อใช้คุณสมบัติต่อไปนี้:

Copy Local = False
Specific Version = False

ในกรณีส่วนใหญ่สิ่งนี้จะทำให้โปรแกรมของคุณใช้งานร่วมกันได้โดยที่คุณไม่ได้ใช้ arcobject ใด ๆ ที่เลิกใช้แล้วหรือมีการเปลี่ยนแปลง


ฉันมีการตั้งค่าเหล่านี้ใน Visual Studio แล้ว 'รุ่นที่เฉพาะเจาะจง = เท็จ' มีผลเฉพาะกับวิธีที่ Visual Studio โหลดการอ้างอิงไม่ใช่เมื่อมีการสร้างและปรับใช้แอปพลิเคชัน
แอนดี้

2

อาจเป็นการดีที่สุดที่คุณจะเปลี่ยนสถาปัตยกรรมโครงการเป็น ESRI Add-In ด้วยวิธีนี้คุณจะหลีกเลี่ยงการจัดการกับ Windows Installer ที่ถ้าฉันเข้าใจสถาปัตยกรรมของคุณอย่างถูกต้องคือการจัดการกับรีจิสทรีของ Windows

Add-In นั้นตรงไปตรงมามากขึ้นไม่จำเป็นต้องใช้ตัวติดตั้งเฉพาะสำหรับ Windows แต่จะถูกส่งเป็นไฟล์. zip แบบพิเศษนั่นคือไฟล์. esriAddIn และเป็นสิ่งที่ ESRI แนะนำ สิ่งเหล่านี้ไม่เกี่ยวข้องกับการลงทะเบียน windows เพียง ESRI และติดตั้งได้ด้วยคลิกเดียวของไฟล์ พวกเขาควรบังคับใช้การเปลี่ยนแปลงที่ Rich Wawrzonek แนะนำ

นอกจากนี้ ESRI ยังได้ระบุ ( ดูในการนำเสนอที่นี่ ) ว่าภายในเวอร์ชันหลักเช่น 10.x Add-Ins สามารถใช้งานร่วมกันได้เช่น 10.2 สามารถใช้ 10.1 และ 10.0 Add-Ins ได้ 10.1 สามารถใช้ 10.0 Add-In ได้ ด้วยข้อแม้ที่คุณควรระวังหากสิ่งนั้นถูกลบหรือเปลี่ยนแปลงใน ArcObjects เมื่อเปลี่ยน

ตัวอย่างเช่นเมธอดลายเซ็นต์สำหรับเมธอด OnContextMenuมีการเปลี่ยนแปลงใน 10.2 สำหรับอินเตอร์เฟสต่อไปนี้:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

ตราบใดที่การลบการลบเฉพาะใน 10.2 คือ :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

ส่วนที่เหลือของการเปลี่ยนแปลงถูกเพิ่มฟังก์ชันการทำงาน

เพื่อตอบคำถามของคุณในความคิดเห็นด้านล่างใช่สิ่งนี้ควรรับรองว่าคุณไม่จำเป็นต้องคอมไพล์สำหรับ Arc เวอร์ชันต่าง ๆ (ตราบใดที่คุณยังคงอยู่ใน 10.x) เมื่อพวกเขาเปลี่ยนเป็น 11 อาจเป็นเรื่องที่แตกต่าง เท่าที่สนับสนุน MapInfo ฉันไม่คุ้นเคยกับสิ่งนี้


ขอบคุณสำหรับข้อเสนอแนะ แต่ฉันมีความคิดสองข้อ: 1. การรับประกันนี้จะทำให้เกิดปัญหากับเวอร์ชั่นของ DLL หรือจะยังคงจำเป็นต้องคอมไพล์ใหม่สำหรับ ArcGIS แต่ละรุ่นหรือไม่? ปัญหาไม่ได้อยู่กับตัวติดตั้งหรือรีจิสตรี - ปัญหาคือ ESRI ไม่ได้จัดเตรียมไฟล์นโยบายผู้เผยแพร่ที่มีรีลีสใหม่อีกต่อไป 2. แอปพลิเคชันของฉันไม่ได้มีไว้สำหรับ ArcGIS เท่านั้น แต่ยังทำงานได้กับ MapInfo ดังนั้นแอปพลิเคชั่นจำนวนมากจึงเป็นอินเตอร์เฟสแบบสแตนด์อโลนและมีเพียงส่วนเล็ก ๆ ของรหัสที่เกี่ยวข้องกับ ArcGIS หรือ MapInfo
Andy

Andy เห็นส่วนเพิ่มเติมของคำตอบของฉันเพื่อแก้ไขข้อกังวลของคุณ
GeoSharp
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.