diff --git a/eng/Version.Details.props b/eng/Version.Details.props
index 5509fa51b2e..5f2563c46c4 100644
--- a/eng/Version.Details.props
+++ b/eng/Version.Details.props
@@ -8,30 +8,30 @@ This file should be imported by eng/Versions.props
15.9.20
15.9.20
- 11.0.0-beta.26229.113
- 11.0.0-beta.26229.113
- 11.0.0-beta.26229.113
- 11.0.0-beta.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
+ 11.0.0-beta.26263.112
+ 11.0.0-beta.26263.112
+ 11.0.0-beta.26263.112
+ 11.0.0-beta.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
8.0.0-beta.23409.2
8.0.0-beta.23409.2
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
- 11.0.0-preview.5.26229.113
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
+ 11.0.0-preview.5.26263.112
11.0.0-preview.2.26262.2
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 0f841adfce1..85f7ccc4064 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,78 +1,78 @@
-
+
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
https://dev.azure.com/dnceng/internal/_git/dotnet-wpf-int
0f3efdfc3b5fe2e9ff10112b632914d6c26b230b
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
https://github.com/dotnet/dotnet
@@ -84,21 +84,21 @@
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
@@ -109,9 +109,9 @@
https://github.com/dotnet/dotnet
e9f665e52848a3615736c099e5631af531b66a5c
-
+
https://github.com/dotnet/dotnet
- 4c4e7f410fc876590f219fc6022b6c18d6f6a475
+ 0d945d08da237ae1726e34e0dba13aabba06e593
diff --git a/eng/common/AGENTS.md b/eng/common/AGENTS.md
new file mode 100644
index 00000000000..a5ed8f72926
--- /dev/null
+++ b/eng/common/AGENTS.md
@@ -0,0 +1,5 @@
+# `eng/common`
+
+Files under `eng/common` come from [Arcade](https://github.com/dotnet/arcade).
+Edits in `eng/common` will be overwritten by automation unless the changes are made directly in the Arcade repository.
+For more information, see the [Arcade documentation](https://github.com/dotnet/arcade/tree/main/Documentation).
diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml
index eefed3b667a..86ea9f63504 100644
--- a/eng/common/core-templates/job/onelocbuild.yml
+++ b/eng/common/core-templates/job/onelocbuild.yml
@@ -22,6 +22,7 @@ parameters:
GitHubOrg: dotnet
MirrorRepo: ''
MirrorBranch: main
+ xLocCustomPowerShellScript: ''
condition: ''
JobNameSuffix: ''
is1ESPipeline: ''
@@ -97,6 +98,8 @@ jobs:
gitHubOrganization: ${{ parameters.GitHubOrg }}
mirrorRepo: ${{ parameters.MirrorRepo }}
mirrorBranch: ${{ parameters.MirrorBranch }}
+ ${{ if ne(parameters.xLocCustomPowerShellScript, '') }}:
+ xLocCustomPowerShellScript: ${{ parameters.xLocCustomPowerShellScript }}
condition: ${{ parameters.condition }}
# Copy the locProject.json to the root of the Loc directory, then publish a pipeline artifact
diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake
index ff2dfdb4a5b..99d6dfe82dd 100644
--- a/eng/common/cross/toolchain.cmake
+++ b/eng/common/cross/toolchain.cmake
@@ -225,13 +225,19 @@ elseif(ILLUMOS)
locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
elseif(HAIKU)
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
- set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin")
set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}")
set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
- locate_toolchain_exec(gcc CMAKE_C_COMPILER)
- locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
+ if ($ENV{CCC_CC} MATCHES ".*gcc.*")
+ set(CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH};${CROSS_ROOTFS}/cross-tools-x86_64/bin")
+ locate_toolchain_exec(gcc CMAKE_C_COMPILER)
+ locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
+ else()
+ set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/cross-tools-x86_64")
+ set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/cross-tools-x86_64")
+ set(CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/cross-tools-x86_64")
+ endif()
# let CMake set up the correct search paths
include(Platform/Haiku)
diff --git a/eng/common/dotnet-install.ps1 b/eng/common/dotnet-install.ps1
index 811f0f717f7..50ae6273768 100644
--- a/eng/common/dotnet-install.ps1
+++ b/eng/common/dotnet-install.ps1
@@ -10,7 +10,11 @@ Param(
. $PSScriptRoot\tools.ps1
-$dotnetRoot = Join-Path $RepoRoot '.dotnet'
+if (-not [string]::IsNullOrEmpty($env:DOTNET_GLOBAL_INSTALL_DIR)) {
+ $dotnetRoot = $env:DOTNET_GLOBAL_INSTALL_DIR
+} else {
+ $dotnetRoot = Join-Path $RepoRoot '.dotnet'
+}
$installdir = $dotnetRoot
try {
diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh
index 61f302bb677..1cb3f5abac2 100755
--- a/eng/common/dotnet-install.sh
+++ b/eng/common/dotnet-install.sh
@@ -80,7 +80,11 @@ case $cpuname in
;;
esac
-dotnetRoot="${repo_root}.dotnet"
+if [[ -n "${DOTNET_GLOBAL_INSTALL_DIR:-}" ]]; then
+ dotnetRoot="$DOTNET_GLOBAL_INSTALL_DIR"
+else
+ dotnetRoot="${repo_root}.dotnet"
+fi
if [[ $architecture != "" ]] && [[ $architecture != $buildarch ]]; then
dotnetRoot="$dotnetRoot/$architecture"
fi
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 65adefc7f26..0e281df8cae 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -168,6 +168,12 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) {
$env:DOTNET_CLI_TELEMETRY_OPTOUT=1
}
+ # Keep repo builds isolated from machine-installed SDK state and workload advertising.
+ # This avoids preview SDK builds picking up mismatched workloads on CI images.
+ $env:DOTNET_MULTILEVEL_LOOKUP = '0'
+ $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
+ $env:DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE = '1'
+
# Find the first path on %PATH% that contains the dotnet.exe
if ($useInstalledDotNetCli -and (-not $globalJsonHasRuntimes) -and ($env:DOTNET_INSTALL_DIR -eq $null)) {
$dotnetExecutable = GetExecutableFileName 'dotnet'
@@ -230,6 +236,9 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) {
Write-PipelinePrependPath -Path $dotnetRoot
Write-PipelineSetVariable -Name 'DOTNET_NOLOGO' -Value '1'
+ Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0'
+ Write-PipelineSetVariable -Name 'DOTNET_SKIP_FIRST_TIME_EXPERIENCE' -Value '1'
+ Write-PipelineSetVariable -Name 'DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE' -Value '1'
return $global:_DotNetInstallDir = $dotnetRoot
}
@@ -619,11 +628,7 @@ function GetSdkTaskProject([string]$taskName) {
if (Test-Path $proj) {
return $proj
}
- # TODO: Remove this fallback once all supported versions use the new layout.
- $legacyProj = Join-Path $toolsetDir "SdkTasks\$taskName.proj"
- if (Test-Path $legacyProj) {
- return $legacyProj
- }
+
throw "Unable to find $taskName.proj in toolset at: $toolsetDir"
}
@@ -699,23 +704,14 @@ function InitializeToolset() {
$packageDir = Join-Path $nugetCache (Join-Path 'microsoft.dotnet.arcade.sdk' $toolsetVersion)
$packageToolsetDir = Join-Path $packageDir 'toolset'
- $packageToolsDir = Join-Path $packageDir 'tools'
- # TODO: Remove the tools/ check once all supported versions have the toolset folder.
- if (!(Test-Path $packageToolsetDir) -and !(Test-Path $packageToolsDir)) {
+ if (!(Test-Path $packageToolsetDir)) {
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Arcade SDK package does not contain a toolset or tools folder: $packageDir"
ExitWithExitCode 3
}
New-Item -ItemType Directory -Path $toolsetToolsDir -Force | Out-Null
-
- # Copy toolset if present at the package root (new layout), otherwise fall back to tools
- if (Test-Path $packageToolsetDir) {
- Copy-Item -Path "$packageToolsetDir\*" -Destination $toolsetToolsDir -Recurse -Force
- } else {
- # TODO: Remove this fallback once all supported versions have the toolset folder.
- Copy-Item -Path "$packageToolsDir\*" -Destination $toolsetToolsDir -Recurse -Force
- }
+ Copy-Item -Path "$packageToolsetDir\*" -Destination $toolsetToolsDir -Recurse -Force
if (Test-Path $buildProjPath) {
$toolsetBuildProj = $buildProjPath
@@ -842,6 +838,10 @@ function MSBuild-Core() {
$cmdArgs = "$($buildTool.Command) /m /nologo /clp:Summary /v:$verbosity /nr:$nodeReuse /p:ContinuousIntegrationBuild=$ci"
+ if ($ci -and $buildTool.Tool -eq 'dotnet') {
+ $cmdArgs += ' /p:MSBuildEnableWorkloadResolver=false'
+ }
+
# Add -mt flag for MSBuild multithreaded mode if enabled via environment variable
if ($env:MSBUILD_MT_ENABLED -eq "1") {
$cmdArgs += ' -mt'
@@ -952,6 +952,12 @@ Create-Directory $ToolsetDir
Create-Directory $TempDir
Create-Directory $LogDir
+# Direct MSBuild crash diagnostics (MSB4166 failure.txt files) to a known location
+# under artifacts/log so they are captured as build artifacts in CI.
+if (-not $env:MSBUILDDEBUGPATH) {
+ $env:MSBUILDDEBUGPATH = Join-Path $LogDir 'MsbuildDebugLogs'
+}
+
Write-PipelineSetVariable -Name 'Artifacts' -Value $ArtifactsDir
Write-PipelineSetVariable -Name 'Artifacts.Toolset' -Value $ToolsetDir
Write-PipelineSetVariable -Name 'Artifacts.Log' -Value $LogDir
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 95c55ce9b4d..5ff37cfb700 100755
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -126,6 +126,12 @@ function InitializeDotNetCli {
export DOTNET_CLI_TELEMETRY_OPTOUT=1
fi
+ # Keep repo builds isolated from machine-installed SDK state and workload advertising.
+ # This avoids preview SDK builds picking up mismatched workloads on CI images.
+ export DOTNET_MULTILEVEL_LOOKUP=0
+ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+ export DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE=1
+
# LTTNG is the logging infrastructure used by Core CLR. Need this variable set
# so it doesn't output warnings to the console.
export LTTNG_HOME="$HOME"
@@ -171,6 +177,9 @@ function InitializeDotNetCli {
Write-PipelinePrependPath -path "$dotnet_root"
Write-PipelineSetVariable -name "DOTNET_NOLOGO" -value "1"
+ Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0"
+ Write-PipelineSetVariable -name "DOTNET_SKIP_FIRST_TIME_EXPERIENCE" -value "1"
+ Write-PipelineSetVariable -name "DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE" -value "1"
# return value
_InitializeDotNetCli="$dotnet_root"
@@ -449,21 +458,13 @@ function InitializeToolset {
local package_dir="$_GetNuGetPackageCachePath/microsoft.dotnet.arcade.sdk/$toolset_version"
- # TODO: Remove the tools/ check once all supported versions have the toolset folder.
- if [[ ! -d "$package_dir/toolset" && ! -d "$package_dir/tools" ]]; then
- Write-PipelineTelemetryError -category 'InitializeToolset' "Arcade SDK package does not contain a toolset or tools folder: $package_dir"
+ if [[ ! -d "$package_dir/toolset" ]]; then
+ Write-PipelineTelemetryError -category 'InitializeToolset' "Arcade SDK package does not contain a toolset folder: $package_dir"
ExitWithExitCode 3
fi
mkdir -p "$toolset_tools_dir"
-
- # Copy toolset if present at the package root (new layout), otherwise fall back to tools
- if [[ -d "$package_dir/toolset" ]]; then
- cp -r "$package_dir/toolset/." "$toolset_tools_dir"
- else
- # TODO: Remove this fallback once all supported versions have the toolset folder.
- cp -r "$package_dir/tools/." "$toolset_tools_dir"
- fi
+ cp -r "$package_dir/toolset/." "$toolset_tools_dir"
if [[ -a "$toolset_tools_dir/Build.proj" ]]; then
toolset_build_proj="$toolset_tools_dir/Build.proj"
@@ -590,7 +591,12 @@ function MSBuild-Core {
warnnotaserror_switch="/warnnotaserror:$warn_not_as_error /p:AdditionalWarningsNotAsErrors=$warn_not_as_error"
fi
- RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
+ local workload_resolver_switch=""
+ if [[ "$ci" == true && -n "${_InitializeBuildToolCommand:-}" ]]; then
+ workload_resolver_switch="/p:MSBuildEnableWorkloadResolver=false"
+ fi
+
+ RunBuildTool "$_InitializeBuildToolCommand" /m /nologo /clp:Summary /v:$verbosity /nr:$node_reuse $warnaserror_switch $mt_switch $warnnotaserror_switch $workload_resolver_switch /p:TreatWarningsAsErrors=$warn_as_error /p:ContinuousIntegrationBuild=$ci "$@"
}
function GetDarc {
@@ -615,12 +621,7 @@ function GetSdkTaskProject {
echo "$proj"
return
fi
- # TODO: Remove this fallback once all supported versions use the new layout.
- local legacyProj="$toolsetDir/SdkTasks/$taskName.proj"
- if [[ -a "$legacyProj" ]]; then
- echo "$legacyProj"
- return
- fi
+
Write-PipelineTelemetryError -category 'Build' "Unable to find $taskName.proj in toolset at: $toolsetDir"
ExitWithExitCode 3
}
@@ -660,6 +661,12 @@ mkdir -p "$toolset_dir"
mkdir -p "$temp_dir"
mkdir -p "$log_dir"
+# Direct MSBuild crash diagnostics (MSB4166 failure.txt files) to a known location
+# under artifacts/log so they are captured as build artifacts in CI.
+if [[ -z "${MSBUILDDEBUGPATH:-}" ]]; then
+ export MSBUILDDEBUGPATH="$log_dir/MsbuildDebugLogs"
+fi
+
Write-PipelineSetVariable -name "Artifacts" -value "$artifacts_dir"
Write-PipelineSetVariable -name "Artifacts.Toolset" -value "$toolset_dir"
Write-PipelineSetVariable -name "Artifacts.Log" -value "$log_dir"
diff --git a/global.json b/global.json
index 66115c8df01..29cbbedcd3d 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "11.0.100-preview.4.26210.111",
+ "version": "11.0.100-preview.5.26227.104",
"allowPrerelease": true,
"rollForward": "latestFeature",
"paths": [
@@ -10,7 +10,7 @@
"errorMessage": "The required .NET SDK wasn't found. Please run ./eng/common/dotnet.cmd/sh to install it."
},
"tools": {
- "dotnet": "11.0.100-preview.4.26210.111",
+ "dotnet": "11.0.100-preview.5.26227.104",
"runtimes": {
"dotnet/x64": [
"$(MicrosoftNETCorePlatformsVersion)"
@@ -27,8 +27,8 @@
"runner": "Microsoft.Testing.Platform"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26229.113",
- "Microsoft.DotNet.Helix.Sdk": "11.0.0-beta.26229.113",
+ "Microsoft.DotNet.Arcade.Sdk": "11.0.0-beta.26263.112",
+ "Microsoft.DotNet.Helix.Sdk": "11.0.0-beta.26263.112",
"Microsoft.Build.NoTargets": "3.7.56"
},
"native-tools": {