in tools/ami-creator/scripts/win2019_cuda114_installer.py [0:0]
def install_vs():
if os.path.exists("C:\\Program Files (x86)\\Microsoft Visual Studio\\2019"):
logging.info("MSVS already installed, skipping.")
return False
# Visual Studio 2019
# Components: https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-community?view=vs-2019#visual-studio-core-editor-included-with-visual-studio-community-2019
logging.info("Installing Visual Studio 2019...")
vs_file_path = download('https://windows-post-install.s3-us-west-2.amazonaws.com/vs_community__1246179388.1585201415.exe')
run_command("PowerShell Rename-Item -Path {} -NewName \"{}.exe\"".format(vs_file_path,
vs_file_path.split('\\')[-1]), shell=True)
vs_file_path = vs_file_path + '.exe'
logging.info("Installing VisualStudio 2019.....")
ret = call(vs_file_path +
' --add Microsoft.VisualStudio.Workload.ManagedDesktop'
' --add Microsoft.VisualStudio.Workload.NetCoreTools'
' --add Microsoft.VisualStudio.Workload.NetWeb'
' --add Microsoft.VisualStudio.Workload.Node'
' --add Microsoft.VisualStudio.Workload.Office'
' --add Microsoft.VisualStudio.Component.TypeScript.2.0'
' --add Microsoft.VisualStudio.Component.TestTools.WebLoadTest'
' --add Component.GitHub.VisualStudio'
' --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core'
' --add Microsoft.VisualStudio.Component.Static.Analysis.Tools'
' --add Microsoft.VisualStudio.Component.VC.CMake.Project'
' --add Microsoft.VisualStudio.Component.VC.140'
' --add Microsoft.VisualStudio.Component.VC.14.28.x86.x64'
' --add Microsoft.VisualStudio.Component.Windows10SDK.18362.Desktop'
' --add Microsoft.VisualStudio.Component.Windows10SDK.18362.UWP'
' --add Microsoft.VisualStudio.Component.Windows10SDK.18362.UWP.Native'
' --add Microsoft.VisualStudio.ComponentGroup.Windows10SDK.18362'
' --add Microsoft.VisualStudio.Component.Windows10SDK.16299'
' --wait'
' --passive'
' --norestart'
)
if ret == 3010 or ret == 0:
# 3010 is restart required
logging.info("VS install successful.")
else:
raise RuntimeError("VS failed to install, exit status {}".format(ret))
# Workaround for --wait sometimes ignoring the subprocesses doing component installs
def vs_still_installing():
return {'vs_installer.exe', 'vs_installershell.exe', 'vs_setup_bootstrapper.exe'} & set(map(lambda process: process.name(), psutil.process_iter()))
timer = 0
while vs_still_installing() and timer < DEFAULT_SUBPROCESS_TIMEOUT:
logging.warning("VS installers still running for %d s", timer)
if timer % 60 == 0:
logging.info("Waiting for Visual Studio to install for the last {} seconds".format(str(timer)))
sleep(1)
timer += 1
if vs_still_installing():
logging.warning("VS install still running after timeout (%d)", DEFAULT_SUBPROCESS_TIMEOUT)
else:
logging.info("Visual studio install complete.")
return True