ArcGIS 10.1 uygulamasını 10.2'de çalıştırın


10

ArcGIS 10.1 yüklü bir bilgisayarda derlenmiş bir .NET uygulamasını destekliyorum. Uygulama, bir kullanıcı arabirimi ve bir ArcGIS masaüstü uzantısının yanı sıra yükleme sırasında masaüstü uzantısını kaydetmek için Windows Installer tarafından çağrılan bir yükleyici derlemesinden oluşur.

Benim sorunum uygulama 10.1 ESRI derlemeleri bulunamadığı için çökmez böylece ArcGIS 10.2 ile bir bilgisayarda çalışmaz olmasıdır. Görünüşe göre v9.3 ESRI, programı çalışma zamanında en son sürümlere yönlendirmek için artık yayıncı ilke dosyaları sağlamaz.

Uygulamanın .exe.config dosyasına çalışma zamanı derleme bağlaması ekleyerek 10.2 derlemelerini yüklemek için programı yeniden yönlendirmeyi başardım. Ancak bu, masaüstü uzantısını yeniden yönlendirmez ve uygulamayı yüklerken 10.1 kitaplıklarını arayan yükleyicideki sorunu çözmez.

ESRI'nin çözümü, ArcGIS'in her yeni sürümü çıktığında uygulamayı yeniden derlemek gibi görünüyor. Ancak bu, son kullanıcıların kullandığı ArcGIS'in her sürümünün bir kopyasına sahip olmam gerektiği anlamına gelir. Uygulama kodunu yeniden derlemek için her değiştirmem gerektiğinde farklı sürümleri kaldırmam ve yeniden yüklemem gerekir.

Kimsenin önerisi var mı? Belirli bir sürümü aramamak için kütüphaneler çalışma zamanında dinamik olarak yüklenebilir mi? başka bir çözüm var mı?

Yanıtlar:


2

Aşağıdaki özellikleri kullanmak için projenizdeki ArcGIS referanslarını ayarlayın:

Copy Local = False
Specific Version = False

Çoğu durumda bu, kullanımdan kaldırılmış veya kopan değişiklikler olan herhangi bir arcobject kullanmıyorsanız, programınızı ileriye doğru uyumlu hale getirir.


Visual Studio'da zaten bu ayarlara sahibim. 'Specific Version = False', bir uygulama oluşturulduktan ve dağıtıldığında değil, yalnızca Visual Studio'nun başvuruları nasıl yüklediğini etkiler.
Andy

2

Proje mimarinizi bir ESRI Eklentisi olarak değiştirmeniz en iyisi olabilir. Bu şekilde, Windows Installer ile uğraşmaktan kaçınacaksınız, eğer mimarinizi doğru anlarsam Windows kayıt defteri ile uğraşıyor.

Eklentiler çok daha basittir, Windows'a özel yükleyiciler gerektirmez, sadece .esriAddIn dosya türü olan özel bir .zip dosyası olarak gönderilir ve ESRI tarafından önerilenlerdir. Bunlar windows kayıt defteri ile ilgilenmez, sadece ESRI ve dosyanın tek bir tıklama ile yükleyin. Rich Wawrzonek'in önerdiği değişiklikleri daha iyi uygulamalıdırlar.

Ek olarak ESRI, (10. sunumda bkz. ) Büyük sürümlerde, yani 10.x Eklentilerin geriye dönük olarak uyumlu olduğunu, yani 10.2'nin 10.1 ve 10.0 Eklentilerini, 10.1'in 10.0 Eklentilerini kullanabileceğini belirtmiştir. Geçiş sırasında ArcObjects'te bir şeylerin kaldırılmış veya değiştirilmiş olup olmadığının farkında olmanız gerekir.

Örneğin, OnContextMenu yöntemi için yöntem imzası , aşağıdaki arabirimler için 10.2'de değiştirilmiştir:

  • IDocumentEvents
  • IGxDocumentEvents
  • IGMxDocumentEvents
  • ISxDocumentEvents

Kaldırma işlemlerine gelince, 10.2'deki tek kaldırma işlemleri :

  • MaplexUI
    • MaplexExtension
    • MaplexExtensionClass

Geri kalan değişikliklere işlevsellik eklendi.

Aşağıdaki yorumlarda sorunuzu cevaplamak için Evet, bu , Arc'ın farklı sürümleri için derlemeniz gerekmediğini garanti etmelidir (10.x'te kaldığınız sürece). 11'e geçtiklerinde bu farklı bir hikaye olabilir. MapInfo'yu desteklediğim kadarıyla, bunu bilmiyorum.


Öneri için teşekkürler ama iki düşünce var: 1. Bu DLL sürümleri sorunu almak için garanti veya eklenti ArcGIS her sürümü için hala derlenmesi gerekir mi? Sorun yükleyici veya kayıt defterinde değildir - sorun ESRI'nin artık yayıncı ilke dosyalarına yeni sürümler sağlamamasıdır. 2. Uygulamam sadece ArcGIS için değil MapInfo ile de çalışıyor. Uygulamanın büyük kısmı bağımsız bir arayüzdür ve kodun sadece küçük bir kısmı ArcGIS veya MapInfo ile ilgilidir.
Andy

Andy endişelerinizi gidermek için cevabımın eklemelerini görüyor.
GeoSharp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.