I support a .NET application that has been compiled on a PC with ArcGIS 10.1 installed. The application comprises a user interface and an ArcGIS desktop extension, plus an installer assembly that is called by Windows Installer to register the desktop extension during installation.
The problem I have is that the application won't run on a PC with ArcGIS 10.2 because the 10.1 ESRI assemblies are not found so it crashes. It seems that since v9.3 ESRI no longer supply publisher policy files any more to redirect the program at runtime to the latest versions.
I have managed to redirect the program to load the 10.2 assemblies by adding runtime assembly binding into the application's .exe.config. However, this doesn't redirect the desktop extension and won't solve the problem with the installer looking for the 10.1 libraries when installing the application.
ESRI's solution seems to be to re-compile the application every time a new version of ArcGIS is released. However, this means I would need to have a copy of every release of ArcGIS that the end users are using. And I'd have to uninstall and re-install different versions every time I need to change the application code in order to re-compile it.
Does anyone have any suggestions? Can the libraries be loaded dynamically at runtime to avoid looking for a specific version? Is there any other solution?