确定是否安装了 VS 或 SSMS,如果安装了,是哪个版本
Determine whether VS or SSMS is installed and, if so, which version
我正在为几个版本的 Visual Studio、Data Tools 和 SQL Server Management Studio 创建一个插件安装包。我的安装包必须能够检测安装了这些工具中的哪一个(如果有的话),以便我的安装向导可以禁用机器上不存在的软件的复选框。
在官方的 Inno 安装文档中我发现 this:
function RegKeyExists(const RootKey: Integer; const SubKeyName: String): Boolean;
所以现在我有一种检查注册表的方法,而且我很确定 VS 安装程序会在其中写入一些数据。
经过一些挖掘,我在 this link and this one too 找到了另一篇有用的文章,似乎对我有进一步的指导。
我希望尽快进入我的注册表以确保这是我正在寻找的东西,但令我惊讶的是我正在寻找的参考资料不在那里。
为什么这是我不知道所以我的第一个问题是:
问题:为什么说明书告诉我要往下看
HKLM\Software\Microsoft\DevDiv\VS\Servicing.0\Ultimate
当我的 'DevDiv' 子文件夹甚至不包含 'VS' 子文件夹时?
经过更多挖掘后,我发现了另一种方法,可以通过 this site 上的卸载信息检测我的机器上是否安装了软件。
在查看引用的注册表位置后,我发现大多数软件都用一个名为 Guid 的子文件夹表示。
问题:在注册表的卸载信息中,一个软件产品是通过完全随机的Guid注册自己还是每次安装软件时子文件夹名称都相同?换句话说,我可以只查找哪个 Guid 命名子文件夹包含 ie 的信息吗? VS2012,并将其硬编码到我的脚本中作为要搜索的确切位置?
最后的想法:如果有更好的方法来查找安装信息,我将不胜感激。加载项需要检测 VS 2010、2012、Date Tools 和 SSMS 2012。
我相信您可能要查找的内容(就正确的注册表项而言)位于 HKEY_CURRENT_USER
(HKCU) 下。例如,HKCU\Software\Microsoft\VisualStudio
每个版本都有密钥,每个版本有两个密钥(版本和 version_config)。
我当前的系统有 HCKU\Software\Microsoft\VisualStudio.0
(和 10.0_Config
)的条目,用于 Visual Studio 和 HCKU\Software\Microsoft\Microsoft SQL Server0
的一个版本,这似乎是您想要的 Visual Studio 和 SSMS。我无法使用 Date Tools(因为我没有),但我怀疑在同一个注册表分支中也有它们的注册表项。
我正在为几个版本的 Visual Studio、Data Tools 和 SQL Server Management Studio 创建一个插件安装包。我的安装包必须能够检测安装了这些工具中的哪一个(如果有的话),以便我的安装向导可以禁用机器上不存在的软件的复选框。
在官方的 Inno 安装文档中我发现 this:
function RegKeyExists(const RootKey: Integer; const SubKeyName: String): Boolean;
所以现在我有一种检查注册表的方法,而且我很确定 VS 安装程序会在其中写入一些数据。
经过一些挖掘,我在 this link and this one too 找到了另一篇有用的文章,似乎对我有进一步的指导。
我希望尽快进入我的注册表以确保这是我正在寻找的东西,但令我惊讶的是我正在寻找的参考资料不在那里。
为什么这是我不知道所以我的第一个问题是:
问题:为什么说明书告诉我要往下看
HKLM\Software\Microsoft\DevDiv\VS\Servicing.0\Ultimate
当我的 'DevDiv' 子文件夹甚至不包含 'VS' 子文件夹时?
经过更多挖掘后,我发现了另一种方法,可以通过 this site 上的卸载信息检测我的机器上是否安装了软件。
在查看引用的注册表位置后,我发现大多数软件都用一个名为 Guid 的子文件夹表示。
问题:在注册表的卸载信息中,一个软件产品是通过完全随机的Guid注册自己还是每次安装软件时子文件夹名称都相同?换句话说,我可以只查找哪个 Guid 命名子文件夹包含 ie 的信息吗? VS2012,并将其硬编码到我的脚本中作为要搜索的确切位置?
最后的想法:如果有更好的方法来查找安装信息,我将不胜感激。加载项需要检测 VS 2010、2012、Date Tools 和 SSMS 2012。
我相信您可能要查找的内容(就正确的注册表项而言)位于 HKEY_CURRENT_USER
(HKCU) 下。例如,HKCU\Software\Microsoft\VisualStudio
每个版本都有密钥,每个版本有两个密钥(版本和 version_config)。
我当前的系统有 HCKU\Software\Microsoft\VisualStudio.0
(和 10.0_Config
)的条目,用于 Visual Studio 和 HCKU\Software\Microsoft\Microsoft SQL Server0
的一个版本,这似乎是您想要的 Visual Studio 和 SSMS。我无法使用 Date Tools(因为我没有),但我怀疑在同一个注册表分支中也有它们的注册表项。