diff --git a/eng/Packages.props b/eng/Packages.props
index e9c77ff48f9..6f4d99b91a9 100644
--- a/eng/Packages.props
+++ b/eng/Packages.props
@@ -19,7 +19,6 @@
-
diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml
index 41e59576f29..64d04b3e036 100644
--- a/eng/SourceBuildPrebuiltBaseline.xml
+++ b/eng/SourceBuildPrebuiltBaseline.xml
@@ -8,14 +8,14 @@
-
+
-
+
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 33db6d8d5d9..e5e1c037839 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -53,9 +53,9 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
5535e31a712343a63f5d7d796cd874e563e5ac14
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 81cabf2857a01351e5ab578947c7403a5b128ad1
+ 5535e31a712343a63f5d7d796cd874e563e5ac14
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
@@ -65,10 +65,6 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
5535e31a712343a63f5d7d796cd874e563e5ac14
-
- https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 2aade6beb02ea367fd97c4070a4198802fe61c03
-
@@ -100,9 +96,9 @@
919d4dbfb0dffb35a702417e28ceea652d248bc6
-
+
https://github.com/dotnet/arcade
- c7a36e53f91e41943746f97a8c183549364c5092
+ ceb071c1060b8e6de404c065b4045442570caa18
-
+
\ No newline at end of file
diff --git a/eng/Versions.props b/eng/Versions.props
index 99ea81aa2c3..f3774bb5524 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -2,7 +2,7 @@
- 17.10.27
+ 17.10.29
release
17.8.3
15.1.0.0
@@ -27,7 +27,6 @@
8.0.0
8.0.0
- 8.0.1
$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1))
4.2.0-1.22102.8
- 8.0.0-beta.25208.7
+ 8.0.0-beta.24172.5
7.0.0
- 6.0.1
+ 6.0.0
4.10.0-3.24175.2
6.10.0-preview.2.81
6.0.0
@@ -73,4 +72,4 @@
$(VersionPrefix).$(FileVersion.Split('.')[3])
-
+
\ No newline at end of file
diff --git a/eng/cibuild_bootstrapped_msbuild.ps1 b/eng/cibuild_bootstrapped_msbuild.ps1
index 71cbf493110..d587daad534 100644
--- a/eng/cibuild_bootstrapped_msbuild.ps1
+++ b/eng/cibuild_bootstrapped_msbuild.ps1
@@ -65,65 +65,11 @@ try {
if ($buildStage1)
{
- & $PSScriptRoot\Common\Build.ps1 -restore -build -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties
+ & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties
}
KillProcessesFromRepo
- $bootstrapRoot = Join-Path $Stage1BinDir "bootstrap"
-
- # we need to do this to guarantee we have/know where dotnet.exe is installed
- $dotnetToolPath = InitializeDotNetCli $true
- $dotnetExePath = Join-Path $dotnetToolPath "dotnet.exe"
-
- if ($msbuildEngine -eq 'vs')
- {
- $buildToolPath = Join-Path $bootstrapRoot "net472\MSBuild\Current\Bin\MSBuild.exe"
- $buildToolCommand = "";
- $buildToolFramework = "net472"
- }
- else
- {
- $buildToolPath = $dotnetExePath
- $buildToolCommand = Join-Path $bootstrapRoot "net8.0\MSBuild\MSBuild.dll"
- $buildToolFramework = "net8.0"
- }
-
- # Use separate artifacts folder for stage 2
- # $env:ArtifactsDir = Join-Path $ArtifactsDir "2\"
-
- & $dotnetExePath build-server shutdown
-
- if ($buildStage1)
- {
- if (Test-Path $Stage1Dir)
- {
- Remove-Item -Force -Recurse $Stage1Dir
- }
-
- Move-Item -Path $ArtifactsDir -Destination $Stage1Dir -Force
- }
-
- $buildTool = @{ Path = $buildToolPath; Command = $buildToolCommand; Tool = $msbuildEngine; Framework = $buildToolFramework }
- $global:_BuildTool = $buildTool
-
- # Ensure that debug bits fail fast, rather than hanging waiting for a debugger attach.
- $env:MSBUILDDONOTLAUNCHDEBUGGER="true"
-
- # Opt into performance logging. https://github.com/dotnet/msbuild/issues/5900
- $env:DOTNET_PERFLOG_DIR=$PerfLogDir
-
- # When using bootstrapped MSBuild:
- # - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files)
- # - Do run tests
- # - Don't try to create a bootstrap deployment
- if ($onlyDocChanged) {
- & $PSScriptRoot\Common\Build.ps1 -restore -build -ci /p:CreateBootstrap=false /nr:false @properties
- }
- else {
- & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci /p:CreateBootstrap=false /nr:false @properties
- }
-
exit $lastExitCode
}
catch {
diff --git a/eng/cibuild_bootstrapped_msbuild.sh b/eng/cibuild_bootstrapped_msbuild.sh
index 06d4ba46e21..37683f4fb1a 100755
--- a/eng/cibuild_bootstrapped_msbuild.sh
+++ b/eng/cibuild_bootstrapped_msbuild.sh
@@ -51,7 +51,7 @@ InitializeDotNetCli true
if [[ $build_stage1 == true ]];
then
- /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --configuration $configuration /p:CreateBootstrap=true $properties $extra_properties || exit $?
+ /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --test --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties || exit $?
fi
bootstrapRoot="$Stage1Dir/bin/bootstrap"
@@ -77,15 +77,3 @@ export DOTNET_PERFLOG_DIR=$PerfLogDir
# Prior to 3.0, the Csc task uses this environment variable to decide whether to run
# a CLI host or directly execute the compiler.
export DOTNET_HOST_PATH="$_InitializeDotNetCli/dotnet"
-
-# When using bootstrapped MSBuild:
-# - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files)
-# - Do run tests
-# - Don't try to create a bootstrap deployment
-if [ $onlyDocChanged = 0 ]
-then
- . "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties
-
-else
- . "$ScriptRoot/common/build.sh" --restore --build --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties
-fi
diff --git a/eng/common/templates-official/job/source-build.yml b/eng/common/templates-official/job/source-build.yml
index f983033bb02..ae8f0c8d014 100644
--- a/eng/common/templates-official/job/source-build.yml
+++ b/eng/common/templates-official/job/source-build.yml
@@ -54,7 +54,7 @@ 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.1804.Amd64.Open
+ demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open
${{ 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')]
diff --git a/eng/common/templates/job/source-build.yml b/eng/common/templates/job/source-build.yml
index c0ff472b697..1c9de37a095 100644
--- a/eng/common/templates/job/source-build.yml
+++ b/eng/common/templates/job/source-build.yml
@@ -54,11 +54,11 @@ 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.1804.Amd64.Open
+ demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open
${{ 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')]
- demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
+ demands: ImageOverride -equals Build.Ubuntu.2004.Amd64
${{ if ne(parameters.platform.pool, '') }}:
pool: ${{ parameters.platform.pool }}
diff --git a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs
index 003bf735988..16a963128d0 100644
--- a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs
+++ b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs
@@ -412,7 +412,7 @@ public void LogErrorWhenBuildingVCProj()
/// However, it's a situation where the project author doesn't have control over the
/// property value and so he can't escape it himself.
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void PropertyOverridesContainSemicolon()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
diff --git a/src/Build.UnitTests/EscapingInProjects_Tests.cs b/src/Build.UnitTests/EscapingInProjects_Tests.cs
index 3df737c387a..cd7406fa9e3 100644
--- a/src/Build.UnitTests/EscapingInProjects_Tests.cs
+++ b/src/Build.UnitTests/EscapingInProjects_Tests.cs
@@ -957,7 +957,7 @@ public FullProjectsUsingMicrosoftCommonTargets(ITestOutputHelper output)
///
/// ESCAPING: Escaping in conditionals is broken.
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void SemicolonInConfiguration()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
@@ -1017,7 +1017,7 @@ public class Class1
///
/// ESCAPING: Escaping in conditionals is broken.
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void SemicolonInConfiguration_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
@@ -1087,7 +1087,7 @@ public class Class1
///
/// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void SemicolonInAssemblyName()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
@@ -1142,7 +1142,7 @@ public class Class1
///
/// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void SemicolonInAssemblyName_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
@@ -1207,7 +1207,7 @@ public class Class1
///
/// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void DollarSignInAssemblyName()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
@@ -1262,7 +1262,7 @@ public class Class1
///
/// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void DollarSignInAssemblyName_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
@@ -1327,7 +1327,7 @@ public class Class1
///
/// This is the case when one of the source code files in the project has a filename containing a semicolon.
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void SemicolonInSourceCodeFilename()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
@@ -1382,7 +1382,7 @@ public class Class1
///
/// This is the case when one of the source code files in the project has a filename containing a semicolon.
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void SemicolonInSourceCodeFilename_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
diff --git a/src/MSBuild/app.amd64.config b/src/MSBuild/app.amd64.config
index 712ebd985b7..a46ad099af0 100644
--- a/src/MSBuild/app.amd64.config
+++ b/src/MSBuild/app.amd64.config
@@ -49,8 +49,8 @@
-
-
+
+
@@ -134,8 +134,8 @@
-
-
+
+
@@ -229,4 +229,4 @@
-
+
\ No newline at end of file
diff --git a/src/MSBuild/app.config b/src/MSBuild/app.config
index de96d2730df..ab456039343 100644
--- a/src/MSBuild/app.config
+++ b/src/MSBuild/app.config
@@ -43,10 +43,6 @@
-
-
-
-
@@ -94,7 +90,7 @@
-
+
@@ -182,4 +178,4 @@
-
+
\ No newline at end of file
diff --git a/src/Tasks.UnitTests/MSBuild_Tests.cs b/src/Tasks.UnitTests/MSBuild_Tests.cs
index ad1ab81787a..4e4c0a0ef81 100644
--- a/src/Tasks.UnitTests/MSBuild_Tests.cs
+++ b/src/Tasks.UnitTests/MSBuild_Tests.cs
@@ -389,7 +389,7 @@ public void LogErrorWhenBuildingVCProj()
#if RUNTIME_TYPE_NETCORE
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/259")]
#else
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
#endif
public void PropertyOverridesContainSemicolon()
{
diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs
index 472d732a973..8f5a1bcd6bc 100644
--- a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs
+++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs
@@ -2566,7 +2566,7 @@ public References(ITestOutputHelper output)
_output = output;
}
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void DontLockP2PReferenceWhenResolvingSystemTypes()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
@@ -2741,7 +2741,7 @@ public class Class1
/// Assembly.LoadFile on that relative path, which fails (LoadFile requires an
/// absolute path). The fix was to use Assembly.LoadFrom instead.
///
- [Fact]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void ReferencedAssemblySpecifiedUsingRelativePath()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs
index a38fd0f4bbd..ba93bb422e4 100644
--- a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs
+++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs
@@ -3064,7 +3064,7 @@ public References(ITestOutputHelper output)
_output = output;
}
- [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void DontLockP2PReferenceWhenResolvingSystemTypes()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
@@ -3240,7 +3240,7 @@ public class Class1
/// which fails (LoadFile requires an absolute path). The fix was to use
/// Assembly.LoadFrom instead.
///
- [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")]
+ [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
public void ReferencedAssemblySpecifiedUsingRelativePath()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
diff --git a/src/Tasks/DownloadFile.cs b/src/Tasks/DownloadFile.cs
index efe54f514ca..b606f5c5284 100644
--- a/src/Tasks/DownloadFile.cs
+++ b/src/Tasks/DownloadFile.cs
@@ -168,7 +168,7 @@ private async Task DownloadAsync(Uri uri, CancellationToken cancellationToken)
#endif
}
- if (!TryGetFileName(response, out string filename))
+ if (!TryGetFileName(uri, out string filename))
{
Log.LogErrorWithCodeFromResources("DownloadFile.ErrorUnknownFileName", SourceUrl, nameof(DestinationFileName));
return;
@@ -306,25 +306,24 @@ private static bool IsRetriable(Exception exception, out Exception actualExcepti
///
/// Attempts to get the file name to use when downloading the file.
///
- /// The with information about the response.
+ /// The uri we sent request to.
/// Receives the name of the file.
/// true if a file name could be determined, otherwise false.
- private bool TryGetFileName(HttpResponseMessage response, out string filename)
+ private bool TryGetFileName(Uri requestUri, out string filename)
{
- if (response == null)
+ if (requestUri == null)
{
- throw new ArgumentNullException(nameof(response));
+ throw new ArgumentNullException(nameof(requestUri));
}
// Not all URIs contain a file name so users will have to specify one
// Example: http://www.download.com/file/1/
- filename = !String.IsNullOrWhiteSpace(DestinationFileName?.ItemSpec)
+ filename = !string.IsNullOrWhiteSpace(DestinationFileName?.ItemSpec)
? DestinationFileName.ItemSpec // Get the file name from what the user specified
- : response.Content?.Headers?.ContentDisposition?.FileName // Attempt to get the file name from the content-disposition header value
- ?? Path.GetFileName(response.RequestMessage.RequestUri.LocalPath); // Otherwise attempt to get a file name from the URI
+ : Path.GetFileName(requestUri.LocalPath); // Otherwise attempt to get a file name from the URI
- return !String.IsNullOrWhiteSpace(filename);
+ return !string.IsNullOrWhiteSpace(filename);
}
#if !NET6_0_OR_GREATER