I have updated our ArcMap extension to work with ArcMap 10 - mainly just change reference from ESRI.ArcGIS.ADF to ESRI.ArcGIS.ADF.Local and set value of 'Specific Version' property for all references to false, and also use the new ESRIRegAsm.exe to register it. So I am wondering now if I can build a single extension that will work with both 9.3.1 and 10.0 or do we need separate binaries for each product?
-
Good question. I'm having no problems with one of my 9.3 class libraries (no extension). But I did have to do exactly what you did for an extension because I was using a deprecated method on a class that moved to a different namespace.– Jay CumminsCommented Aug 31, 2010 at 17:26
-
@solsberg, I realize the thread is a little old, but what was the outcome of your investigation? Did a single build of your extension service both 9.3.1 and 10, or did you ultimately need two builds?– elrobisCommented Mar 27, 2012 at 23:35
2 Answers
According to this, you have to recompile:
At ArcGIS 10, ESRI no longer provides policy files. Consequently, all ArcGIS 9.3 and earlier development projects ported to ArcGIS 10 must be recompiled.
http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#//0001000002m2000000
-
For those like me thinking, "what are policy files?" I found the following link helpful. If I understand this correctly, it means the 9.x runtimes will automatically attempt to forward activity in the ESRI namespace ahead (if necessary) by one version of the runtime: resources.esri.com/help/9.3/arcgisengine/dotnet/…– elrobisCommented Mar 27, 2012 at 23:22
I have also found some subtle differences that can have a negative impact. For instance, the tagRECT struct was moved to a different library. This will not cause a problem when you build but can cause issues at runtime as the RCW will try to forward the call to the wrong COM library.
There may be other things hidden in the 10.0 libraries like this so you have to be careful. It may not be an issue if you aren't using an object that has been moved but it does introduce some risk.
Ultimately, you may need to take it on a case-by-case basis. In general, I have found the migration to be fairly painless.
-
An official list of interface additions (added), relocations (moved), and removals (removed) can be found here: help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/…– elrobisCommented Mar 27, 2012 at 23:30