Basically I have ArcMap 10.1 and SDK for ,NET 10.1 and Java 10.1 installed. I have built an application using this SDK for some operations on the feature classes. Now I found out that the end users mostly have 10.0 version of Arcmap and no SDKs installed. So the question is do I need a separate license for each version of Arcmap (10.0, 10.1, 10.2) to build an application that targets 10.0, 10.1 and 10.2 runtime environments? I think the functionality used is simple and probably is included in 10.0 APIs. The other question is whether it's possible to distribute only one application (e.g. built for 10.0) for all newer versions of the Arcmap or I need a three separate distribution packages for every version of the Arcmap. Finally, can I access 10.0 SDK having the license for 10.1 SDK?
In Visual Studio you can change the ESRI references to be somewhat version independent. In your project navigate to the References folder and select one of the ESRI references (e.g. ESRI.ArcGIS.Geometry). If you look in the Properties window there is a Specific Version setting - change this to false.
If the Specific Version is set to true, your application runs it will attempt to locate the exact version of the DLL file. When you deploy to multiple ArcGIS versions this will fail.
Be aware that this approach will not work if there have been changes to the namespaces or you use new functions that are not in previous versions of the SDK. The safest solution is to have separate versions for each ArcGIS version. However, if you are only using a limited part of the SDK that is fairly static then I would look into the Specific Version setting first.
I checked that and this setting is set to False for all ArcGIS references in my project. But still if I run it on the deployment PC it gives the FileNotFoundException for the ESRI assemblies.
You may need to ensure that they have .NET Support for ArcGIS Desktop. For more information see:
Below are the two instances in which .NET support is not automatically installed with ArcGIS Desktop.
- The .NET Framework was not installed on the computer before the ArcGIS Desktop install was performed.
- The version of the .NET Framework installed on the computer was not the correct version at the time that the ArcGIS Desktop install was performed.
The ArcGIS installer should really handle this stuff but I have come across installations with the issues highlighted.
Can you locate the ESRI .Net assemblies on the target machine? - for example ESRI.ArcGIS.Geometry