Determining what acad's are installed and the paths should be easy.
Check out:
HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.2
or change the last number as desired (17.0, 17.1...)for the three versions within a series.
The items in that key are constant no matter what funny business the person who installed it did.
Like, Civil 3D is ACAD-7000:409, the others have similar numbers so you should always be able to check on any settings for a given flavor of acad.
The problem is basically that the .NET deployment project doesn't allow you to view all the keys under a key. You have to know what's there already. By looking at the value of
\HKEY_CUR_USER\SOFTWARE\Autodesk\AutoCAD\CurVer
I can get the next Key (17.1 or 17.2 in my case) by looking at the value of the CurVer key under that key I can get the latest installed vertical's key (6001:409, 7004:409, etc.). The problem I have with this is I'm trying to write an enterprise wide solution and the enterprise I'm writing it for is not level set. Some users have 2008 some 2009, some use english, some use spanish, etc.
The .NET deployment project is not robust enough to do manipulations on Registry keys read otherwise it'd be a quick and easy.
Not to mention that everytime a new version of AutoCAD is put out to the enterprise somewhere I'll have to write a new installer.
I basically agreed to some impractical requirements before I knew the whole story.
MS and Autodesk need to come ask me about things like this before they run off and just do it.