Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
e617ca0
Backflow from https://github.com/dotnet/dotnet / d65136b build 294068
dotnet-maestro[bot] Dec 11, 2025
822f95d
Merge main into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
dotnet-maestro[bot] Dec 11, 2025
6684fc5
Update dependencies from https://github.com/dotnet/dotnet build 294068
dotnet-maestro[bot] Dec 11, 2025
0bf40e1
Add hotreload
mmitche Dec 11, 2025
8f53369
Merge branch 'main' into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
DonnaChen888 Dec 12, 2025
16e1126
Merge branch 'main' into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
DonnaChen888 Dec 12, 2025
ae15c54
Remove extraneous HotReload prop
premun Dec 12, 2025
4496eb3
Update dependencies from https://github.com/dotnet/dotnet build 294309
dotnet-maestro[bot] Dec 12, 2025
9f3dfe4
Switch to 11.0 templates
mmitche Dec 12, 2025
770e43c
Fixup sarif file
mmitche Dec 12, 2025
165bb15
Merge branch 'main' into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
nagilson Dec 12, 2025
216eae1
Merge main into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
dotnet-maestro[bot] Dec 14, 2025
f5ff8fb
Update dependencies from https://github.com/dotnet/dotnet build 294593
dotnet-maestro[bot] Dec 14, 2025
10279df
Merge branch 'main' into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
DonnaChen888 Dec 16, 2025
5ca585d
Update dependencies from https://github.com/dotnet/dotnet build 294757
dotnet-maestro[bot] Dec 16, 2025
4659918
Merge branch 'main' into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
DonnaChen888 Dec 16, 2025
c255436
Merge branch 'main' into darc-main-69be82f7-4ac6-49d6-a47f-19dac1d9d278
DonnaChen888 Dec 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
"remoteEnv": {
"PATH": "${containerWorkspaceFolder}/.dotnet:${containerEnv:PATH}",
"DOTNET_INSTALL_DIR": "${containerWorkspaceFolder}/.dotnet",
"DOTNET_MULTILEVEL_LOOKUP": "0",
"DOTNET_ROOT": "${containerWorkspaceFolder}/.dotnet",
"DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR": "${containerWorkspaceFolder}/.dotnet",
"NUGET_PACKAGES": "/home/vscode/.nuget/packages"
Expand Down
1 change: 0 additions & 1 deletion build/RunTestsOnHelix.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ set NUGET_EXPERIMENTAL_NETWORK_RETRY_DELAY_MILLISECONDS=1000
set MicrosoftNETBuildExtensionsTargets=%HELIX_CORRELATION_PAYLOAD%\ex\msbuildExtensions\Microsoft\Microsoft.NET.Build.Extensions\Microsoft.NET.Build.Extensions.targets
set DOTNET_ROOT=%HELIX_CORRELATION_PAYLOAD%\d
set PATH=%DOTNET_ROOT%;%PATH%
set DOTNET_MULTILEVEL_LOOKUP=0
set TestFullMSBuild=%1

REM Ensure Visual Studio instances allow preview SDKs
Expand Down
34 changes: 0 additions & 34 deletions eng/SignCheckExclusionsFile.txt

This file was deleted.

308 changes: 154 additions & 154 deletions eng/Version.Details.props

Large diffs are not rendered by default.

587 changes: 291 additions & 296 deletions eng/Version.Details.xml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions eng/common/core-templates/job/job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ jobs:
templateContext: ${{ parameters.templateContext }}

variables:
- name: AllowPtrToDetectTestRunRetryFiles
value: true
- ${{ if ne(parameters.enableTelemetry, 'false') }}:
- name: DOTNET_CLI_TELEMETRY_PROFILE
value: '$(Build.Repository.Uri)'
Expand Down
4 changes: 2 additions & 2 deletions eng/common/core-templates/job/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ jobs:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')]
demands: ImageOverride -equals build.ubuntu.2004.amd64
demands: ImageOverride -equals build.ubuntu.2204.amd64
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')]
image: 1es-mariner-2
image: 1es-azurelinux-3
os: linux
${{ else }}:
pool:
Expand Down
8 changes: 4 additions & 4 deletions eng/common/core-templates/job/source-index-stage1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: ''
Expand All @@ -25,10 +25,10 @@ jobs:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
image: windows.vs2022.amd64.open
image: windows.vs2026preview.scout.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool)
image: windows.vs2022.amd64
image: windows.vs2026preview.scout.amd64

