From 238161354fa8c78fccb64de06eaefcce887d01b2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 5 Dec 2025 02:01:47 +0000 Subject: [PATCH 1/7] Update dependencies from https://github.com/dotnet/arcade build 20251204.3 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 11.0.0-beta.25603.2 -> To Version 11.0.0-beta.25604.3 --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 +- .../core-templates/post-build/post-build.yml | 2 +- eng/common/post-build/nuget-validation.ps1 | 22 --- eng/common/post-build/nuget-verification.ps1 | 149 ++++++------------ eng/common/tools.ps1 | 4 - eng/common/tools.sh | 4 - global.json | 6 +- 8 files changed, 54 insertions(+), 139 deletions(-) delete mode 100644 eng/common/post-build/nuget-validation.ps1 diff --git a/eng/Version.Details.props b/eng/Version.Details.props index afdf7db06c3..c0327b0d5c4 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -27,7 +27,7 @@ This file should be imported by eng/Versions.props 5.0.0-2.25480.7 5.0.0-2.25480.7 - 11.0.0-beta.25603.2 + 11.0.0-beta.25604.3 1.0.0-prerelease.25502.1 1.0.0-prerelease.25502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ca852f33a6f..78488703d25 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -76,9 +76,9 @@ - + https://github.com/dotnet/arcade - 9851192f7f7a7ee352358cce2627160fd1f2a54e + fa753b76d445da82f9b46d6d12ba382ab6fed81f https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index 06864cd1feb..b842cfd2b79 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -154,7 +154,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-verification.ps1 arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ - job: diff --git a/eng/common/post-build/nuget-validation.ps1 b/eng/common/post-build/nuget-validation.ps1 deleted file mode 100644 index e5de00c8983..00000000000 --- a/eng/common/post-build/nuget-validation.ps1 +++ /dev/null @@ -1,22 +0,0 @@ -# This script validates NuGet package metadata information using this -# tool: https://github.com/NuGet/NuGetGallery/tree/jver-verify/src/VerifyMicrosoftPackage - -param( - [Parameter(Mandatory=$true)][string] $PackagesPath # Path to where the packages to be validated are -) - -# `tools.ps1` checks $ci to perform some actions. Since the post-build -# scripts don't necessarily execute in the same agent that run the -# build.ps1/sh script this variable isn't automatically set. -$ci = $true -$disableConfigureToolsetImport = $true -. $PSScriptRoot\..\tools.ps1 - -try { - & $PSScriptRoot\nuget-verification.ps1 ${PackagesPath}\*.nupkg -} -catch { - Write-Host $_.ScriptStackTrace - Write-PipelineTelemetryError -Category 'NuGetValidation' -Message $_ - ExitWithExitCode 1 -} diff --git a/eng/common/post-build/nuget-verification.ps1 b/eng/common/post-build/nuget-verification.ps1 index ac5c69ffcac..3b3155e0b32 100644 --- a/eng/common/post-build/nuget-verification.ps1 +++ b/eng/common/post-build/nuget-verification.ps1 @@ -1,121 +1,66 @@ <# .SYNOPSIS - Verifies that Microsoft NuGet packages have proper metadata. + Verifies NuGet packages using dotnet nuget verify. .DESCRIPTION - Downloads a verification tool and runs metadata validation on the provided NuGet packages. This script writes an - error if any of the provided packages fail validation. All arguments provided to this PowerShell script that do not - match PowerShell parameters are passed on to the verification tool downloaded during the execution of this script. -.PARAMETER NuGetExePath - The path to the nuget.exe binary to use. If not provided, nuget.exe will be downloaded into the -DownloadPath - directory. -.PARAMETER PackageSource - The package source to use to download the verification tool. If not provided, nuget.org will be used. -.PARAMETER DownloadPath - The directory path to download the verification tool and nuget.exe to. If not provided, - %TEMP%\NuGet.VerifyNuGetPackage will be used. -.PARAMETER args - Arguments that will be passed to the verification tool. + Initializes the .NET CLI and runs 'dotnet nuget verify' on the provided NuGet packages. + This script writes an error if any of the provided packages fail verification. +.PARAMETER PackagesPath + Path to the directory containing NuGet packages to verify. .EXAMPLE - PS> .\verify.ps1 *.nupkg - Verifies the metadata of all .nupkg files in the currect working directory. -.EXAMPLE - PS> .\verify.ps1 --help - Displays the help text of the downloaded verifiction tool. -.LINK - https://github.com/NuGet/NuGetGallery/blob/master/src/VerifyMicrosoftPackage/README.md + PS> .\nuget-verification.ps1 -PackagesPath C:\packages + Verifies all .nupkg files in the specified directory. #> -# This script was copied from https://github.com/NuGet/NuGetGallery/blob/3e25ad135146676bcab0050a516939d9958bfa5d/src/VerifyMicrosoftPackage/verify.ps1 - -[CmdletBinding(PositionalBinding = $false)] param( - [string]$NuGetExePath, - [string]$PackageSource = "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json", - [string]$DownloadPath, - [Parameter(ValueFromRemainingArguments = $true)] - [string[]]$args + [Parameter(Mandatory=$true)][string] $PackagesPath # Path to where the packages to be validated are ) -# The URL to download nuget.exe. -$nugetExeUrl = "https://dist.nuget.org/win-x86-commandline/v4.9.4/nuget.exe" +# `tools.ps1` checks $ci to perform some actions. Since the post-build +# scripts don't necessarily execute in the same agent that run the +# build.ps1/sh script this variable isn't automatically set. +$ci = $true +$disableConfigureToolsetImport = $true +. $PSScriptRoot\..\tools.ps1 -# The package ID of the verification tool. -$packageId = "NuGet.VerifyMicrosoftPackage" +try { + $fence = New-Object -TypeName string -ArgumentList '=', 80 -# The location that nuget.exe and the verification tool will be downloaded to. -if (!$DownloadPath) { - $DownloadPath = (Join-Path $env:TEMP "NuGet.VerifyMicrosoftPackage") -} + # Initialize the dotnet CLI + $dotnetRoot = InitializeDotNetCli -install:$true + $dotnet = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') -$fence = New-Object -TypeName string -ArgumentList '=', 80 + Write-Host "Using dotnet: $dotnet" + Write-Host " " -# Create the download directory, if it doesn't already exist. -if (!(Test-Path $DownloadPath)) { - New-Item -ItemType Directory $DownloadPath | Out-Null -} -Write-Host "Using download path: $DownloadPath" + # Get all .nupkg files in the packages path + $packageFiles = Get-ChildItem -Path $PackagesPath -Filter '*.nupkg' -File -if ($NuGetExePath) { - $nuget = $NuGetExePath -} else { - $downloadedNuGetExe = Join-Path $DownloadPath "nuget.exe" - - # Download nuget.exe, if it doesn't already exist. - if (!(Test-Path $downloadedNuGetExe)) { - Write-Host "Downloading nuget.exe from $nugetExeUrl..." - $ProgressPreference = 'SilentlyContinue' - try { - Invoke-WebRequest $nugetExeUrl -OutFile $downloadedNuGetExe - $ProgressPreference = 'Continue' - } catch { - $ProgressPreference = 'Continue' - Write-Error $_ - Write-Error "nuget.exe failed to download." - exit - } - } + if ($packageFiles.Count -eq 0) { + Write-Host "No .nupkg files found in $PackagesPath" + Write-Output "dotnet nuget verify succeeded (no packages to verify)." + return + } - $nuget = $downloadedNuGetExe -} + # Get the full paths of the package files + $packagePaths = $packageFiles | ForEach-Object { $_.FullName } -Write-Host "Using nuget.exe path: $nuget" -Write-Host " " + # Execute dotnet nuget verify + Write-Host "Executing dotnet nuget verify..." + Write-Host $fence + & $dotnet nuget verify $packagePaths + Write-Host $fence + Write-Host " " -# Download the latest version of the verification tool. -Write-Host "Downloading the latest version of $packageId from $packageSource..." -Write-Host $fence -& $nuget install $packageId ` - -Prerelease ` - -OutputDirectory $DownloadPath ` - -Source $PackageSource -Write-Host $fence -Write-Host " " - -if ($LASTEXITCODE -ne 0) { - Write-Error "nuget.exe failed to fetch the verify tool." - exit + # Respond to the exit code. + if ($LASTEXITCODE -ne 0) { + Write-PipelineTelemetryError -Category 'NuGetValidation' -Message "dotnet nuget verify found some problems." + ExitWithExitCode 1 + } else { + Write-Output "dotnet nuget verify succeeded." + } } - -# Find the most recently downloaded tool -Write-Host "Finding the most recently downloaded verification tool." -$verifyProbePath = Join-Path $DownloadPath "$packageId.*" -$verifyPath = Get-ChildItem -Path $verifyProbePath -Directory ` - | Sort-Object -Property LastWriteTime -Descending ` - | Select-Object -First 1 -$verify = Join-Path $verifyPath "tools\NuGet.VerifyMicrosoftPackage.exe" -Write-Host "Using verification tool: $verify" -Write-Host " " - -# Execute the verification tool. -Write-Host "Executing the verify tool..." -Write-Host $fence -& $verify $args -Write-Host $fence -Write-Host " " - -# Respond to the exit code. -if ($LASTEXITCODE -ne 0) { - Write-Error "The verify tool found some problems." -} else { - Write-Output "The verify tool succeeded." +catch { + Write-Host $_.ScriptStackTrace + Write-PipelineTelemetryError -Category 'NuGetValidation' -Message $_ + ExitWithExitCode 1 } diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 578705ee4db..1556562c68f 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -157,9 +157,6 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { return $global:_DotNetInstallDir } - # Don't resolve runtime, shared framework, or SDK from other locations to ensure build determinism - $env:DOTNET_MULTILEVEL_LOOKUP=0 - # Disable first run since we do not need all ASP.NET packages restored. $env:DOTNET_NOLOGO=1 @@ -225,7 +222,6 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { # Make Sure that our bootstrapped dotnet cli is available in future steps of the Azure Pipelines build Write-PipelinePrependPath -Path $dotnetRoot - Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0' Write-PipelineSetVariable -Name 'DOTNET_NOLOGO' -Value '1' return $global:_DotNetInstallDir = $dotnetRoot diff --git a/eng/common/tools.sh b/eng/common/tools.sh index c1841c9dfd0..6c121300ac7 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -115,9 +115,6 @@ function InitializeDotNetCli { local install=$1 - # Don't resolve runtime, shared framework, or SDK from other locations to ensure build determinism - export DOTNET_MULTILEVEL_LOOKUP=0 - # Disable first run since we want to control all package sources export DOTNET_NOLOGO=1 @@ -166,7 +163,6 @@ function InitializeDotNetCli { # build steps from using anything other than what we've downloaded. Write-PipelinePrependPath -path "$dotnet_root" - Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0" Write-PipelineSetVariable -name "DOTNET_NOLOGO" -value "1" # return value diff --git a/global.json b/global.json index d3eb7573622..7328398f517 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.100-rc.2.25502.107", + "version": "10.0.100", "allowPrerelease": true, "paths": [ ".dotnet", @@ -9,7 +9,7 @@ "errorMessage": "The .NET SDK could not be found, please run ./eng/common/dotnet.sh." }, "tools": { - "dotnet": "10.0.100-rc.2.25502.107", + "dotnet": "10.0.100", "vs": { "version": "18.0", "components": [ @@ -22,7 +22,7 @@ "perl": "5.38.2.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25603.2", + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25604.3", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 6e384947477be26d00fd842f0c8433d64ab26274 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 6 Dec 2025 02:02:12 +0000 Subject: [PATCH 2/7] Update dependencies from https://github.com/dotnet/arcade build 20251205.2 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 11.0.0-beta.25603.2 -> To Version 11.0.0-beta.25605.2 --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 +- .../job/source-index-stage1.yml | 4 +- .../core-templates/post-build/post-build.yml | 2 +- eng/common/post-build/nuget-validation.ps1 | 22 +++ eng/common/post-build/nuget-verification.ps1 | 149 ++++++++++++------ global.json | 2 +- 7 files changed, 131 insertions(+), 54 deletions(-) create mode 100644 eng/common/post-build/nuget-validation.ps1 diff --git a/eng/Version.Details.props b/eng/Version.Details.props index c0327b0d5c4..b32635a853e 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -27,7 +27,7 @@ This file should be imported by eng/Versions.props 5.0.0-2.25480.7 5.0.0-2.25480.7 - 11.0.0-beta.25604.3 + 11.0.0-beta.25605.2 1.0.0-prerelease.25502.1 1.0.0-prerelease.25502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 78488703d25..e336c884329 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -76,9 +76,9 @@ - + https://github.com/dotnet/arcade - fa753b76d445da82f9b46d6d12ba382ab6fed81f + 65e09c040143048211dcf6b2bd69336cbf27eec6 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/eng/common/core-templates/job/source-index-stage1.yml b/eng/common/core-templates/job/source-index-stage1.yml index 58b7a76814e..76baf5c2725 100644 --- a/eng/common/core-templates/job/source-index-stage1.yml +++ b/eng/common/core-templates/job/source-index-stage1.yml @@ -3,7 +3,7 @@ parameters: sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" preSteps: [] binlogPath: artifacts/log/Debug/Build.binlog - condition: '' + condition: eq(variables['Build.SourceBranch'], 'refs/heads/main') dependsOn: '' pool: '' is1ESPipeline: '' @@ -41,4 +41,4 @@ jobs: - template: /eng/common/core-templates/steps/source-index-stage1-publish.yml parameters: - binLogPath: ${{ parameters.binLogPath }} \ No newline at end of file + binLogPath: ${{ parameters.binLogPath }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index b842cfd2b79..06864cd1feb 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -154,7 +154,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-verification.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ - job: diff --git a/eng/common/post-build/nuget-validation.ps1 b/eng/common/post-build/nuget-validation.ps1 new file mode 100644 index 00000000000..e5de00c8983 --- /dev/null +++ b/eng/common/post-build/nuget-validation.ps1 @@ -0,0 +1,22 @@ +# This script validates NuGet package metadata information using this +# tool: https://github.com/NuGet/NuGetGallery/tree/jver-verify/src/VerifyMicrosoftPackage + +param( + [Parameter(Mandatory=$true)][string] $PackagesPath # Path to where the packages to be validated are +) + +# `tools.ps1` checks $ci to perform some actions. Since the post-build +# scripts don't necessarily execute in the same agent that run the +# build.ps1/sh script this variable isn't automatically set. +$ci = $true +$disableConfigureToolsetImport = $true +. $PSScriptRoot\..\tools.ps1 + +try { + & $PSScriptRoot\nuget-verification.ps1 ${PackagesPath}\*.nupkg +} +catch { + Write-Host $_.ScriptStackTrace + Write-PipelineTelemetryError -Category 'NuGetValidation' -Message $_ + ExitWithExitCode 1 +} diff --git a/eng/common/post-build/nuget-verification.ps1 b/eng/common/post-build/nuget-verification.ps1 index 3b3155e0b32..ac5c69ffcac 100644 --- a/eng/common/post-build/nuget-verification.ps1 +++ b/eng/common/post-build/nuget-verification.ps1 @@ -1,66 +1,121 @@ <# .SYNOPSIS - Verifies NuGet packages using dotnet nuget verify. + Verifies that Microsoft NuGet packages have proper metadata. .DESCRIPTION - Initializes the .NET CLI and runs 'dotnet nuget verify' on the provided NuGet packages. - This script writes an error if any of the provided packages fail verification. -.PARAMETER PackagesPath - Path to the directory containing NuGet packages to verify. + Downloads a verification tool and runs metadata validation on the provided NuGet packages. This script writes an + error if any of the provided packages fail validation. All arguments provided to this PowerShell script that do not + match PowerShell parameters are passed on to the verification tool downloaded during the execution of this script. +.PARAMETER NuGetExePath + The path to the nuget.exe binary to use. If not provided, nuget.exe will be downloaded into the -DownloadPath + directory. +.PARAMETER PackageSource + The package source to use to download the verification tool. If not provided, nuget.org will be used. +.PARAMETER DownloadPath + The directory path to download the verification tool and nuget.exe to. If not provided, + %TEMP%\NuGet.VerifyNuGetPackage will be used. +.PARAMETER args + Arguments that will be passed to the verification tool. .EXAMPLE - PS> .\nuget-verification.ps1 -PackagesPath C:\packages - Verifies all .nupkg files in the specified directory. + PS> .\verify.ps1 *.nupkg + Verifies the metadata of all .nupkg files in the currect working directory. +.EXAMPLE + PS> .\verify.ps1 --help + Displays the help text of the downloaded verifiction tool. +.LINK + https://github.com/NuGet/NuGetGallery/blob/master/src/VerifyMicrosoftPackage/README.md #> +# This script was copied from https://github.com/NuGet/NuGetGallery/blob/3e25ad135146676bcab0050a516939d9958bfa5d/src/VerifyMicrosoftPackage/verify.ps1 + +[CmdletBinding(PositionalBinding = $false)] param( - [Parameter(Mandatory=$true)][string] $PackagesPath # Path to where the packages to be validated are + [string]$NuGetExePath, + [string]$PackageSource = "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json", + [string]$DownloadPath, + [Parameter(ValueFromRemainingArguments = $true)] + [string[]]$args ) -# `tools.ps1` checks $ci to perform some actions. Since the post-build -# scripts don't necessarily execute in the same agent that run the -# build.ps1/sh script this variable isn't automatically set. -$ci = $true -$disableConfigureToolsetImport = $true -. $PSScriptRoot\..\tools.ps1 +# The URL to download nuget.exe. +$nugetExeUrl = "https://dist.nuget.org/win-x86-commandline/v4.9.4/nuget.exe" -try { - $fence = New-Object -TypeName string -ArgumentList '=', 80 +# The package ID of the verification tool. +$packageId = "NuGet.VerifyMicrosoftPackage" - # Initialize the dotnet CLI - $dotnetRoot = InitializeDotNetCli -install:$true - $dotnet = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet') +# The location that nuget.exe and the verification tool will be downloaded to. +if (!$DownloadPath) { + $DownloadPath = (Join-Path $env:TEMP "NuGet.VerifyMicrosoftPackage") +} - Write-Host "Using dotnet: $dotnet" - Write-Host " " +$fence = New-Object -TypeName string -ArgumentList '=', 80 - # Get all .nupkg files in the packages path - $packageFiles = Get-ChildItem -Path $PackagesPath -Filter '*.nupkg' -File +# Create the download directory, if it doesn't already exist. +if (!(Test-Path $DownloadPath)) { + New-Item -ItemType Directory $DownloadPath | Out-Null +} +Write-Host "Using download path: $DownloadPath" - if ($packageFiles.Count -eq 0) { - Write-Host "No .nupkg files found in $PackagesPath" - Write-Output "dotnet nuget verify succeeded (no packages to verify)." - return - } +if ($NuGetExePath) { + $nuget = $NuGetExePath +} else { + $downloadedNuGetExe = Join-Path $DownloadPath "nuget.exe" + + # Download nuget.exe, if it doesn't already exist. + if (!(Test-Path $downloadedNuGetExe)) { + Write-Host "Downloading nuget.exe from $nugetExeUrl..." + $ProgressPreference = 'SilentlyContinue' + try { + Invoke-WebRequest $nugetExeUrl -OutFile $downloadedNuGetExe + $ProgressPreference = 'Continue' + } catch { + $ProgressPreference = 'Continue' + Write-Error $_ + Write-Error "nuget.exe failed to download." + exit + } + } - # Get the full paths of the package files - $packagePaths = $packageFiles | ForEach-Object { $_.FullName } + $nuget = $downloadedNuGetExe +} - # Execute dotnet nuget verify - Write-Host "Executing dotnet nuget verify..." - Write-Host $fence - & $dotnet nuget verify $packagePaths - Write-Host $fence - Write-Host " " +Write-Host "Using nuget.exe path: $nuget" +Write-Host " " - # Respond to the exit code. - if ($LASTEXITCODE -ne 0) { - Write-PipelineTelemetryError -Category 'NuGetValidation' -Message "dotnet nuget verify found some problems." - ExitWithExitCode 1 - } else { - Write-Output "dotnet nuget verify succeeded." - } +# Download the latest version of the verification tool. +Write-Host "Downloading the latest version of $packageId from $packageSource..." +Write-Host $fence +& $nuget install $packageId ` + -Prerelease ` + -OutputDirectory $DownloadPath ` + -Source $PackageSource +Write-Host $fence +Write-Host " " + +if ($LASTEXITCODE -ne 0) { + Write-Error "nuget.exe failed to fetch the verify tool." + exit } -catch { - Write-Host $_.ScriptStackTrace - Write-PipelineTelemetryError -Category 'NuGetValidation' -Message $_ - ExitWithExitCode 1 + +# Find the most recently downloaded tool +Write-Host "Finding the most recently downloaded verification tool." +$verifyProbePath = Join-Path $DownloadPath "$packageId.*" +$verifyPath = Get-ChildItem -Path $verifyProbePath -Directory ` + | Sort-Object -Property LastWriteTime -Descending ` + | Select-Object -First 1 +$verify = Join-Path $verifyPath "tools\NuGet.VerifyMicrosoftPackage.exe" +Write-Host "Using verification tool: $verify" +Write-Host " " + +# Execute the verification tool. +Write-Host "Executing the verify tool..." +Write-Host $fence +& $verify $args +Write-Host $fence +Write-Host " " + +# Respond to the exit code. +if ($LASTEXITCODE -ne 0) { + Write-Error "The verify tool found some problems." +} else { + Write-Output "The verify tool succeeded." } diff --git a/global.json b/global.json index 7328398f517..2a9b01d7e2a 100644 --- a/global.json +++ b/global.json @@ -22,7 +22,7 @@ "perl": "5.38.2.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25604.3", + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25605.2", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From f02d99e47deff2a5e08fbe27a18e9cead402fc01 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 9 Dec 2025 02:01:44 +0000 Subject: [PATCH 3/7] Update dependencies from https://github.com/dotnet/arcade build 20251208.6 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 11.0.0-beta.25603.2 -> To Version 11.0.0-beta.25608.6 --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 ++-- global.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index b32635a853e..8660da22af0 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -27,7 +27,7 @@ This file should be imported by eng/Versions.props 5.0.0-2.25480.7 5.0.0-2.25480.7 - 11.0.0-beta.25605.2 + 11.0.0-beta.25608.6 1.0.0-prerelease.25502.1 1.0.0-prerelease.25502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e336c884329..c1c3ef9353b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -76,9 +76,9 @@ - + https://github.com/dotnet/arcade - 65e09c040143048211dcf6b2bd69336cbf27eec6 + 17c915fe8e3094d636fb256f2c2860f38ea7b121 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/global.json b/global.json index 2a9b01d7e2a..d4cfb483378 100644 --- a/global.json +++ b/global.json @@ -22,7 +22,7 @@ "perl": "5.38.2.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25605.2", + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25608.6", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 281b201cdea6f42b61df0f8658b39e2a687eba90 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 10 Dec 2025 02:01:43 +0000 Subject: [PATCH 4/7] Update dependencies from https://github.com/dotnet/arcade build 20251209.1 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 11.0.0-beta.25603.2 -> To Version 11.0.0-beta.25609.1 --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 ++-- global.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 8660da22af0..58f162506a2 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -27,7 +27,7 @@ This file should be imported by eng/Versions.props 5.0.0-2.25480.7 5.0.0-2.25480.7 - 11.0.0-beta.25608.6 + 11.0.0-beta.25609.1 1.0.0-prerelease.25502.1 1.0.0-prerelease.25502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c1c3ef9353b..899d3a91f2e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -76,9 +76,9 @@ - + https://github.com/dotnet/arcade - 17c915fe8e3094d636fb256f2c2860f38ea7b121 + 4917b993548eac98a7e6b1b2840bb19ac55bc8f9 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/global.json b/global.json index d4cfb483378..efbe14c134c 100644 --- a/global.json +++ b/global.json @@ -22,7 +22,7 @@ "perl": "5.38.2.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25608.6", + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25609.1", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 3563893ea6459ad79558591f1d8a30ca22284777 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 11 Dec 2025 02:01:27 +0000 Subject: [PATCH 5/7] Update dependencies from https://github.com/dotnet/arcade build 20251210.3 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 11.0.0-beta.25603.2 -> To Version 11.0.0-beta.25610.3 --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 ++-- eng/common/internal-feed-operations.ps1 | 2 +- eng/common/post-build/nuget-verification.ps1 | 2 +- eng/common/tools.ps1 | 6 +++--- global.json | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 58f162506a2..0adae6b9308 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -27,7 +27,7 @@ This file should be imported by eng/Versions.props 5.0.0-2.25480.7 5.0.0-2.25480.7 - 11.0.0-beta.25609.1 + 11.0.0-beta.25610.3 1.0.0-prerelease.25502.1 1.0.0-prerelease.25502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 899d3a91f2e..ff47e57aa48 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -76,9 +76,9 @@ - + https://github.com/dotnet/arcade - 4917b993548eac98a7e6b1b2840bb19ac55bc8f9 + 27e190e2a8053738859c082e2f70df62e01ff524 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/eng/common/internal-feed-operations.ps1 b/eng/common/internal-feed-operations.ps1 index 92b77347d99..c282d3ae403 100644 --- a/eng/common/internal-feed-operations.ps1 +++ b/eng/common/internal-feed-operations.ps1 @@ -26,7 +26,7 @@ function SetupCredProvider { $url = 'https://raw.githubusercontent.com/microsoft/artifacts-credprovider/master/helpers/installcredprovider.ps1' Write-Host "Writing the contents of 'installcredprovider.ps1' locally..." - Invoke-WebRequest $url -OutFile installcredprovider.ps1 + Invoke-WebRequest $url -UseBasicParsing -OutFile installcredprovider.ps1 Write-Host 'Installing plugin...' .\installcredprovider.ps1 -Force diff --git a/eng/common/post-build/nuget-verification.ps1 b/eng/common/post-build/nuget-verification.ps1 index ac5c69ffcac..eea88e653c9 100644 --- a/eng/common/post-build/nuget-verification.ps1 +++ b/eng/common/post-build/nuget-verification.ps1 @@ -65,7 +65,7 @@ if ($NuGetExePath) { Write-Host "Downloading nuget.exe from $nugetExeUrl..." $ProgressPreference = 'SilentlyContinue' try { - Invoke-WebRequest $nugetExeUrl -OutFile $downloadedNuGetExe + Invoke-WebRequest $nugetExeUrl -UseBasicParsing -OutFile $downloadedNuGetExe $ProgressPreference = 'Continue' } catch { $ProgressPreference = 'Continue' diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 1556562c68f..e8e9f7615f1 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -273,7 +273,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) { Retry({ Write-Host "GET $uri" - Invoke-WebRequest $uri -OutFile $installScript + Invoke-WebRequest $uri -UseBasicParsing -OutFile $installScript }) } @@ -506,7 +506,7 @@ function InitializeXCopyMSBuild([string]$packageVersion, [bool]$install) { Write-Host "Downloading $packageName $packageVersion" $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit Retry({ - Invoke-WebRequest "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/flat2/$packageName/$packageVersion/$packageName.$packageVersion.nupkg" -OutFile $packagePath + Invoke-WebRequest "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/flat2/$packageName/$packageVersion/$packageName.$packageVersion.nupkg" -UseBasicParsing -OutFile $packagePath }) if (!(Test-Path $packagePath)) { @@ -552,7 +552,7 @@ function LocateVisualStudio([object]$vsRequirements = $null){ Write-Host "Downloading vswhere $vswhereVersion" $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit Retry({ - Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -OutFile $vswhereExe + Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -UseBasicParsing -OutFile $vswhereExe }) } diff --git a/global.json b/global.json index efbe14c134c..4fbdc1a3fb4 100644 --- a/global.json +++ b/global.json @@ -22,7 +22,7 @@ "perl": "5.38.2.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25609.1", + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25610.3", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 6b34010c4ce69aa3839047543d165007dca63a1b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 12 Dec 2025 02:01:46 +0000 Subject: [PATCH 6/7] Update dependencies from https://github.com/dotnet/arcade build 20251211.5 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 11.0.0-beta.25603.2 -> To Version 11.0.0-beta.25611.5 --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 ++-- global.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 0adae6b9308..9e2c77f4056 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -27,7 +27,7 @@ This file should be imported by eng/Versions.props 5.0.0-2.25480.7 5.0.0-2.25480.7 - 11.0.0-beta.25610.3 + 11.0.0-beta.25611.5 1.0.0-prerelease.25502.1 1.0.0-prerelease.25502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ff47e57aa48..dfad22bc6d8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -76,9 +76,9 @@ - + https://github.com/dotnet/arcade - 27e190e2a8053738859c082e2f70df62e01ff524 + dd6311861abf91f883a5f6aa3b13ff095ed44179 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/global.json b/global.json index 4fbdc1a3fb4..ce2b2e28452 100644 --- a/global.json +++ b/global.json @@ -22,7 +22,7 @@ "perl": "5.38.2.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25610.3", + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25611.5", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 729b4c06a5d01f196c1f7ad469aac53718dc62c7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 13 Dec 2025 02:01:54 +0000 Subject: [PATCH 7/7] Update dependencies from https://github.com/dotnet/arcade build 20251212.6 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 11.0.0-beta.25603.2 -> To Version 11.0.0-beta.25612.6 --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 4 ++-- eng/common/tools.ps1 | 13 ++++++++++--- global.json | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 9e2c77f4056..df58ebc1b03 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -27,7 +27,7 @@ This file should be imported by eng/Versions.props 5.0.0-2.25480.7 5.0.0-2.25480.7 - 11.0.0-beta.25611.5 + 11.0.0-beta.25612.6 1.0.0-prerelease.25502.1 1.0.0-prerelease.25502.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index dfad22bc6d8..9b8ddc1a4fa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -76,9 +76,9 @@ - + https://github.com/dotnet/arcade - dd6311861abf91f883a5f6aa3b13ff095ed44179 + 8adf115288fa51feaa30d063b946478054c7f7b4 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index e8e9f7615f1..f6bde268379 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -556,19 +556,26 @@ function LocateVisualStudio([object]$vsRequirements = $null){ }) } - if (!$vsRequirements) { $vsRequirements = $GlobalJson.tools.vs } + if (!$vsRequirements) { + if (Get-Member -InputObject $GlobalJson.tools -Name 'vs' -ErrorAction SilentlyContinue) { + $vsRequirements = $GlobalJson.tools.vs + } else { + $vsRequirements = $null + } + } + $args = @('-latest', '-format', 'json', '-requires', 'Microsoft.Component.MSBuild', '-products', '*') if (!$excludePrereleaseVS) { $args += '-prerelease' } - if (Get-Member -InputObject $vsRequirements -Name 'version') { + if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'version' -ErrorAction SilentlyContinue)) { $args += '-version' $args += $vsRequirements.version } - if (Get-Member -InputObject $vsRequirements -Name 'components') { + if ($vsRequirements -and (Get-Member -InputObject $vsRequirements -Name 'components' -ErrorAction SilentlyContinue)) { foreach ($component in $vsRequirements.components) { $args += '-requires' $args += $component diff --git a/global.json b/global.json index ce2b2e28452..3e1d5f37e5e 100644 --- a/global.json +++ b/global.json @@ -22,7 +22,7 @@ "perl": "5.38.2.2" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25611.5", + "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25612.6", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } }