diff --git a/NuGet.config b/NuGet.config
index 6f26fd93f0f6..35e6aafea7d1 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -6,10 +6,9 @@
-
-
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 4c07f56a47b9..8d7aee086842 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,162 +1,162 @@
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/android
- 903250b8a3be2c3bed89e7740049c73f41396a8a
+ d84352c83fbdb6554355cc41ae99b4a576ca4a69
https://github.com/dotnet/android
be1cab92326783479054e72990da08008e5be819
-
+
https://github.com/dotnet/macios
- cf8e458a7acc484e3a50f64e427680e35d7bf49f
+ f90459e76446c6e6e83c1e45cb2b4a7eee7ed3a3
-
+
https://github.com/dotnet/macios
- cf8e458a7acc484e3a50f64e427680e35d7bf49f
+ f90459e76446c6e6e83c1e45cb2b4a7eee7ed3a3
-
+
https://github.com/dotnet/macios
- cf8e458a7acc484e3a50f64e427680e35d7bf49f
+ f90459e76446c6e6e83c1e45cb2b4a7eee7ed3a3
-
+
https://github.com/dotnet/macios
- cf8e458a7acc484e3a50f64e427680e35d7bf49f
+ f90459e76446c6e6e83c1e45cb2b4a7eee7ed3a3
-
+
https://github.com/dotnet/macios
- 807153429630114a7186d246285c3a4a504f23c1
+ af20d0b615668b2e13d0ffe81ba7ec4f89a398c9
-
+
https://github.com/dotnet/macios
- 807153429630114a7186d246285c3a4a504f23c1
+ af20d0b615668b2e13d0ffe81ba7ec4f89a398c9
-
+
https://github.com/dotnet/macios
- 807153429630114a7186d246285c3a4a504f23c1
+ af20d0b615668b2e13d0ffe81ba7ec4f89a398c9
-
+
https://github.com/dotnet/macios
- 807153429630114a7186d246285c3a4a504f23c1
+ af20d0b615668b2e13d0ffe81ba7ec4f89a398c9
https://dev.azure.com/microsoft/ProjectReunion/_git/ProjectReunionInternal
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
https://github.com/dotnet/templating
3f4da9ced34942d83054e647f3b1d9d7dde281e8
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
https://github.com/dotnet/xharness
@@ -172,37 +172,37 @@
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
-
+
https://github.com/dotnet/dotnet
- 30000d883e06c122311a66894579bc12329a09d4
+ 5744e2cba00d7b0a11a410ade60a2923cb88287f
diff --git a/eng/Versions.props b/eng/Versions.props
index 1ad0e1d40e35..9c104faf0f50 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -30,41 +30,41 @@
9.0.82
- 10.0.100-preview.7.25380.108
+ 10.0.100-rc.1.25413.112
$(MicrosoftNETSdkPackageVersion)
- 10.0.0-preview.7.25380.108
+ 10.0.0-rc.1.25413.112
$(MicrosoftNETCoreAppRefPackageVersion)
$(MicrosoftNETCoreAppRefPackageVersion)
$(MicrosoftNETCoreAppRefPackageVersion)
$(MicrosoftNETCoreAppRefPackageVersion)
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
- 36.0.0-preview.7.229
+ 36.0.0-ci.main.271
35.0.92
$(MicrosoftNETSdkAndroidManifest90100PackageVersion)
- 18.5.10603-net10-p7
- 15.5.10603-net10-p7
- 18.5.10603-net10-p7
- 18.5.10603-net10-p7
+ 18.5.10719-net10-rc.1
+ 15.5.10719-net10-rc.1
+ 18.5.10719-net10-rc.1
+ 18.5.10719-net10-rc.1
- 18.5.9215
- 15.5.9215
- 18.5.9215
- 18.5.9215
+ 18.5.9216
+ 15.5.9216
+ 18.5.9216
+ 18.5.9216
8.0.148
@@ -73,19 +73,19 @@
1.3.2
1.0.3179.45
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
- 10.0.0-preview.7.25380.108
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
+ 10.0.0-rc.1.25413.112
8.0.16
$(MicrosoftAspNetCorePackageVersion)
@@ -142,13 +142,13 @@
0.9.0
4.2.3
9.0.0
- 10.0.0-beta.25380.108
- 10.0.0-beta.25380.108
- 10.0.0-beta.25380.108
- 10.0.0-beta.25380.108
+ 10.0.0-beta.25413.112
+ 10.0.0-beta.25413.112
+ 10.0.0-beta.25413.112
+ 10.0.0-beta.25413.112
1.1.87-gba258badda
- 10.0.0-beta.25380.108
- 10.0.0-beta.25380.108
+ 10.0.0-beta.25413.112
+ 10.0.0-beta.25413.112
17.6.0
diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml
index 6badecba7bcc..d9013251542c 100644
--- a/eng/common/core-templates/job/job.yml
+++ b/eng/common/core-templates/job/job.yml
@@ -20,6 +20,7 @@ parameters:
artifacts: ''
enableMicrobuild: false
enableMicrobuildForMacAndLinux: false
+ microbuildUseESRP: true
enablePublishBuildArtifacts: false
enablePublishBuildAssets: false
enablePublishTestResults: false
@@ -128,6 +129,7 @@ jobs:
parameters:
enableMicrobuild: ${{ parameters.enableMicrobuild }}
enableMicrobuildForMacAndLinux: ${{ parameters.enableMicrobuildForMacAndLinux }}
+ microbuildUseESRP: ${{ parameters.microbuildUseESRP }}
continueOnError: ${{ parameters.continueOnError }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}:
diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml
index 8034815f4213..8bf7d23355bc 100644
--- a/eng/common/core-templates/job/onelocbuild.yml
+++ b/eng/common/core-templates/job/onelocbuild.yml
@@ -4,7 +4,7 @@ parameters:
# Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
pool: ''
-
+
CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex
GithubPat: $(BotAccount-dotnet-bot-repo-PAT)
@@ -27,7 +27,7 @@ parameters:
is1ESPipeline: ''
jobs:
- job: OneLocBuild${{ parameters.JobNameSuffix }}
-
+
dependsOn: ${{ parameters.dependsOn }}
displayName: OneLocBuild${{ parameters.JobNameSuffix }}
@@ -99,22 +99,20 @@ jobs:
mirrorBranch: ${{ parameters.MirrorBranch }}
condition: ${{ parameters.condition }}
- - template: /eng/common/core-templates/steps/publish-build-artifacts.yml
- parameters:
- is1ESPipeline: ${{ parameters.is1ESPipeline }}
- args:
- displayName: Publish Localization Files
- pathToPublish: '$(Build.ArtifactStagingDirectory)/loc'
- publishLocation: Container
- artifactName: Loc
- condition: ${{ parameters.condition }}
+ # Copy the locProject.json to the root of the Loc directory, then publish a pipeline artifact
+ - task: CopyFiles@2
+ displayName: Copy LocProject.json
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)/eng/Localize/'
+ Contents: 'LocProject.json'
+ TargetFolder: '$(Build.ArtifactStagingDirectory)/loc'
+ condition: ${{ parameters.condition }}
- - template: /eng/common/core-templates/steps/publish-build-artifacts.yml
+ - template: /eng/common/core-templates/steps/publish-pipeline-artifacts.yml
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
args:
- displayName: Publish LocProject.json
- pathToPublish: '$(Build.SourcesDirectory)/eng/Localize/'
- publishLocation: Container
- artifactName: Loc
+ targetPath: '$(Build.ArtifactStagingDirectory)/loc'
+ artifactName: 'Loc'
+ displayName: 'Publish Localization Files'
condition: ${{ parameters.condition }}
diff --git a/eng/common/core-templates/jobs/jobs.yml b/eng/common/core-templates/jobs/jobs.yml
index bf35b78faa60..2f992b2c6ecc 100644
--- a/eng/common/core-templates/jobs/jobs.yml
+++ b/eng/common/core-templates/jobs/jobs.yml
@@ -83,7 +83,6 @@ jobs:
- template: /eng/common/core-templates/jobs/source-build.yml
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
- allCompletedJobId: Source_Build_Complete
${{ each parameter in parameters.sourceBuildParameters }}:
${{ parameter.key }}: ${{ parameter.value }}
@@ -108,8 +107,6 @@ jobs:
- ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}:
- ${{ each job in parameters.jobs }}:
- ${{ job.job }}
- - ${{ if eq(parameters.enableSourceBuild, true) }}:
- - Source_Build_Complete
runAsPublic: ${{ parameters.runAsPublic }}
publishAssetsImmediately: ${{ or(parameters.publishAssetsImmediately, parameters.isAssetlessBuild) }}
diff --git a/eng/common/core-templates/jobs/source-build.yml b/eng/common/core-templates/jobs/source-build.yml
index df24c948ba12..d92860cba208 100644
--- a/eng/common/core-templates/jobs/source-build.yml
+++ b/eng/common/core-templates/jobs/source-build.yml
@@ -2,12 +2,6 @@ parameters:
# This template adds arcade-powered source-build to CI. A job is created for each platform, as
# well as an optional server job that completes when all platform jobs complete.
- # The name of the "join" job for all source-build platforms. If set to empty string, the job is
- # not included. Existing repo pipelines can use this job depend on all source-build jobs
- # completing without maintaining a separate list of every single job ID: just depend on this one
- # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'.
- allCompletedJobId: ''
-
# See /eng/common/core-templates/job/source-build.yml
jobNamePrefix: 'Source_Build'
@@ -31,16 +25,6 @@ parameters:
jobs:
-- ${{ if ne(parameters.allCompletedJobId, '') }}:
- - job: ${{ parameters.allCompletedJobId }}
- displayName: Source-Build Complete
- pool: server
- dependsOn:
- - ${{ each platform in parameters.platforms }}:
- - ${{ parameters.jobNamePrefix }}_${{ platform.name }}
- - ${{ if eq(length(parameters.platforms), 0) }}:
- - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }}
-
- ${{ each platform in parameters.platforms }}:
- template: /eng/common/core-templates/job/source-build.yml
parameters:
diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml
index f3064a7834ed..da30e67bc34c 100644
--- a/eng/common/core-templates/steps/install-microbuild.yml
+++ b/eng/common/core-templates/steps/install-microbuild.yml
@@ -4,8 +4,16 @@ parameters:
# Enable install tasks for MicroBuild on Mac and Linux
# Will be ignored if 'enableMicrobuild' is false or 'Agent.Os' is 'Windows_NT'
enableMicrobuildForMacAndLinux: false
+ # Determines whether the ESRP service connection information should be passed to the signing plugin.
+ # This overlaps with _SignType to some degree. We only need the service connection for real signing.
+ # It's important that the service connection not be passed to the MicroBuildSigningPlugin task in this place.
+ # Doing so will cause the service connection to be authorized for the pipeline, which isn't allowed and won't work for non-prod.
+ # 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
# Location of the MicroBuild output folder
microBuildOutputFolder: '$(Build.SourcesDirectory)'
+
continueOnError: false
steps:
@@ -21,19 +29,37 @@ steps:
workingDirectory: ${{ parameters.microBuildOutputFolder }}
condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
+ - script: |
+ REM Check if ESRP is disabled while SignType is real
+ if /I "${{ parameters.microbuildUseESRP }}"=="false" if /I "$(_SignType)"=="real" (
+ echo Error: ESRP must be enabled when SignType is real.
+ exit /b 1
+ )
+ displayName: 'Validate ESRP usage (Windows)'
+ condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'))
+ - script: |
+ # Check if ESRP is disabled while SignType is real
+ if [ "${{ parameters.microbuildUseESRP }}" = "false" ] && [ "$(_SignType)" = "real" ]; then
+ echo "Error: ESRP must be enabled when SignType is real."
+ exit 1
+ fi
+ displayName: 'Validate ESRP usage (Non-Windows)'
+ condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
+
- task: MicroBuildSigningPlugin@4
displayName: Install MicroBuild plugin
inputs:
signType: $(_SignType)
zipSources: false
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
- ${{ if and(eq(parameters.enableMicrobuildForMacAndLinux, 'true'), ne(variables['Agent.Os'], 'Windows_NT')) }}:
- azureSubscription: 'MicroBuild Signing Task (DevDiv)'
- useEsrpCli: true
- ${{ elseif eq(variables['System.TeamProject'], 'DevDiv') }}:
- ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea
- ${{ else }}:
- ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca
+ ${{ if eq(parameters.microbuildUseESRP, true) }}:
+ ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}:
+ azureSubscription: 'MicroBuild Signing Task (DevDiv)'
+ useEsrpCli: true
+ ${{ elseif eq(variables['System.TeamProject'], 'DevDiv') }}:
+ ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea
+ ${{ else }}:
+ ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca
env:
TeamName: $(_TeamName)
MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }}
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 996a5f9c8725..d4cfd9ccd806 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -257,7 +257,20 @@ function Retry($downloadBlock, $maxRetries = 5) {
function GetDotNetInstallScript([string] $dotnetRoot) {
$installScript = Join-Path $dotnetRoot 'dotnet-install.ps1'
+ $shouldDownload = $false
+
if (!(Test-Path $installScript)) {
+ $shouldDownload = $true
+ } else {
+ # Check if the script is older than 30 days
+ $fileAge = (Get-Date) - (Get-Item $installScript).LastWriteTime
+ if ($fileAge.Days -gt 30) {
+ Write-Host "Existing install script is too old, re-downloading..."
+ $shouldDownload = $true
+ }
+ }
+
+ if ($shouldDownload) {
Create-Directory $dotnetRoot
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
$uri = "https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.ps1"
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 3def02a638d2..c1841c9dfd0f 100755
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -300,8 +300,29 @@ function GetDotNetInstallScript {
local root=$1
local install_script="$root/dotnet-install.sh"
local install_script_url="https://builds.dotnet.microsoft.com/dotnet/scripts/$dotnetInstallScriptVersion/dotnet-install.sh"
+ local timestamp_file="$root/.dotnet-install.timestamp"
+ local should_download=false
if [[ ! -a "$install_script" ]]; then
+ should_download=true
+ elif [[ -f "$timestamp_file" ]]; then
+ # Check if the script is older than 30 days using timestamp file
+ local download_time=$(cat "$timestamp_file" 2>/dev/null || echo "0")
+ local current_time=$(date +%s)
+ local age_seconds=$((current_time - download_time))
+
+ # 30 days = 30 * 24 * 60 * 60 = 2592000 seconds
+ if [[ $age_seconds -gt 2592000 ]]; then
+ echo "Existing install script is too old, re-downloading..."
+ should_download=true
+ fi
+ else
+ # No timestamp file exists, assume script is old and re-download
+ echo "No timestamp found for existing install script, re-downloading..."
+ should_download=true
+ fi
+
+ if [[ "$should_download" == true ]]; then
mkdir -p "$root"
echo "Downloading '$install_script_url'"
@@ -328,6 +349,9 @@ function GetDotNetInstallScript {
ExitWithExitCode $exit_code
}
fi
+
+ # Create timestamp file to track download time in seconds from epoch
+ date +%s > "$timestamp_file"
fi
# return value
_GetDotNetInstallScript="$install_script"
diff --git a/global.json b/global.json
index 0a5c669aa8c9..c080f987bbc9 100644
--- a/global.json
+++ b/global.json
@@ -1,12 +1,12 @@
{
"tools": {
- "dotnet": "10.0.100-preview.7.25380.108"
+ "dotnet": "10.0.100-rc.1.25413.112"
},
"msbuild-sdks": {
"MSBuild.Sdk.Extras": "3.0.44",
"Microsoft.Build.NoTargets": "3.7.0",
- "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25380.108",
- "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25380.108"
+ "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25413.112",
+ "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25413.112"
},
"sdk": {
"allowPrerelease": true
diff --git a/src/Controls/tests/Xaml.UnitTests/MSBuild/MSBuildTests.cs b/src/Controls/tests/Xaml.UnitTests/MSBuild/MSBuildTests.cs
index 3132516d3269..2491cd5d36c0 100644
--- a/src/Controls/tests/Xaml.UnitTests/MSBuild/MSBuildTests.cs
+++ b/src/Controls/tests/Xaml.UnitTests/MSBuild/MSBuildTests.cs
@@ -495,7 +495,7 @@ public void NoXamlFiles()
var projectFile = IOPath.Combine(tempDirectory, "test.csproj");
project.Save(projectFile);
var log = Build(projectFile, verbosity: "diagnostic");
- Assert.IsTrue(log.Contains("Target \"XamlC\" skipped", StringComparison.Ordinal), "XamlC should be skipped if there are no .xaml files.");
+ Assert.IsFalse(log.Contains("Building target \"XamlC\"", StringComparison.Ordinal), "XamlC should be skipped if there are no .xaml files.");
}
}
}