steps:
- ${{ if eq(parameters.is1ESPipeline, '') }}:
Expand All @@ -41,4 +41,4 @@ jobs:

- template: /eng/common/core-templates/steps/source-index-stage1-publish.yml
parameters:
binLogPath: ${{ parameters.binLogPath }}
binLogPath: ${{ parameters.binLogPath }}
30 changes: 26 additions & 4 deletions eng/common/core-templates/steps/install-microbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ parameters:
# Unfortunately, _SignType can't be used to exclude the use of the service connection in non-real sign scenarios. The
# variable is not available in template expression. _SignType has a very large proliferation across .NET, so replacing it is tough.
microbuildUseESRP: true
# Microbuild installation directory
microBuildOutputFolder: $(Agent.TempDirectory)/MicroBuild
# Microbuild version
microbuildPluginVersion: 'latest'

Expand All @@ -27,8 +29,27 @@ steps:
inputs:
packageType: sdk
version: 8.0.x
installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet
workingDirectory: ${{ parameters.microBuildOutputFolder }}
installationPath: ${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))

- script: |
set -euo pipefail

# UseDotNet@2 prepends the dotnet executable path to the PATH variable, so we can call dotnet directly
version=$(dotnet --version)
cat << 'EOF' > ${{ parameters.microBuildOutputFolder }}/global.json
{
"sdk": {
"version": "$version",
"paths": [
"${{ parameters.microBuildOutputFolder }}/.dotnet-microbuild"
],
"errorMessage": "The .NET SDK version $version is required to install the MicroBuild signing plugin."
}
}
EOF
displayName: 'Add global.json to MicroBuild Installation path'
workingDirectory: ${{ parameters.microBuildOutputFolder }}
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))

- script: |
Expand Down Expand Up @@ -68,7 +89,7 @@ steps:
ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca
microbuildEnv:
TeamName: $(_TeamName)
MicroBuildOutputFolderOverride: $(Agent.TempDirectory)/MicroBuild
MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }}
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
continueOnError: ${{ parameters.continueOnError }}
condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test'))
Expand All @@ -82,6 +103,7 @@ steps:
zipSources: false
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
version: ${{ parameters.microbuildPluginVersion }}
workingDirectory: ${{ parameters.microBuildOutputFolder }}
${{ if eq(parameters.microbuildUseESRP, true) }}:
ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)'
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
Expand All @@ -90,7 +112,7 @@ steps:
ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc
microbuildEnv:
TeamName: $(_TeamName)
MicroBuildOutputFolderOverride: $(Agent.TempDirectory)/MicroBuild
MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }}
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
continueOnError: ${{ parameters.continueOnError }}
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real'))
Empty file modified eng/common/generate-sbom-prep.sh
100755 → 100644
Empty file.
2 changes: 1 addition & 1 deletion eng/common/internal-feed-operations.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion eng/common/post-build/nuget-verification.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 1 addition & 1 deletion eng/common/sdk-task.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ try {
$GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty
}
if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) {
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.14.16" -MemberType NoteProperty
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "18.0.0" -MemberType NoteProperty
}
if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
$xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true
Expand Down
27 changes: 15 additions & 12 deletions eng/common/tools.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -277,7 +273,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) {

Retry({
Write-Host "GET $uri"
Invoke-WebRequest $uri -OutFile $installScript
Invoke-WebRequest $uri -UseBasicParsing -OutFile $installScript
})
}

Expand Down Expand Up @@ -394,8 +390,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =

# If the version of msbuild is going to be xcopied,
# use this version. Version matches a package here:
# https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.14.16
$defaultXCopyMSBuildVersion = '17.14.16'
# https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/18.0.0
$defaultXCopyMSBuildVersion = '18.0.0'

if (!$vsRequirements) {
if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
Expand Down Expand Up @@ -510,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)) {
Expand Down Expand Up @@ -556,23 +552,30 @@ 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
})
}

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
Expand Down
4 changes: 0 additions & 4 deletions eng/common/tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion eng/common/vmr-sync.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ Set-StrictMode -Version Latest
Highlight 'Installing .NET, preparing the tooling..'
. .\eng\common\tools.ps1
$dotnetRoot = InitializeDotNetCli -install:$true
$darc = Get-Darc "1.1.0-beta.25514.2"
$darc = Get-Darc
$dotnet = "$dotnetRoot\dotnet.exe"

