public void VerifyVsWhereOperability(ImageDescriptor imageDescriptor) { string baseBuildImage = ImageTestHelper.GetImage("sdk", imageDescriptor.Version, imageDescriptor.OsVariant); string appId = $"vswhere-{DateTime.Now.ToFileTime()}"; const string command = @"cmd /c ""C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"" -products * -latest -format json"; string output = ImageTestHelper.DockerHelper.Run(image: baseBuildImage, name: appId, command: command); JArray json = (JArray)JsonConvert.DeserializeObject(output); Assert.Single(json); Assert.Equal(@"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools", json[0]["installationPath"]); Version actualVsVersion = Version.Parse(json[0]["catalog"]["productDisplayVersion"].ToString()); VsInfo vsInfo = Config.GetVsInfo(); Version expectedVsVersion = Version.Parse(vsInfo.VsVersion); Assert.Equal(expectedVsVersion.Major, actualVsVersion.Major); Assert.Equal(expectedVsVersion.Minor, actualVsVersion.Minor); }
public void VerifyVsWhereOperability(ImageDescriptor imageDescriptor) { string baseBuildImage = ImageTestHelper.GetImage("sdk", imageDescriptor.Version, imageDescriptor.OsVariant); string appId = $"vswhere-{DateTime.Now.ToFileTime()}"; const string securityProtocolCmd = "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12"; const string vsWhereUrl = "https://github.com/Microsoft/vswhere/releases/download/2.8.4/vswhere.exe"; string downloadVsWhereCmd = $"Invoke-WebRequest -UseBasicParsing {vsWhereUrl} -OutFile vswhere.exe"; const string executeVsWhereCmd = @".\vswhere.exe -products * -latest -format json"; string command = $@"powershell {securityProtocolCmd}; {downloadVsWhereCmd}; {executeVsWhereCmd}"; string output = ImageTestHelper.DockerHelper.Run(image: baseBuildImage, name: appId, command: command); JArray json = (JArray)JsonConvert.DeserializeObject(output); Assert.Single(json); Assert.Equal(@"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools", json[0]["installationPath"]); Version actualVsVersion = Version.Parse(json[0]["catalog"]["productDisplayVersion"].ToString()); VsInfo vsInfo = Config.GetVsInfo(); Version expectedVsVersion = Version.Parse(vsInfo.VsVersion); Assert.Equal(expectedVsVersion.Major, actualVsVersion.Major); Assert.Equal(expectedVsVersion.Minor, actualVsVersion.Minor); }