1

我创建了一个 setup.exe,它可以是可分发的。它对 Visual Studio 的可分发文件有一些依赖。因此,我想安装以下 2 个依赖项(如在 NSIS 代码中检查的那样,如果不存在,则会安装) ,但如果有任何版本/版本的 Visual Studio,那么我不需要安装这些依赖项。

所以我想知道如何以编程方式检查系统上是否存在 Visual Studio 的任何版本/版本,如果没有,我将使用以下 NSIS 脚本自行安装我的依赖项。有人可以给我一些想法来检查系统中存在的任何版本/版本的 Visual Studio 还是不使用 NSIS ......

Section "VS05 Redist (required)" MVR1
  ReadRegStr $STRING_REDIST HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{837B34E3-7C30-493C-8F6A-2B0F04E2912C}" "UninstallString"
  StrCmp $STRING_REDIST "MsiExec.exe /X{837B34E3-7C30-493C-8F6A-2B0F04E2912C}" +3 0
  File "vcredist_x86ATL.exe"
  ExecWait "$INSTDIR\vcredist_x86ATL.exe"
SectionEnd

Section "VS08 Redist (required)" MVR2
 ReadRegStr $STRING_REDIST HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}" "UninstallString"
 StrCmp $STRING_REDIST "MsiExec.exe /X{FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}" +3 0
 File "vcredist_x86VS2008.exe"
 ExecWait "$INSTDIR\vcredist_x86VS2008.exe"
SectionEnd

上面的代码将只检查 VS05 分发和 VS08 分发,而我想查找是否存在任何版本的 VS。

4

1 回答 1

2

您可以测试任何子键的存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio。如果有,它会给你版本号。

于 2012-06-08T09:52:41.070 回答