Add runtime patches to eliminate pre-builts (#12318)

* Add runtime patches to eliminate pre-builts
This commit is contained in:
Eric Erhardt 2021-10-13 11:15:45 -05:00 committed by GitHub
parent e15beac0f6
commit fa1573136d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 457 additions and 0 deletions

View file

@ -0,0 +1,266 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Eric Erhardt <eric.erhardt@microsoft.com>
Date: Fri, 8 Oct 2021 19:55:43 -0500
Subject: [PATCH 1/2] Remove RefOnly dependency versions
This allows for source-build to replace these versions with source-built versions.
Note: Removing unnecessary MSBuild PackageReferences rather than updating the version of these unnecessary references.
See https://github.com/dotnet/source-build/issues/2421 for details.
Backported to runtime with https://github.com/dotnet/runtime/pull/60315.
---
eng/Versions.props | 14 ++++----------
...crosoft.DotNet.CoreSetup.Packaging.Tests.csproj | 2 +-
.../src/Microsoft.NETCore.Platforms.csproj | 5 ++---
.../AndroidAppBuilder/AndroidAppBuilder.csproj | 5 +----
src/tasks/AotCompilerTask/MonoAOTCompiler.csproj | 6 ++----
src/tasks/AppleAppBuilder/AppleAppBuilder.csproj | 5 +----
src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj | 7 ++-----
src/tasks/ILStripTask/ILStrip.csproj | 5 +----
.../JsonToItemsTaskFactory.csproj | 5 +----
.../RuntimeConfigParser/RuntimeConfigParser.csproj | 6 ++----
src/tasks/WasmAppBuilder/WasmAppBuilder.csproj | 5 +----
src/tasks/WasmBuildTasks/WasmBuildTasks.csproj | 5 +----
.../WorkloadBuildTasks/WorkloadBuildTasks.csproj | 5 +----
src/tasks/installer.tasks/installer.tasks.csproj | 6 +++---
14 files changed, 23 insertions(+), 58 deletions(-)
diff --git a/eng/Versions.props b/eng/Versions.props
index 94a3045e604..d2c0d141056 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -146,16 +146,10 @@
<XunitPerformanceApiPackageVersion>1.0.0-beta-build0015</XunitPerformanceApiPackageVersion>
<MicrosoftDiagnosticsToolsRuntimeClientVersion>1.0.4-preview6.19326.1</MicrosoftDiagnosticsToolsRuntimeClientVersion>
<MicrosoftDiagnosticsNETCoreClientVersion>0.2.61701</MicrosoftDiagnosticsNETCoreClientVersion>
- <!--
- These are used as reference assemblies only, so they must not take a ProdCon/source-build
- version. Insert "RefOnly" to avoid assignment via PVP.
- -->
- <RefOnlyMicrosoftBuildVersion>16.10.0</RefOnlyMicrosoftBuildVersion>
- <RefOnlyMicrosoftBuildFrameworkVersion>$(RefOnlyMicrosoftBuildVersion)</RefOnlyMicrosoftBuildFrameworkVersion>
- <RefOnlyMicrosoftBuildTasksCoreVersion>$(RefOnlyMicrosoftBuildVersion)</RefOnlyMicrosoftBuildTasksCoreVersion>
- <RefOnlyMicrosoftBuildUtilitiesCoreVersion>$(RefOnlyMicrosoftBuildVersion)</RefOnlyMicrosoftBuildUtilitiesCoreVersion>
- <RefOnlyNugetProjectModelVersion>5.8.0</RefOnlyNugetProjectModelVersion>
- <RefOnlyNugetPackagingVersion>5.8.0</RefOnlyNugetPackagingVersion>
+ <MicrosoftBuildVersion>16.10.0</MicrosoftBuildVersion>
+ <MicrosoftBuildTasksCoreVersion>$(MicrosoftBuildVersion)</MicrosoftBuildTasksCoreVersion>
+ <NugetProjectModelVersion>5.8.0</NugetProjectModelVersion>
+ <NugetPackagingVersion>5.8.0</NugetPackagingVersion>
<!-- Testing -->
<MicrosoftNETCoreCoreDisToolsVersion>1.0.1-prerelease-00006</MicrosoftNETCoreCoreDisToolsVersion>
<MicrosoftNETTestSdkVersion>16.9.0-preview-20201201-01</MicrosoftNETTestSdkVersion>
diff --git a/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj b/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj
index 8dcef20c22d..73a3fda2b55 100644
--- a/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj
+++ b/src/installer/tests/Microsoft.DotNet.CoreSetup.Packaging.Tests/Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj
@@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="NuGet.Packaging" Version="$(RefOnlyNugetPackagingVersion)" />
+ <PackageReference Include="NuGet.Packaging" Version="$(NugetPackagingVersion)" />
</ItemGroup>
<ItemGroup>
diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
index 3872248843d..4968a69f531 100644
--- a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
+++ b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
@@ -44,9 +44,8 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="NuGet.ProjectModel" Version="$(RefOnlyNugetProjectModelVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
+ <PackageReference Include="NuGet.ProjectModel" Version="$(NugetProjectModelVersion)" />
</ItemGroup>
<Target Name="GenerateRuntimeJson" Condition="'$(AdditionalRuntimeIdentifiers)' != ''" BeforeTargets="GenerateNuspec">
diff --git a/src/tasks/AndroidAppBuilder/AndroidAppBuilder.csproj b/src/tasks/AndroidAppBuilder/AndroidAppBuilder.csproj
index de6a04a95f0..139d5672ee0 100644
--- a/src/tasks/AndroidAppBuilder/AndroidAppBuilder.csproj
+++ b/src/tasks/AndroidAppBuilder/AndroidAppBuilder.csproj
@@ -11,10 +11,7 @@
<EmbeddedResource Include="Templates\*.*" />
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
</ItemGroup>
<ItemGroup>
<Compile Include="ApkBuilder.cs" />
diff --git a/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj b/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
index 840115ca71b..caf34787a2d 100644
--- a/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
+++ b/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
@@ -11,10 +11,8 @@
<NoWarn Condition="$(TargetFramework.StartsWith('net4'))">$(NoWarn),CS8604,CS8602</NoWarn>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
</ItemGroup>
<ItemGroup>
diff --git a/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj b/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj
index 7ceb4480e1c..e28dafef5d8 100644
--- a/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj
+++ b/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj
@@ -11,10 +11,7 @@
<EmbeddedResource Include="Templates\*.*" />
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
</ItemGroup>
<ItemGroup>
<Compile Include="AppleAppBuilder.cs" />
diff --git a/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj b/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj
index fcd5b20ab2c..ddddfadb593 100644
--- a/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj
+++ b/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj
@@ -9,11 +9,8 @@
<NoWarn Condition="$(TargetFramework.StartsWith('net4'))">$(NoWarn),CS8604,CS8602</NoWarn>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
- <PackageReference Include="NuGet.ProjectModel" Version="$(RefOnlyNugetProjectModelVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
+ <PackageReference Include="NuGet.ProjectModel" Version="$(NugetProjectModelVersion)" />
</ItemGroup>
<ItemGroup>
<Content Include="Microsoft.NET.CrossGen.targets">
diff --git a/src/tasks/ILStripTask/ILStrip.csproj b/src/tasks/ILStripTask/ILStrip.csproj
index bb9c41f692e..91b63a8c0a6 100644
--- a/src/tasks/ILStripTask/ILStrip.csproj
+++ b/src/tasks/ILStripTask/ILStrip.csproj
@@ -8,10 +8,7 @@
<RunAnalyzers>false</RunAnalyzers>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
<PackageReference Include="Microsoft.DotNet.CilStrip.Sources" Version="$(MicrosoftDotNetCilStripSourcesVersion)" />
</ItemGroup>
<ItemGroup>
diff --git a/src/tasks/JsonToItemsTaskFactory/JsonToItemsTaskFactory.csproj b/src/tasks/JsonToItemsTaskFactory/JsonToItemsTaskFactory.csproj
index 17799fbf657..579682fd84f 100644
--- a/src/tasks/JsonToItemsTaskFactory/JsonToItemsTaskFactory.csproj
+++ b/src/tasks/JsonToItemsTaskFactory/JsonToItemsTaskFactory.csproj
@@ -9,10 +9,7 @@
<!-- NoWarn Condition="$(TargetFramework.StartsWith('net4'))">$(NoWarn),CS8604,CS8602</NoWarn -->
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == '$(TargetFrameworkForNETFrameworkTasks)'">
diff --git a/src/tasks/RuntimeConfigParser/RuntimeConfigParser.csproj b/src/tasks/RuntimeConfigParser/RuntimeConfigParser.csproj
index c07e367def6..074f89c415a 100644
--- a/src/tasks/RuntimeConfigParser/RuntimeConfigParser.csproj
+++ b/src/tasks/RuntimeConfigParser/RuntimeConfigParser.csproj
@@ -10,10 +10,8 @@
<NoWarn Condition="$(TargetFramework.StartsWith('net4'))">$(NoWarn),CS8604,CS8602</NoWarn>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == '$(TargetFrameworkForNETCoreTasks)'">
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
diff --git a/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj b/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
index 22a530b7de3..358de5541e3 100644
--- a/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
+++ b/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
@@ -19,10 +19,7 @@
<Compile Include="..\Common\LogAsErrorException.cs" />
<!-- Don't include the msbuild assemblies with the task -->
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" IncludeAssets="compile" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" IncludeAssets="compile" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" IncludeAssets="compile" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" IncludeAssets="compile" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" IncludeAssets="compile" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == '$(TargetFrameworkForNETCoreTasks)'">
diff --git a/src/tasks/WasmBuildTasks/WasmBuildTasks.csproj b/src/tasks/WasmBuildTasks/WasmBuildTasks.csproj
index 0f8b6c93993..fd88116ca0a 100644
--- a/src/tasks/WasmBuildTasks/WasmBuildTasks.csproj
+++ b/src/tasks/WasmBuildTasks/WasmBuildTasks.csproj
@@ -6,10 +6,7 @@
<NoWarn>$(NoWarn),CA1050</NoWarn>
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
</ItemGroup>
<Target Name="PublishBuilder"
diff --git a/src/tasks/WorkloadBuildTasks/WorkloadBuildTasks.csproj b/src/tasks/WorkloadBuildTasks/WorkloadBuildTasks.csproj
index 537418ef31d..bec88895f4c 100644
--- a/src/tasks/WorkloadBuildTasks/WorkloadBuildTasks.csproj
+++ b/src/tasks/WorkloadBuildTasks/WorkloadBuildTasks.csproj
@@ -8,10 +8,7 @@
<ItemGroup>
<Compile Include="..\Common\Utils.cs" />
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Framework" Version="$(RefOnlyMicrosoftBuildFrameworkVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(RefOnlyMicrosoftBuildUtilitiesCoreVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
</ItemGroup>
<Target Name="PublishBuilder"
diff --git a/src/tasks/installer.tasks/installer.tasks.csproj b/src/tasks/installer.tasks/installer.tasks.csproj
index 45fe8463b5b..5cff57cdefb 100644
--- a/src/tasks/installer.tasks/installer.tasks.csproj
+++ b/src/tasks/installer.tasks/installer.tasks.csproj
@@ -7,12 +7,12 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(MicrosoftExtensionsDependencyModelVersion)" />
- <PackageReference Include="NuGet.ProjectModel" Version="$(RefOnlyNugetProjectModelVersion)" />
+ <PackageReference Include="NuGet.ProjectModel" Version="$(NugetProjectModelVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == '$(TargetFrameworkForNETCoreTasks)'">
- <PackageReference Include="Microsoft.Build" Version="$(RefOnlyMicrosoftBuildVersion)" />
- <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(RefOnlyMicrosoftBuildTasksCoreVersion)" />
+ <PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
+ <PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net461'">

View file

@ -0,0 +1,191 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Eric Erhardt <eric.erhardt@microsoft.com>
Date: Tue, 12 Oct 2021 19:40:56 +0000
Subject: [PATCH 2/2] Eliminate usages of pre-built packages during
source-build
* Don't build MSBuild tasks for netfx during source-build
* Don't build Microsoft.Windows.Compatibility during source-build
* Don't build test projects during source-build
* Don't restore Microsoft.DiaSymReader.Native
* Don't build source generators that target older Roslyn versions
* Don't build ILStripTask since it uses a Mono.Cecil "sources" NuGet package that isn't part of source-build
See https://github.com/dotnet/source-build/issues/2421 for details.
Backported to runtime with https://github.com/dotnet/runtime/pull/60315.
---
Directory.Build.props | 4 ++++
eng/Subsets.props | 2 +-
.../pkg/sfx/Microsoft.NETCore.App/Directory.Build.props | 2 +-
.../src/Microsoft.Extensions.Logging.Abstractions.csproj | 3 ++-
.../src/Microsoft.NETCore.Platforms.csproj | 4 ++--
src/libraries/System.Text.Json/src/System.Text.Json.csproj | 3 ++-
src/libraries/src.proj | 5 +++++
src/tasks/Directory.Build.props | 3 +++
src/tasks/installer.tasks/installer.tasks.csproj | 6 +++---
src/tasks/tasks.proj | 5 +++++
10 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index 58c7f876aea..c58a9d1a047 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -52,6 +52,10 @@
<NetCoreAppCurrentToolTargetFrameworkMoniker>$(NetCoreAppCurrentIdentifier),Version=v$(NetCoreAppToolCurrentVersion)</NetCoreAppCurrentToolTargetFrameworkMoniker>
<MicrosoftNetCoreAppFrameworkName>Microsoft.NETCore.App</MicrosoftNetCoreAppFrameworkName>
<NetCoreAppCurrentBrandName>.NET $(NetCoreAppCurrentVersion)</NetCoreAppCurrentBrandName>
+
+ <NetFrameworkToolCurrent>net472</NetFrameworkToolCurrent>
+ <!-- Don't build for NETFramework during source-build. -->
+ <NetFrameworkToolCurrent Condition="'$(DotNetBuildFromSource)' == 'true'"></NetFrameworkToolCurrent>
</PropertyGroup>
<PropertyGroup>
diff --git a/eng/Subsets.props b/eng/Subsets.props
index a7c5fb0e96e..b2292ac98e6 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -72,7 +72,7 @@
<DefaultHostSubsets Condition="'$(RuntimeFlavor)' != '$(PrimaryRuntimeFlavor)' and '$(TargetsMobile)' != 'true'">host.native</DefaultHostSubsets>
<DefaultPacksSubsets>packs.product</DefaultPacksSubsets>
- <DefaultPacksSubsets Condition="'$(BuildMonoAOTCrossCompilerOnly)' != 'true'">$(DefaultPacksSubsets)+packs.tests</DefaultPacksSubsets>
+ <DefaultPacksSubsets Condition="'$(BuildMonoAOTCrossCompilerOnly)' != 'true' and '$(DotNetBuildFromSource)' != 'true'">$(DefaultPacksSubsets)+packs.tests</DefaultPacksSubsets>
<DefaultPacksSubsets Condition="'$(DotNetBuildFromSource)' == 'true'">$(DefaultPacksSubsets)+packs.installers</DefaultPacksSubsets>
</PropertyGroup>
diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props
index 15d09343b05..09069935a00 100644
--- a/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props
+++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/Directory.Build.props
@@ -238,7 +238,7 @@
<ExcludeFromClosure Include="@(NetFxReference)" />
</ItemGroup>
- <ItemGroup>
+ <ItemGroup Condition="'$(DotNetBuildFromSource)' != 'true'">
<!-- Add a reference to Microsoft.DiaSymReader.Native if one does not already exist. -->
<PackageReference Include="Microsoft.DiaSymReader.Native"
Exclude="@(PackageReference)"
diff --git a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj
index 0d3728bcac0..c4c29046201 100644
--- a/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj
+++ b/src/libraries/Microsoft.Extensions.Logging.Abstractions/src/Microsoft.Extensions.Logging.Abstractions.csproj
@@ -36,7 +36,8 @@ Microsoft.Extensions.Logging.Abstractions.NullLogger</PackageDescription>
</ItemGroup>
<ItemGroup>
- <AnalyzerReference Include="..\gen\Microsoft.Extensions.Logging.Generators.Roslyn3.11.csproj" />
+ <AnalyzerReference Include="..\gen\Microsoft.Extensions.Logging.Generators.Roslyn3.11.csproj"
+ Condition="'$(DotNetBuildFromSource)' != 'true'" />
<AnalyzerReference Include="..\gen\Microsoft.Extensions.Logging.Generators.Roslyn4.0.csproj" />
</ItemGroup>
diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
index 4968a69f531..b941586e3d6 100644
--- a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
+++ b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>$(NetCoreAppToolCurrent);net472</TargetFrameworks>
+ <TargetFrameworks>$(NetCoreAppToolCurrent);$(NetFrameworkToolCurrent)</TargetFrameworks>
<!-- This project should not build against the live built .NETCoreApp targeting pack as it contributes to the build itself. -->
<UseLocalTargetingRuntimePack>false</UseLocalTargetingRuntimePack>
<PackageId>$(MSBuildProjectName)</PackageId>
@@ -21,7 +21,7 @@
<AdditionalRuntimeIdentifiers Condition="'$(DotNetBuildFromSource)' == 'true'">$(AdditionalRuntimeIdentifiers);$(OutputRID)</AdditionalRuntimeIdentifiers>
</PropertyGroup>
- <ItemGroup Condition="'$(TargetFramework)' == 'net472'">
+ <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<Compile Include="BuildTask.Desktop.cs" />
<Compile Include="AssemblyResolver.cs" />
<Compile Include="$(CoreLibSharedDir)System\Diagnostics\CodeAnalysis\UnconditionalSuppressMessageAttribute.cs" />
diff --git a/src/libraries/System.Text.Json/src/System.Text.Json.csproj b/src/libraries/System.Text.Json/src/System.Text.Json.csproj
index 4b7f0bc75ce..bba18ce24ed 100644
--- a/src/libraries/System.Text.Json/src/System.Text.Json.csproj
+++ b/src/libraries/System.Text.Json/src/System.Text.Json.csproj
@@ -351,7 +351,8 @@ System.Text.Json.Utf8JsonReader</PackageDescription>
<ProjectReference Include="$(LibrariesProjectRoot)Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj" />
</ItemGroup>
<ItemGroup>
- <AnalyzerReference Include="..\gen\System.Text.Json.SourceGeneration.Roslyn3.11.csproj" />
+ <AnalyzerReference Include="..\gen\System.Text.Json.SourceGeneration.Roslyn3.11.csproj"
+ Condition="'$(DotNetBuildFromSource)' != 'true'" />
<AnalyzerReference Include="..\gen\System.Text.Json.SourceGeneration.Roslyn4.0.csproj" />
</ItemGroup>
</Project>
diff --git a/src/libraries/src.proj b/src/libraries/src.proj
index 8b38ce5b449..4e0fea066f7 100644
--- a/src/libraries/src.proj
+++ b/src/libraries/src.proj
@@ -14,6 +14,11 @@
Microsoft.Windows.Compatibility\src\Microsoft.Windows.Compatibility.csproj"
Condition="'$(BuildAllConfigurations)' != 'true'" />
+ <!-- These projects do not need to be built during source-build. -->
+ <_allSrc Remove="Microsoft.Extensions.DependencyInjection.Specification.Tests\src\Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj;
+ Microsoft.Windows.Compatibility\src\Microsoft.Windows.Compatibility.csproj"
+ Condition="'$(DotNetBuildFromSource)' == 'true'" />
+
<NonNetCoreAppProject Include="@(_allSrc)"
Exclude="@(NetCoreAppLibrary->'%(Identity)\src\%(Identity).csproj');
$(MSBuildThisFileDirectory)Microsoft.VisualBasic.Core\src\Microsoft.VisualBasic.Core.vbproj;
diff --git a/src/tasks/Directory.Build.props b/src/tasks/Directory.Build.props
index 695833da3db..859bedc8f33 100644
--- a/src/tasks/Directory.Build.props
+++ b/src/tasks/Directory.Build.props
@@ -3,6 +3,9 @@
<PropertyGroup>
<TargetFrameworkForNETFrameworkTasks>net472</TargetFrameworkForNETFrameworkTasks>
+ <!-- Don't build for NETFramework during source-build. -->
+ <TargetFrameworkForNETFrameworkTasks Condition="'$(DotNetBuildFromSource)' == 'true'"></TargetFrameworkForNETFrameworkTasks>
+
<TargetFrameworkForNETCoreTasks>net6.0</TargetFrameworkForNETCoreTasks>
</PropertyGroup>
</Project>
diff --git a/src/tasks/installer.tasks/installer.tasks.csproj b/src/tasks/installer.tasks/installer.tasks.csproj
index 5cff57cdefb..98c370fdfed 100644
--- a/src/tasks/installer.tasks/installer.tasks.csproj
+++ b/src/tasks/installer.tasks/installer.tasks.csproj
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>$(TargetFrameworkForNETCoreTasks);net461</TargetFrameworks>
+ <TargetFrameworks>$(NetCoreAppToolCurrent);$(NetFrameworkToolCurrent)</TargetFrameworks>
<IsShipping>false</IsShipping>
<RunAnalyzers>false</RunAnalyzers>
</PropertyGroup>
@@ -10,12 +10,12 @@
<PackageReference Include="NuGet.ProjectModel" Version="$(NugetProjectModelVersion)" />
</ItemGroup>
- <ItemGroup Condition="'$(TargetFramework)' == '$(TargetFrameworkForNETCoreTasks)'">
+ <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
</ItemGroup>
- <ItemGroup Condition="'$(TargetFramework)' == 'net461'">
+ <ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
<Reference Include="Microsoft.Build.Framework" />
<Reference Include="Microsoft.Build.Utilities.v4.0" />
diff --git a/src/tasks/tasks.proj b/src/tasks/tasks.proj
index 9c62f8b76b9..03a049e1bf4 100644
--- a/src/tasks/tasks.proj
+++ b/src/tasks/tasks.proj
@@ -1,6 +1,11 @@
<Project Sdk="Microsoft.Build.Traversal">
<ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)**\*.csproj" />
+
+ <!-- These projects do not need to be built during source-build. -->
+ <!-- For example, they may take dependencies on pre-built packages that aren't build-from-source. -->
+ <ProjectReference Remove="ILStripTask\ILStrip.csproj"
+ Condition="'$(DotNetBuildFromSource)' == 'true'" />
</ItemGroup>
<!--