Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions .vsts-dotnet-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ jobs:
inputs:
filename: 'eng/cibuild_bootstrapped_msbuild.cmd'
arguments: -onlyDocChanged $(onlyDocChanged)
env:
ForceUseXCopyMSBuild: 1
- task: PublishTestResults@2
displayName: Publish .NET Framework Test Results
inputs:
Expand Down
2 changes: 1 addition & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the MIT license. See License.txt in the project root for full license information. -->
<Project>
<PropertyGroup>
<VersionPrefix>17.10.35</VersionPrefix>
<VersionPrefix>17.10.36</VersionPrefix>
<DotNetFinalVersionKind>release</DotNetFinalVersionKind>
<PackageValidationBaselineVersion>17.8.3</PackageValidationBaselineVersion>
<AssemblyVersion>15.1.0.0</AssemblyVersion>
Expand Down
56 changes: 55 additions & 1 deletion eng/cibuild_bootstrapped_msbuild.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,65 @@ try {

if ($buildStage1)
{
& $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties
& $PSScriptRoot\Common\Build.ps1 -restore -build -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 {
Expand Down
14 changes: 13 additions & 1 deletion eng/cibuild_bootstrapped_msbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ InitializeDotNetCli true

if [[ $build_stage1 == true ]];
then
/bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --test --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties || exit $?
/bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --configuration $configuration /p:CreateBootstrap=true $properties $extra_properties || exit $?
fi

bootstrapRoot="$Stage1Dir/bin/bootstrap"
Expand All @@ -77,3 +77,15 @@ 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
2 changes: 1 addition & 1 deletion src/Build.UnitTests/BackEnd/MSBuild_Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void PropertyOverridesContainSemicolon()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
Expand Down
16 changes: 8 additions & 8 deletions src/Build.UnitTests/EscapingInProjects_Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -957,7 +957,7 @@ public FullProjectsUsingMicrosoftCommonTargets(ITestOutputHelper output)
/// <summary>
/// ESCAPING: Escaping in conditionals is broken.
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void SemicolonInConfiguration()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
Expand Down Expand Up @@ -1017,7 +1017,7 @@ public class Class1
/// <summary>
/// ESCAPING: Escaping in conditionals is broken.
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void SemicolonInConfiguration_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
Expand Down Expand Up @@ -1087,7 +1087,7 @@ public class Class1
/// <summary>
/// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void SemicolonInAssemblyName()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
Expand Down Expand Up @@ -1142,7 +1142,7 @@ public class Class1
/// <summary>
/// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void SemicolonInAssemblyName_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
Expand Down Expand Up @@ -1207,7 +1207,7 @@ public class Class1
/// <summary>
/// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void DollarSignInAssemblyName()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
Expand Down Expand Up @@ -1262,7 +1262,7 @@ public class Class1
/// <summary>
/// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void DollarSignInAssemblyName_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
Expand Down Expand Up @@ -1327,7 +1327,7 @@ public class Class1
/// <summary>
/// This is the case when one of the source code files in the project has a filename containing a semicolon.
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void SemicolonInSourceCodeFilename()
{
ObjectModelHelpers.DeleteTempProjectDirectory();
Expand Down Expand Up @@ -1382,7 +1382,7 @@ public class Class1
/// <summary>
/// This is the case when one of the source code files in the project has a filename containing a semicolon.
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void SemicolonInSourceCodeFilename_UsingTaskHost()
{
string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC");
Expand Down
2 changes: 1 addition & 1 deletion src/Tasks.UnitTests/MSBuild_Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ public void LogErrorWhenBuildingVCProj()
#if RUNTIME_TYPE_NETCORE
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/259")]
#else
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
#endif
public void PropertyOverridesContainSemicolon()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2566,7 +2566,7 @@ public References(ITestOutputHelper output)
_output = output;
}

[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void DontLockP2PReferenceWhenResolvingSystemTypes()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
Expand Down Expand Up @@ -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.
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[Fact]
public void ReferencedAssemblySpecifiedUsingRelativePath()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3064,7 +3064,7 @@ public References(ITestOutputHelper output)
_output = output;
}

[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")]
public void DontLockP2PReferenceWhenResolvingSystemTypes()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
Expand Down Expand Up @@ -3240,7 +3240,7 @@ public class Class1
/// which fails (LoadFile requires an absolute path). The fix was to use
/// Assembly.LoadFrom instead.
/// </summary>
[Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")]
[WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")]
public void ReferencedAssemblySpecifiedUsingRelativePath()
{
// This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting
Expand Down