2012-04-18 84 views
0

我试图创建dotNetInstaller我的应用程序引导程序这就需要的Microsoft SQL Server 2005向后兼容组件。我已经添加了使用预构建组件的检查。使用dotNetInstaller检查SQL Server 2008中是否安装了

一切都很好,直到我意识到我需要在安装之前检查SQL Server 2008安装Microsoft SQL Server 2005向后兼容性组件

这是我在卡住的地方,在微软的下载页面我仔细检查了系统要求Microsoft SQL Server 2005向后兼容性组件,它没有声明机器需要安装SQL Server 2008。

如果需要安装SQL Server 2008为的Microsoft SQL Server 2005向后兼容组件然后我要检查SQL Server 2008中是否安装,如果没有则跳过的Microsoft SQL Server 2005向后兼容组件安装并继续安装我的产品。

回答

1

我还没有dotNetInstaller工作,但你可以从注册表获取安装的SQL Server的当前版本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup\CurrentVersion 

如果该条目存在,这将意味着SQL Server 2008是安装。

如果未安装SQL Server 2008,则应该不存在注册表项。您可能想要检查当您卸载时会发生什么。我不知道该条目是否仍然存在。

从一些环顾四周,我认为你可以使用check_registry_value安装检查在dotNetInstaller中检查注册表值。

+0

那么SQL Server 2008 R2呢?经过一番烦躁之后,我发现了一些类似'SOFTWARE \ MICROSOFT \ Microsoft SQL Server \ Instance Names \ SQL \ SQLEXPRESS'的值应该是'MSSQL10_50.SQLEXPRESS'的东西。这会工作吗? – 2012-04-18 12:20:59

+0

嗯,不确定关于SQL Express。但我希望SQL Server 2008 R2也可以在我提到的注册表项下,因为它仍然是9.0版本。在CurrentVersion密钥中,应该有更多的信息,它是什么样的确切版本(R2与否,Service Pack,...)。您可以在这里看到有关SQL Server版本的信息:http://support.microsoft.com/kb/321185 – Peter 2012-04-18 12:43:48