0

I am attempting to install a library DLL using a Visual Studio Setup Project in VS2010. The installer must install the DLL into the Target Application folder, as well as install the DLL into the appropriate folder for each instance of MS SQL Server Reporting Services installed.

i.e. if SQL 2008 reporting services is installed, then the DLL should additionally be installed to [ProgramFiles64Folder]\Microsoft SQL Server\MSRS10.MSSQLSERVER...\bin.

If SQL 2012 Reporting Services is also installed, then the DLL should also be installed to [ProgramFiles64Folder]\Microsoft SQL Server\MSRS10.MSSQLSERVER...\bin, etc.

I am trying to only install the DLL into the appropriate folder, if the corresponding version of SQL Server is installed on the system.

I have tried using the Registry Search, to look for the MSRS*.MSSQLSERVER key, but those keys aren't added to the Wow6432Node, and I couldn't find a way to get the installer to look only in the 64-bit node (built for Any CPU and x64--both ended up looking in the Wow6432Node).

I also tried using a File Search, but couldn't get this to work when looking for the existence of a directory rather than a file.

Is there any simple way to do this determination? To only install a file to a target folder if said target folder already exists?

1 Answers1

0

Setup projects that generate MSI files (Windows Installer) don't do directory search, just file, registry, and installer component guid search. If you knew the installer component guids of representative files from those setups you could search for those with the Windows Installer search and have a property set that tells you whether they are installed or not.

PhilDW
  • 20,260
  • 1
  • 18
  • 28