Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
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 Cummins Aug 31 '10 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? – elrobis Mar 27 '12 at 23:35

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.

share|improve this answer
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:… – elrobis Mar 27 '12 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.

share|improve this answer
An official list of interface additions (added), relocations (moved), and removals (removed) can be found here:… – elrobis Mar 27 '12 at 23:30

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.