Pull in msbuild fixes to eliminate source-build prebuilts (#16770)
This commit is contained in:
parent
27fd41cd74
commit
7571c67aa9
3 changed files with 93 additions and 1 deletions
|
@ -15,11 +15,22 @@
|
||||||
Building .NET from source depends on several archives, depending on the branch's current
|
Building .NET from source depends on several archives, depending on the branch's current
|
||||||
source-buildability status.
|
source-buildability status.
|
||||||
|
|
||||||
|
PrivateSourceBuiltArtifactsUrl is a tar.gz of .NET build outputs from a previous
|
||||||
|
build needed to build the current version of .NET. This is always defined, because .NET needs
|
||||||
|
to be bootstrappable at any point in time.
|
||||||
|
|
||||||
|
PrivateSourceBuiltPrebuiltsUrl is a tar.gz of assets downloaded from the internet
|
||||||
|
that are needed to build the current version of .NET. Early in the lifecycle of a .NET major
|
||||||
|
or minor release, prebuilts may be needed. When the release is mature, prebuilts are not
|
||||||
|
necessary, and this property is removed from the file.
|
||||||
|
|
||||||
|
PrivateSourceBuiltSdkUrl_<abc> is a tar.gz of the source build .NET SDK from the previous release
|
||||||
|
for a particular OS. It is used by CI to validate that the current release can be built with it.
|
||||||
|
|
||||||
These URLs can't be composed from their base URL and version as we read them from the
|
These URLs can't be composed from their base URL and version as we read them from the
|
||||||
prep.sh and pipeline scripts, outside of MSBuild.
|
prep.sh and pipeline scripts, outside of MSBuild.
|
||||||
-->
|
-->
|
||||||
<PrivateSourceBuiltArtifactsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.100-preview.5.23303.1.centos.8-x64.tar.gz</PrivateSourceBuiltArtifactsUrl>
|
<PrivateSourceBuiltArtifactsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.100-preview.5.23303.1.centos.8-x64.tar.gz</PrivateSourceBuiltArtifactsUrl>
|
||||||
<PrivateSourceBuiltPrebuiltsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Prebuilts.0.1.0-8.0.100-33.centos.8-x64.tar.gz</PrivateSourceBuiltPrebuiltsUrl>
|
|
||||||
<PrivateSourceBuiltSdkUrl_CentOS8Stream>https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.100-preview.5.23303.1-centos.8-x64.tar.gz</PrivateSourceBuiltSdkUrl_CentOS8Stream>
|
<PrivateSourceBuiltSdkUrl_CentOS8Stream>https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.100-preview.5.23303.1-centos.8-x64.tar.gz</PrivateSourceBuiltSdkUrl_CentOS8Stream>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Sigwald <raines@microsoft.com>
|
||||||
|
Date: Fri, 16 Jun 2023 09:41:18 -0500
|
||||||
|
Subject: [PATCH] Use NetCurrent to pull target .NET version from Arcade
|
||||||
|
|
||||||
|
This is required for source-build in .NET 8 now, so that we target 8
|
||||||
|
in the sourcebuilt builds, even when the product must target 7.
|
||||||
|
|
||||||
|
Backport: https://github.com/dotnet/msbuild/pull/8865
|
||||||
|
---
|
||||||
|
Directory.Build.props | 6 +++++-
|
||||||
|
src/Directory.Build.props | 4 ++--
|
||||||
|
2 files changed, 7 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Directory.Build.props b/Directory.Build.props
|
||||||
|
index ea3e227d6..ae75c21fe 100644
|
||||||
|
--- a/Directory.Build.props
|
||||||
|
+++ b/Directory.Build.props
|
||||||
|
@@ -24,8 +24,12 @@
|
||||||
|
scripts/Deploy-MSBuild.ps1
|
||||||
|
src/Framework/README.md
|
||||||
|
src/Utilities/README.md
|
||||||
|
+
|
||||||
|
+ Special-case while MSBuild uses Arcade 6 to build: 17.7 should
|
||||||
|
+ continue to target .NET 7, so bump a 6 here to 7.
|
||||||
|
-->
|
||||||
|
- <LatestDotNetCoreForMSBuild>net7.0</LatestDotNetCoreForMSBuild>
|
||||||
|
+ <LatestDotNetCoreForMSBuild>$(NetCurrent)</LatestDotNetCoreForMSBuild>
|
||||||
|
+ <LatestDotNetCoreForMSBuild Condition=" '$(NetCurrent)' == 'net6.0' ">net7.0</LatestDotNetCoreForMSBuild>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
|
||||||
|
index f6809d2e4..fd9dc2a59 100644
|
||||||
|
--- a/src/Directory.Build.props
|
||||||
|
+++ b/src/Directory.Build.props
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
<!-- Ensure that compiler errors emit full paths so that files
|
||||||
|
can be correctly annotated in GitHub. -->
|
||||||
|
<GenerateFullPaths>true</GenerateFullPaths>
|
||||||
|
-
|
||||||
|
+
|
||||||
|
<!-- https://github.com/NuGet/Home/issues/8684 -->
|
||||||
|
<NoWarn>$(NoWarn);NU5131</NoWarn>
|
||||||
|
|
||||||
|
@@ -36,7 +36,7 @@
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
|
||||||
|
<!-- Target frameworks for Exe and unit test projects (ie projects with runtime output) -->
|
||||||
|
- <RuntimeOutputTargetFrameworks>net7.0</RuntimeOutputTargetFrameworks>
|
||||||
|
+ <RuntimeOutputTargetFrameworks>$(LatestDotNetCoreForMSBuild)</RuntimeOutputTargetFrameworks>
|
||||||
|
<RuntimeOutputTargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(FullFrameworkTFM);$(RuntimeOutputTargetFrameworks)</RuntimeOutputTargetFrameworks>
|
||||||
|
<RuntimeOutputTargetFrameworks Condition="'$(MonoBuild)' == 'true'">$(FullFrameworkTFM)</RuntimeOutputTargetFrameworks>
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Rainer Sigwald <raines@microsoft.com>
|
||||||
|
Date: Wed, 21 Jun 2023 12:31:49 +0000
|
||||||
|
Subject: [PATCH] MSBuild: SourceBuild TF is NetCurrent
|
||||||
|
|
||||||
|
Backport: https://github.com/dotnet/sdk/pull/33188
|
||||||
|
---
|
||||||
|
.../Microsoft.DotNet.Cli.Utils.csproj | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
|
||||||
|
index 345b986a81..da79ba61e7 100644
|
||||||
|
--- a/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
|
||||||
|
+++ b/src/Cli/Microsoft.DotNet.Cli.Utils/Microsoft.DotNet.Cli.Utils.csproj
|
||||||
|
@@ -23,10 +23,10 @@
|
||||||
|
<Target Name="VerifyMSBuildDependency" BeforeTargets="ResolveAssemblyReferences" Condition="'$([MSBuild]::GetTargetFrameworkIdentifier($(TargetFramework)))' == '.NETCoreApp'">
|
||||||
|
<!-- We explicitly reference an older version of MSBuild here to support VS
|
||||||
|
for Mac and other VS scenarios. During source-build, we only have access to
|
||||||
|
- the latest version, which targets net7.0. -->
|
||||||
|
+ the latest version, which targets NetCurrent. -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<MSBuildPathInPackage>$(PkgMicrosoft_Build_Runtime)\contentFiles\any\net7.0\MSBuild.dll</MSBuildPathInPackage>
|
||||||
|
- <MSBuildPathInPackage Condition="'$(DotNetBuildFromSource)' == 'true'">$(PkgMicrosoft_Build_Runtime)\contentFiles\any\net7.0\MSBuild.dll</MSBuildPathInPackage>
|
||||||
|
+ <MSBuildPathInPackage Condition="'$(DotNetBuildFromSource)' == 'true'">$(PkgMicrosoft_Build_Runtime)\contentFiles\any\$(NetCurrent)\MSBuild.dll</MSBuildPathInPackage>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('$(MSBuildPathInPackage)')" Text="Something moved around in Microsoft.Build.Runtime, adjust code here accordingly." />
|
||||||
|
<ItemGroup>
|
Loading…
Add table
Reference in a new issue