summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Tools/msi/msilib.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/Tools/msi/msilib.py b/Tools/msi/msilib.py
index 8a232bf..47a47c6 100644
--- a/Tools/msi/msilib.py
+++ b/Tools/msi/msilib.py
@@ -376,14 +376,19 @@ class CAB:
except OSError:
pass
for k, v in [(r"Software\Microsoft\VisualStudio\7.1\Setup\VS", "VS7CommonBinDir"),
- (r"Software\Microsoft\Win32SDK\Directories", "Install Dir")]:
+ (r"Software\Microsoft\VisualStudio\8.0\Setup\VS", "VS7CommonBinDir"),
+ (r"Software\Microsoft\VisualStudio\9.0\Setup\VS", "VS7CommonBinDir"),
+ (r"Software\Microsoft\Win32SDK\Directories", "Install Dir"),
+ ]:
try:
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, k)
- except WindowsError:
+ dir = _winreg.QueryValueEx(key, v)[0]
+ _winreg.CloseKey(key)
+ except (WindowsError, IndexError):
+ continue
+ cabarc = os.path.join(dir, r"Bin", "cabarc.exe")
+ if not os.path.exists(cabarc):
continue
- cabarc = os.path.join(_winreg.QueryValueEx(key, v)[0], r"Bin", "cabarc.exe")
- _winreg.CloseKey(key)
- if not os.path.exists(cabarc):continue
break
else:
print("WARNING: cabarc.exe not found in registry")