Exemple #1
0
def _get_visualstudio_install_path():
	from distutils.version import StrictVersion
	global _is_64bit
	if _is_64bit:
		path = "HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio"
	else:
		path = "HKLM:\\SOFTWARE\\Microsoft\\VisualStudio"
	vsversions = ezwinreg.subkeys(path)
	r = re.compile("^[0-9.]+$")
	vsversions = list(filter(r.match, vsversions))
	vsversions.sort(key=StrictVersion)
	for ver in vsversions[::-1]:
		key = ezwinreg.get("%s\\%s" % (path, ver), "InstallDir")
		if key:
			return key
	return None
Exemple #2
0
def _set_environ():
	global _fw_version, _fw_architecture, _is_64bit
	if not _fw_version:
		raise ConfigError
	if not _fw_architecture:
		_fw_architecture = FwArchitecture.x64 if _is_64bit else FwArchitecture.x86
	include_dirs = list()
	if _fw_version["build_tools_version"]:
		for tools_ver in _fw_version["build_tools_version"]:
			include_dirs.append(ezwinreg.get("HKLM:\\SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\%s" % tools_ver, _fw_architecture["build_tools_key"]))
	vsinstalldir = _get_visualstudio_install_path()
	if vsinstalldir:
		include_dirs.append(vsinstalldir)
	for ver in _fw_version["versions"]:
		include_dirs.append("%s\\Microsoft.NET\\%s\\%s" % (os.environ["WINDIR"], _fw_architecture["bitness"], ver))
	for directory in include_dirs:
		if not os.path.exists(directory):
			raise ConfigError
	os.environ["PATH"] = ";".join(include_dirs) + ";" + os.environ["PATH"]