Highlight "Starting the synchronization of VMR.."
Expand Down
2 changes: 1 addition & 1 deletion eng/common/vmr-sync.sh
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ set -e
highlight 'Installing .NET, preparing the tooling..'
source "./eng/common/tools.sh"
InitializeDotNetCli true
GetDarc "1.1.0-beta.25514.2"
GetDarc
dotnetDir=$( cd ./.dotnet/; pwd -P )
dotnet=$dotnetDir/dotnet

Expand Down
2 changes: 0 additions & 2 deletions eng/restore-toolset.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ function CreateBuildEnvScripts()
$scriptContents = @"
@echo off
title SDK Build ($RepoRoot)
set DOTNET_MULTILEVEL_LOOKUP=0
REM https://aka.ms/vs/unsigned-dotnet-debugger-lib
set VSDebugger_ValidateDotnetDebugLibSignatures=0

Expand All @@ -62,7 +61,6 @@ DOSKEY killdotnet=taskkill /F /IM dotnet.exe /T ^& taskkill /F /IM VSTest.Consol
$scriptPath = Join-Path $ArtifactsDir "sdk-build-env.ps1"
$scriptContents = @"
`$host.ui.RawUI.WindowTitle = "SDK Build ($RepoRoot)"
`$env:DOTNET_MULTILEVEL_LOOKUP=0
# https://aka.ms/vs/unsigned-dotnet-debugger-lib
`$env:VSDebugger_ValidateDotnetDebugLibSignatures=0

Expand Down
1 change: 0 additions & 1 deletion eng/restore-toolset.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ function CreateBuildEnvScript {
scriptPath="$artifacts_dir/sdk-build-env.sh"
scriptContents="
#!/usr/bin/env bash
export DOTNET_MULTILEVEL_LOOKUP=0

export DOTNET_ROOT=$DOTNET_INSTALL_DIR
export DOTNET_MSBUILD_SDK_RESOLVER_CLI_DIR=$DOTNET_INSTALL_DIR
Expand Down
6 changes: 3 additions & 3 deletions global.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally."
},
"tools": {
"dotnet": "10.0.100-rc.1.25451.107",
"dotnet": "10.0.100",
"runtimes": {
"dotnet": [
"$(MicrosoftNETCorePlatformsPackageVersion)"
Expand All @@ -21,8 +21,8 @@
}
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25521.106",
"Microsoft.DotNet.Helix.Sdk": "11.0.0-beta.25521.106",
"Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.25615.104",
"Microsoft.DotNet.Helix.Sdk": "11.0.0-beta.25615.104",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.Build.Traversal": "3.4.0",
"Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440"
Expand Down
2 changes: 1 addition & 1 deletion src/BuiltInTools/Watch/HotReload/HotReloadEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
namespace Microsoft.DotNet.Watch
{
[EventSource(Name = "HotReload")]
internal sealed class HotReloadEventSource : EventSource
internal sealed partial class HotReloadEventSource : EventSource
{
public enum StartType
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,11 @@ internal string Layout(int indent = 0)
{
for (int i = 0; i < _columns.Count; ++i)
{
b.Append(new string(_settings.HeaderSeparator.Value, _columns[i].CalculatedWidth));
b.Append(_settings.HeaderSeparator.Value, _columns[i].CalculatedWidth);

if (i < _columns.Count - 1)
{
b.Append(new string(' ', _settings.ColumnPadding));
b.Append(' ', _settings.ColumnPadding);
}
}
b.AppendLine().Indent(indent);
Expand Down
6 changes: 1 addition & 5 deletions src/Cli/dotnet/PerformanceLogEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,10 @@
namespace Microsoft.DotNet.Cli;

[EventSource(Name = "Microsoft-Dotnet-CLI-Performance", Guid = "cbd57d06-3b9f-5374-ed53-cfbcc23cf44f")]
internal sealed class PerformanceLogEventSource : EventSource
internal sealed partial class PerformanceLogEventSource : EventSource
{
internal static PerformanceLogEventSource Log = new();

private PerformanceLogEventSource()
{
}

[NonEvent]
internal void LogStartUpInformation(PerformanceLogStartupInformation startupInfo)
{
Expand Down
Loading
Loading