2014-02-07 106 views
0

我试图在VS2010中安装使用Visual Studio安装项目的DLL库。安装程序必须将该DLL安装到目标应用程序文件夹中,并将该DLL安装到每个安装的MS SQL Server Reporting Services实例的相应文件夹中。Visual Studio安装项目 - 检查目录是否存在

即,如果安装了SQL 2008报告服务,则应另外将该DLL安装到[ProgramFiles64Folder] \ Microsoft SQL Server \ MSRS10.MSSQLSERVER ... \ bin。

如果SQL 2012报表服务也被安装,则DLL也应该被安装到[ProgramFiles64Folder] \ Microsoft SQL Server的\ MSRS10.MSSQLSERVER ... \ BIN等

我想只安装将该DLL插入到相应的文件夹中,如果系统上安装了相应版本的SQL Server。

我曾尝试使用注册表搜索来查找MSRS * .MSSQLSERVER键,但这些键未添加到Wow6432Node,而且我找不到一种方法使安装程序仅在64位节点(为任何CPU和x64构建 - 都以Wow6432Node结尾)。

我也尝试过使用文件搜索,但是当找到目录而不是文件的存在时无法使其工作。

有没有简单的方法来做这个决定?如果目标文件夹已经存在,只将文件安装到目标文件夹?

回答

0

安装生成MSI文件的项目(Windows安装程序)不执行目录搜索,只执行文件,注册表和安装程序组件guid搜索。如果您知道这些设置的代表性文件的安装程序组件,您可以使用Windows Installer搜索搜索那些文件,并设置一个属性集,告诉您它们是否已安装。