Yeah, that won't work for me. Since C3D, ARCH, etc. are verticals to ACAD, which ever is loaded last is what acrxproductKey() returns. I need to know where AutoCAD 200x is installed. I'd like also not to have to update my installer everytime a new version of ACAD is rolled out.
Seen this a lot so far. What I have been doing recently, (as I don't have much experience with MSI) is building different installers for each product. This seems to be the best way forward, simply because any tools written in .NET are going to be targeted at the specific vertical product i.e. why install tools in AutoCAD MEP that have been spec'd for Civil3D
The ObjectArx 2008 documentation, I believe, provides documentation with regards to the registry keys you must add/edit in order to autoload or load-on-demand .NET assemblies. These keys are stored under HKEY_LOCAL_MACHINE. These keys are also the ones I update when new commands or assemblies are added/removed.
Locating the install directory, particularly when it is not the default is tricky (for me anyway), and up until now the last version ran (thanks jmaeding). If you are checking for the acad.exe, you could first check the default directory, then maybe ask the user to select the AutoCAD executable and take it from there (makes group policy installations impossible)
With the idea of not rebuilding your installer every time a new AutoCAD is released, would there not be problems with the versions of acmgd.dll ex cetera. I do develop for multiple versions of AutoCAD, and although it turns out to be more work and more documentation, the Visual Studio Solutions are separate. (any opinions would be good)
Hope I'm down the right track...