diff --git a/Documentation/OneLocBuild.md b/Documentation/OneLocBuild.md index 0cc4f6858a9..5ad1b1f506c 100644 --- a/Documentation/OneLocBuild.md +++ b/Documentation/OneLocBuild.md @@ -29,7 +29,7 @@ To prevent OneLocBuild from running in the public project where it will fail. 3. Run the pipeline you want to use OneLocBuild on your test branch. 4. Open a ticket with the localization team using - [this template](https://ceapex.visualstudio.com/CEINTL/_workitems/create/Loc%20Request?templateId=60b0dcf9-9892-4910-934e-d5becddd1bc1&ownerId=c2e38d3d-0e9e-429f-955d-6e39fc6f0457). + [this template](https://aka.ms/ceChangeLocConfig). Include the link to the test build you've done. 5. The loc team will generate an LCL package for you and send you its ID. It will be something like `LCL-JUNO-PROD-YOURREPO`. @@ -61,7 +61,7 @@ As a further note, the template by default assumes that your mirror repository i organization. If that is not the case, you will need to specify `GitHubOrg` as well. 8. Merge the changes to your main branch and then open a - [repo modification ticket](https://ceapex.visualstudio.com/CEINTL/_workitems/create/Loc%20Request?templateId=415a0569-35ed-45c3-9321-8b1affff1f52&ownerId=c2e38d3d-0e9e-429f-955d-6e39fc6f0457) + [repo modification ticket](https://aka.ms/ceChangeLocConfig) with the loc team to let them know to retarget the branch. @@ -82,7 +82,7 @@ If you're releasing from any other branch (including servicing branches), you mu ```yaml MirrorBranch: target-branch ``` -2. Open a [repo modification ticket](https://ceapex.visualstudio.com/CEINTL/_workitems/create/Loc%20Request?templateId=415a0569-35ed-45c3-9321-8b1affff1f52&ownerId=c2e38d3d-0e9e-429f-955d-6e39fc6f0457) with the +2. Open a [repo modification ticket](https://aka.ms/ceChangeLocConfig) with the loc team at least two weeks before the release and request that they re-target your repository to the release branch. 3. Merge the OneLocBuild PRs to your release branch. 4. After the release, open another repo modification ticket to re-target your repository to the `main` branch again. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2a1c9e5de2f..c171325eed4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,6 +5,7 @@ trigger: - main - release/3.x - release/5.0 + - release/6.0 pr: branches: @@ -12,6 +13,7 @@ pr: - main - release/3.x - release/5.0 + - release/6.0 - templates variables: diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f510811d22e..fa877beeab1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -11,25 +11,25 @@ - + https://github.com/dotnet/arcade - 474307e526160c813c9fd58060eb8356ccca6099 + 923c95ec2e9512285f801c84145a8af3728b1e3b - + https://github.com/dotnet/arcade - 474307e526160c813c9fd58060eb8356ccca6099 + 923c95ec2e9512285f801c84145a8af3728b1e3b - + https://github.com/dotnet/arcade - 474307e526160c813c9fd58060eb8356ccca6099 + 923c95ec2e9512285f801c84145a8af3728b1e3b - + https://github.com/dotnet/arcade - 474307e526160c813c9fd58060eb8356ccca6099 + 923c95ec2e9512285f801c84145a8af3728b1e3b - + https://github.com/dotnet/arcade - 474307e526160c813c9fd58060eb8356ccca6099 + 923c95ec2e9512285f801c84145a8af3728b1e3b https://github.com/dotnet/arcade-services @@ -43,13 +43,13 @@ https://github.com/dotnet/xharness 2e03d2d1081b606ad3c5f79709297a9c5627854d - + https://github.com/dotnet/roslyn - 158f906df6b1e4ca99fe7cf6ed78822515d64230 + 7f1cd24517a65bac2e6e921bf89c9b8d4e2696ca - + https://github.com/mono/linker - edad7cbe1c568d299c196883de57fb5519fd6399 + a1f528d854ee057290682490a74e59a809fe453f https://github.com/dotnet/sourcelink @@ -68,9 +68,9 @@ https://github.com/dotnet/symreader-converter c5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0 - + https://github.com/dotnet/xliff-tasks - 178ed3c7ed19e5bda54a8c3f15a5c441ee63ab93 + bc3233146e1fcd393ed471d5005333c83363e0fe diff --git a/eng/Versions.props b/eng/Versions.props index 66a51cf30ff..ea1863cf98f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -34,9 +34,9 @@ 2.0.0 2.1.1 2.1.0 - 4.0.0-4.21420.19 + 4.0.0-4.21427.11 16.7.1 - 6.0.100-preview.6.21424.4 + 6.0.100-preview.6.21430.2 4.8.3 5.3.0.1 2.3.0 @@ -65,8 +65,8 @@ 2.4.1 2.0.3 2.4.1 - 6.0.0-beta.21427.6 - 6.0.0-beta.21427.6 + 6.0.0-beta.21451.3 + 6.0.0-beta.21451.3 1.22.0 1.1.2 2.0.0 @@ -77,8 +77,8 @@ 1.1.0-beta.20258.6 1.1.0-beta-21423-02 1.1.0-beta-21423-02 - 6.0.0-beta.21427.6 - 1.0.0-beta.21428.1 + 6.0.0-beta.21451.3 + 1.0.0-beta.21431.1 1.1.0-beta.21378.2 1.0.0-prerelease.21427.1 1.1.156602 diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index fc11001aa76..ec8971eb019 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -138,8 +138,8 @@ function(add_toolchain_linker_flag Flag) if (NOT Config STREQUAL "") set(CONFIG_SUFFIX "_${Config}") endif() - set("CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}" "${CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}} ${Flag}" PARENT_SCOPE) - set("CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}" "${CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}} ${Flag}" PARENT_SCOPE) + set("CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}_INIT" "${CMAKE_EXE_LINKER_FLAGS${CONFIG_SUFFIX}_INIT} ${Flag}" PARENT_SCOPE) + set("CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}_INIT" "${CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}_INIT} ${Flag}" PARENT_SCOPE) endfunction() if(CMAKE_SYSTEM_NAME STREQUAL "Linux") diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 56ee4a577ac..02347914f5d 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -709,6 +709,15 @@ function MSBuild() { Write-PipelineSetVariable -Name 'NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS' -Value '20' } + if ($ci) { + $env:NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY = 'true' + $env:NUGET_EXPERIMENTAL_MAX_NETWORK_TRY_COUNT = 6 + $env:NUGET_EXPERIMENTAL_NETWORK_RETRY_DELAY_MILLISECONDS = 1000 + Write-PipelineSetVariable -Name 'NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY' -Value 'true' + Write-PipelineSetVariable -Name 'NUGET_EXPERIMENTAL_MAX_NETWORK_TRY_COUNT' -Value '6' + Write-PipelineSetVariable -Name 'NUGET_EXPERIMENTAL_NETWORK_RETRY_DELAY_MILLISECONDS' -Value '1000' + } + $toolsetBuildProject = InitializeToolset $basePath = Split-Path -parent $toolsetBuildProject $possiblePaths = @( @@ -717,6 +726,8 @@ function MSBuild() { (Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')), (Join-Path $basePath (Join-Path netcoreapp2.1 'Microsoft.DotNet.ArcadeLogging.dll')), (Join-Path $basePath (Join-Path netcoreapp2.1 'Microsoft.DotNet.Arcade.Sdk.dll')) + (Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.ArcadeLogging.dll')), + (Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.Arcade.Sdk.dll')) ) $selectedPath = $null foreach ($path in $possiblePaths) { diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 41e323104df..6a4871ef72b 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -417,6 +417,13 @@ function MSBuild { export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20 Write-PipelineSetVariable -name "NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS" -value "20" Write-PipelineSetVariable -name "NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS" -value "20" + + export NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY=true + export NUGET_EXPERIMENTAL_MAX_NETWORK_TRY_COUNT=6 + export NUGET_EXPERIMENTAL_NETWORK_RETRY_DELAY_MILLISECONDS=1000 + Write-PipelineSetVariable -name "NUGET_ENABLE_EXPERIMENTAL_HTTP_RETRY" -value "true" + Write-PipelineSetVariable -name "NUGET_EXPERIMENTAL_MAX_NETWORK_TRY_COUNT" -value "6" + Write-PipelineSetVariable -name "NUGET_EXPERIMENTAL_NETWORK_RETRY_DELAY_MILLISECONDS" -value "1000" fi local toolset_dir="${_InitializeToolset%/*}" @@ -427,6 +434,8 @@ function MSBuild { possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" ) possiblePaths+=( "$toolset_dir/netcoreapp2.1/Microsoft.DotNet.ArcadeLogging.dll" ) possiblePaths+=( "$toolset_dir/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dll" ) + possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.ArcadeLogging.dll" ) + possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.Arcade.Sdk.dll" ) for path in "${possiblePaths[@]}"; do if [[ -f $path ]]; then selectedPath=$path diff --git a/global.json b/global.json index aefc817aafd..b90c255f11d 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "tools": { - "dotnet": "6.0.100-rc.1.21379.2" + "dotnet": "6.0.100-rc.1.21430.12" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21427.6", - "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21427.6" + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21451.3", + "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.21451.3" } } diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets index 5d426527496..e5c6b9b39e1 100644 --- a/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets +++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/RepositoryInfo.targets @@ -67,11 +67,14 @@ - $(ScmRepositoryUrl.ToLower().Replace(`-trusted`,``)) + $([MSBuild]::ValueOrDefault(`%(SourceRoot.ScmRepositoryUrl)`, ``).ToLower().Replace(`-trusted`,``)) $([System.Text.RegularExpressions.Regex]::Replace($(ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement))) + + $([MSBuild]::ValueOrDefault(`%(SourceRoot.ScmRepositoryUrl)`, ``).ToLower().Replace(`-trusted`,``)) + $([System.Text.RegularExpressions.Regex]::Replace(%(SourceRoot.ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement))) diff --git a/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.targets b/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.targets index ccdfb455ffa..8d8af6a664d 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.targets +++ b/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.targets @@ -929,6 +929,10 @@ @(NETCoreApp30RIDs) + + + @(NETCoreApp31RIDs) + @(NETCoreApp50RIDs) diff --git a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateMsiBase.cs b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateMsiBase.cs index c139e72dc51..11b7560fa4b 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateMsiBase.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateMsiBase.cs @@ -110,6 +110,11 @@ public string SuppressIces set; } + /// + /// Used to synchronize access to the NuGet being extracted. + /// + private readonly object extractNuGetLock = new object(); + /// /// Generate a set of MSIs for the specified platforms using the specified NuGet package. /// @@ -118,7 +123,11 @@ public string SuppressIces /// protected IEnumerable Generate(string sourcePackage, string swixPackageId, string outputPath, WorkloadPackKind kind, params string[] platforms) { - NugetPackage nupkg = new(sourcePackage, Log); + NugetPackage nupkg = null; + lock (extractNuGetLock) + { + nupkg = new(sourcePackage, Log); + } List msis = new(); // MSI ProductName defaults to the package title and fallback to the package ID with a warning. @@ -139,7 +148,10 @@ protected IEnumerable Generate(string sourcePackage, string swixPacka if ((kind != WorkloadPackKind.Library) && (kind != WorkloadPackKind.Template)) { Log.LogMessage(MessageImportance.Low, $"Extracting '{sourcePackage}' to '{packageContentsDirectory}'"); - nupkg.Extract(packageContentsDirectory, exclusions); + lock (extractNuGetLock) + { + nupkg.Extract(packageContentsDirectory, exclusions); + } } else { @@ -188,9 +200,12 @@ protected IEnumerable Generate(string sourcePackage, string swixPacka SourceDirectory = packageContentsDirectory }; - if (!heat.Execute()) + lock (extractNuGetLock) { - throw new Exception($"Failed to harvest package contents."); + if (!heat.Execute()) + { + throw new Exception($"Failed to harvest package contents."); + } } // Compile the MSI sources diff --git a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateVisualStudioWorkload.cs b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateVisualStudioWorkload.cs index bf7af320a1b..5d4a7c1aeed 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateVisualStudioWorkload.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateVisualStudioWorkload.cs @@ -108,6 +108,15 @@ public string SuppressIces set; } + /// + /// Generate msis in parallel. + /// + public bool RunInParallel + { + get; + set; + } = true; + /// /// The paths of the generated .swixproj files. /// @@ -182,6 +191,7 @@ internal IEnumerable GenerateMsisFromManifests(ITaskItem[] workloadMa IntermediateBaseOutputPath = this.IntermediateBaseOutputPath, OutputPath = this.OutputPath, PackagesPath = this.PackagesPath, + RunInParallel = this.RunInParallel, ShortNames = this.ShortNames, SuppressIces = this.SuppressIces, WixToolsetPath = this.WixToolsetPath, diff --git a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateWorkloadMsis.cs b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateWorkloadMsis.cs index 50340821555..8179d2164dc 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateWorkloadMsis.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/GenerateWorkloadMsis.cs @@ -35,6 +35,15 @@ public string PackagesPath set; } + /// + /// Generate msis in parallel. + /// + public bool RunInParallel + { + get; + set; + } = true; + /// /// Gets the set of missing workload packs. /// @@ -90,14 +99,24 @@ public override bool Execute() string swixPackageId = $"{pack.Id.ToString().Replace(ShortNames)}.{pack.Version}"; // Always select the pack ID for the VS MSI package, even when aliased. - packsToGenerate.Add(new(sourcePackage, swixPackageId, OutputPath, pack.Kind, platforms)); + if (RunInParallel) + { + packsToGenerate.Add(new(sourcePackage, swixPackageId, OutputPath, pack.Kind, platforms)); + } + else + { + msis.AddRange(Generate(sourcePackage, swixPackageId, OutputPath, pack.Kind, platforms)); + } } } - System.Threading.Tasks.Parallel.ForEach(packsToGenerate, p => + if (RunInParallel) { - msis.AddRange(Generate(p.sourcePackage, p.swixPackageId, p.outputPath, p.kind, p.platforms)); - }); + System.Threading.Tasks.Parallel.ForEach(packsToGenerate, p => + { + msis.AddRange(Generate(p.sourcePackage, p.swixPackageId, p.outputPath, p.kind, p.platforms)); + }); + } Msis = msis.ToArray(); MissingPacks = missingPacks.ToArray(); diff --git a/src/Microsoft.DotNet.Helix/Sdk/FindDotNetCliPackage.cs b/src/Microsoft.DotNet.Helix/Sdk/FindDotNetCliPackage.cs index 5d82a45f509..1e00efe249b 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/FindDotNetCliPackage.cs +++ b/src/Microsoft.DotNet.Helix/Sdk/FindDotNetCliPackage.cs @@ -3,6 +3,7 @@ using System.Net.Http; using System.Threading.Tasks; using Microsoft.Build.Framework; +using NuGet.Versioning; namespace Microsoft.DotNet.Helix.Sdk { @@ -30,7 +31,7 @@ public class FindDotNetCliPackage : BaseTask public string Runtime { get; set; } /// - /// 'sdk', 'runtime' or 'aspnetcore-runtime' + /// 'sdk', 'runtime' or 'aspnetcore-runtime' (default is runtime) /// [Required] public string PackageType { get; set; } @@ -49,7 +50,7 @@ private async Task ExecuteAsync() NormalizeParameters(); await ResolveVersionAsync(); - string downloadUrl = GetDownloadUrl(); + string downloadUrl = await GetDownloadUrlAsync(); Log.LogMessage($"Retrieved dotnet cli {PackageType} version {Version} package uri {downloadUrl}, testing..."); @@ -80,17 +81,75 @@ private async Task ExecuteAsync() } } - private string GetDownloadUrl() + private async Task GetDownloadUrlAsync() { string extension = Runtime.StartsWith("win") ? "zip" : "tar.gz"; + string effectiveVersion = await GetEffectiveVersion(); + return PackageType switch { - "sdk" => $"{DotNetCliAzureFeed}/Sdk/{Version}/dotnet-sdk-{Version}-{Runtime}.{extension}", - "aspnetcore-runtime" => $"{DotNetCliAzureFeed}/aspnetcore/Runtime/{Version}/aspnetcore-runtime-{Version}-{Runtime}.{extension}", - _ => $"{DotNetCliAzureFeed}/Runtime/{Version}/dotnet-runtime-{Version}-{Runtime}.{extension}" + "sdk" => $"{DotNetCliAzureFeed}/Sdk/{Version}/dotnet-sdk-{effectiveVersion}-{Runtime}.{extension}", + "aspnetcore-runtime" => $"{DotNetCliAzureFeed}/aspnetcore/Runtime/{Version}/aspnetcore-runtime-{effectiveVersion}-{Runtime}.{extension}", + _ => $"{DotNetCliAzureFeed}/Runtime/{Version}/dotnet-runtime-{effectiveVersion}-{Runtime}.{extension}" }; } + private async Task GetEffectiveVersion() + { + if (NuGetVersion.TryParse(Version, out NuGetVersion semanticVersion)) + { + // Pared down version of the logic from https://github.com/dotnet/install-scripts/blob/main/src/dotnet-install.ps1 + // If this functionality stops working, review changes made there. + // Current strategy is to start with a runtime-specific name then fall back to 'productVersion.txt' + string effectiveVersion = Version; + + // Do nothing for older runtimes; the file won't exist + if (semanticVersion >= new NuGetVersion("5.0.0")) + { + var productVersionText = PackageType switch + { + "sdk" => await GetMatchingProductVersionTxtContents($"{DotNetCliAzureFeed}/Sdk/{Version}", "sdk-productVersion.txt"), + "aspnetcore-runtime" => await GetMatchingProductVersionTxtContents($"{DotNetCliAzureFeed}/aspnetcore/Runtime/{Version}", "aspnetcore-productVersion.txt"), + _ => await GetMatchingProductVersionTxtContents($"{DotNetCliAzureFeed}/Runtime/{Version}", "runtime-productVersion.txt") + }; + + if (!productVersionText.Equals(Version)) + { + effectiveVersion = productVersionText; + Log.LogMessage($"Switched to effective .NET Core version '{productVersionText}' from matching productVersion.txt"); + } + } + return effectiveVersion; + } + else + { + throw new ArgumentException($"'{Version}' is not a valid semantic version."); + } + } + private async Task GetMatchingProductVersionTxtContents(string baseUri, string customVersionTextFileName) + { + using HttpResponseMessage specificResponse = await _client.GetAsync($"{baseUri}/{customVersionTextFileName}"); + if (specificResponse.StatusCode == HttpStatusCode.NotFound) + { + using HttpResponseMessage genericResponse = await _client.GetAsync($"{baseUri}/productVersion.txt"); + if (genericResponse.StatusCode != HttpStatusCode.NotFound) + { + genericResponse.EnsureSuccessStatusCode(); + return (await genericResponse.Content.ReadAsStringAsync()).Trim(); + } + else + { + Log.LogMessage(MessageImportance.Low, $"No *productVersion.txt files found for {Version} under {baseUri}"); + } + } + else + { + specificResponse.EnsureSuccessStatusCode(); + return (await specificResponse.Content.ReadAsStringAsync()).Trim(); + } + return Version; + } + private void NormalizeParameters() { if (string.Equals(Channel, "lts", StringComparison.OrdinalIgnoreCase)) @@ -136,9 +195,9 @@ private async Task ResolveVersionAsync() Log.LogMessage(MessageImportance.Low, "Resolving latest dotnet cli version."); string latestVersionUrl = PackageType switch { - "sdk" => $"{DotNetCliAzureFeed}/Sdk/{Channel}/latest.version", + "sdk" => $"{DotNetCliAzureFeed}/Sdk/{Channel}/latest.version", "aspnetcore-runtime" => $"{DotNetCliAzureFeed}/aspnetcore/Runtime/{Channel}/latest.version", - _ => $"{DotNetCliAzureFeed}/Runtime/{Channel}/latest.version" + _ => $"{DotNetCliAzureFeed}/Runtime/{Channel}/latest.version" }; Log.LogMessage(MessageImportance.Low, $"Resolving latest version from url {latestVersionUrl}"); diff --git a/src/Microsoft.DotNet.Helix/Sdk/Microsoft.DotNet.Helix.Sdk.csproj b/src/Microsoft.DotNet.Helix/Sdk/Microsoft.DotNet.Helix.Sdk.csproj index 2e510066ae4..7c4a029a946 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/Microsoft.DotNet.Helix.Sdk.csproj +++ b/src/Microsoft.DotNet.Helix/Sdk/Microsoft.DotNet.Helix.Sdk.csproj @@ -12,6 +12,7 @@ + diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/XHarnessRunner.targets b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/XHarnessRunner.targets index d8f3802f7c3..91573291c8b 100644 --- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/XHarnessRunner.targets +++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/XHarnessRunner.targets @@ -10,7 +10,7 @@ $(AspNetCoreRuntimeVersion) --> sdk - 6.0.100-rc.1.21379.2 + 6.0.100-rc.1.21430.12 $(AspNetCoreRuntimeVersion) diff --git a/src/Microsoft.DotNet.RemoteExecutor/src/Microsoft.DotNet.RemoteExecutor.csproj b/src/Microsoft.DotNet.RemoteExecutor/src/Microsoft.DotNet.RemoteExecutor.csproj index 24b5c5f1caf..8da0c48f81d 100644 --- a/src/Microsoft.DotNet.RemoteExecutor/src/Microsoft.DotNet.RemoteExecutor.csproj +++ b/src/Microsoft.DotNet.RemoteExecutor/src/Microsoft.DotNet.RemoteExecutor.csproj @@ -4,7 +4,7 @@ Exe - netcoreapp2.1;net461 + netcoreapp3.1;net461 This package provides support for running tests out-of-process. true true