Skip to content

Commit 981a359

Browse files
authored
Merge branch 'release/8.0.4xx' into merge/release/8.0.1xx-to-release/8.0.4xx
2 parents 6912831 + 54a8f45 commit 981a359

File tree

555 files changed

+20991
-4866
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

555 files changed

+20991
-4866
lines changed

.vsts-ci.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ trigger:
33
branches:
44
include:
55
- main
6-
- release/8.0.1xx
6+
- release/8.0.4xx
77
- internal/release/*
88
- exp/*
99

@@ -118,12 +118,6 @@ extends:
118118
value: real
119119
- name: _Test
120120
value: ''
121-
- template: /eng/common/templates-official/job/source-build.yml@self
122-
parameters:
123-
enableInternalSources: true
124-
platform:
125-
name: 'Managed'
126-
container: sourceBuildManagedContainer
127121
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
128122
- template: /eng/build.yml@self
129123
parameters:
@@ -299,7 +293,6 @@ extends:
299293
publishAssetsImmediately: true
300294
dependsOn:
301295
- Windows_NT
302-
- Source_Build_Managed
303296
pool:
304297
name: $(DncEngInternalBuildPool)
305298
image: 1es-windows-2022

.vsts-pr.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ trigger:
33
branches:
44
include:
55
- main
6-
- release/8.0.1xx
6+
- release/8.0.4xx
77
- internal/release/*
88
- exp/*
99

@@ -85,12 +85,6 @@ stages:
8585
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
8686
_SignType: real
8787
_Test: ''
88-
- template: /eng/common/templates/job/source-build.yml
89-
parameters:
90-
enableInternalSources: true
91-
platform:
92-
name: 'Managed'
93-
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9'
9488
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
9589
- template: /eng/build-pr.yml
9690
parameters:
@@ -177,7 +171,6 @@ stages:
177171
publishAssetsImmediately: true
178172
dependsOn:
179173
- Windows_NT
180-
- Source_Build_Managed
181174
pool:
182175
name: $(DncEngInternalBuildPool)
183176
demands: ImageOverride -equals windows.vs2019.amd64

Directory.Build.props

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@
1414
<SdkTargetFramework>net8.0</SdkTargetFramework>
1515
<ToolsetTargetFramework>$(SdkTargetFramework)</ToolsetTargetFramework>
1616

17-
<!-- VS for Mac is retired so no need to target a downlevel .NET for its resolver. -->
18-
<ResolverTargetFramework>$(SdkTargetFramework)</ResolverTargetFramework>
17+
<!-- VS for Mac may run on a lower version of .NET than the SDK is targeting, but needs to load the resolvers. So the resolvers and dependencies
18+
may target a lower version of .NET -->
19+
<ResolverTargetFramework>net8.0</ResolverTargetFramework>
20+
<!-- Source build does not need to worry about running on VS for Mac -->
21+
<ResolverTargetFramework Condition="'$(DotNetBuildFromSource)' == 'true'">$(SdkTargetFramework)</ResolverTargetFramework>
1922

2023
<!-- NU1701 Disable implicit package target fallback, and disable warning for when we explicitly add it (currently needed for
2124
Microsoft.ApplicationInsights) -->
@@ -44,10 +47,20 @@
4447
<!-- <TestRunnerAdditionalArguments>-parallel none</TestRunnerAdditionalArguments> -->
4548
</PropertyGroup>
4649

50+
<!-- TODO: Re-enable NuGet Audit and fix alerts: https://github.com/dotnet/sdk/issues/51465 -->
51+
<PropertyGroup>
52+
<NuGetAudit>false</NuGetAudit>
53+
</PropertyGroup>
54+
4755
<PropertyGroup>
4856
<ImplicitUsings>enable</ImplicitUsings>
4957
</PropertyGroup>
5058

59+
<!-- TODO: Re-enable NuGet Audit and fix alerts: https://github.com/dotnet/sdk/issues/51466 -->
60+
<PropertyGroup>
61+
<NuGetAudit>false</NuGetAudit>
62+
</PropertyGroup>
63+
5164
<!-- Global usings -->
5265
<!-- See: https://learn.microsoft.com/dotnet/core/project-sdk/msbuild-props#using -->
5366
<ItemGroup>

Directory.Packages.props

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,7 @@
1010
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal" Version="$(MicrosoftAspNetCoreMvcRazorExtensionsToolingInternalPackageVersion)" />
1111
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="$(MicrosoftAspNetCoreTestHostPackageVersion)" />
1212
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="$(MicrosoftBclAsyncInterfacesPackageVersion)"/>
13-
<PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildPackageVersion)" />
14-
<PackageVersion Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildFrameworkPackageVersion)" />
15-
<PackageVersion Include="Microsoft.Build.Localization" Version="$(MicrosoftBuildLocalizationPackageVersion)" />
16-
<PackageVersion Include="Microsoft.Build.Locator" Version="$(MicrosoftBuildLocatorPackageVersion)" />
1713
<PackageVersion Include="Microsoft.Build.NuGetSdkResolver" Version="$(MicrosoftBuildNuGetSdkResolverPackageVersion)" />
18-
<PackageVersion Include="Microsoft.Build.Runtime" Version="$(MicrosoftBuildRuntimePackageVersion)" />
19-
<PackageVersion Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildPackageVersion)" />
20-
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildUtilitiesCorePackageVersion)" />
2114
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="$(MicrosoftCodeAnalysisCSharpPackageVersion)" />
2215
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeStyle" Version="$(MicrosoftNetCompilersToolsetPackageVersion)" />
2316
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Features" Version="$(MicrosoftCodeAnalysisCSharpFeaturesPackageVersion)" />
@@ -40,6 +33,7 @@
4033
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)"/>
4134
<PackageVersion Include="Microsoft.FSharp.Compiler" Version="$(MicrosoftFSharpCompilerPackageVersion)" />
4235
<PackageVersion Include="Microsoft.IO.Redist" Version="$(MicrosoftIORedistPackageVersion)" />
36+
<PackageVersion Include="Microsoft.Management.Infrastructure" Version="3.0.0" />
4337
<PackageVersion Include="Microsoft.NET.HostModel" Version="$(MicrosoftNETHostModelVersion)" />
4438
<PackageVersion Include="Microsoft.NET.Sdk.Razor.SourceGenerators.Transport" Version="$(MicrosoftNETSdkRazorSourceGeneratorsTransportPackageVersion)" />
4539
<PackageVersion Include="Microsoft.NETCore.DotNetHostResolver" Version="$(MicrosoftNETCoreDotNetHostResolverPackageVersion)" />
@@ -55,8 +49,8 @@
5549
<PackageVersion Include="Microsoft.VisualStudio.Setup.Configuration.Interop" Version="$(MicrosoftVisualStudioSetupConfigurationInteropVersion)" />
5650
<PackageVersion Include="Microsoft.Web.Deployment" Version="$(WebDeploymentPackageVersion)" />
5751
<PackageVersion Include="Microsoft.Web.Xdt" Version="$(MicrosoftWebXdtPackageVersion)" />
58-
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="$(MicrosoftWin32SystemEventsPackageVersion)" />
5952
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="$(MicrosoftWindowsCsWin32PackageVersion)" />
53+
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="$(MicrosoftWin32SystemEventsPackageVersion)" />
6054
<PackageVersion Include="Moq" Version="$(MoqPackageVersion)" />
6155
<PackageVersion Include="NETStandard.Library.NETFramework" Version="$(NETStandardLibraryNETFrameworkVersion)" />
6256
<PackageVersion Include="Newtonsoft.Json" Version="$(NewtonsoftJsonPackageVersion)" />
@@ -111,4 +105,36 @@
111105
<PackageVersion Include="Xunit.Combinatorial" Version="$(XunitCombinatorialVersion)" />
112106
<PackageVersion Include="xunit.console" Version="$(XUnitVersion)"/>
113107
</ItemGroup>
108+
109+
<!-- Use different versions of Microsoft.Build.* depending on whether the output will be used in
110+
.NET Framework (VS) or only in the .NET SDK.
111+
112+
Note: This is not abstracted in Versions.props because source-only
113+
modes will import a version override file after Versions.props. -->
114+
<ItemGroup Condition="'$(DotNetBuildSourceOnly)' == 'true' or '$(TargetFramework)' != 'net472'">
115+
<!-- MSBuild-y stuff that runs in the CLI can always reference the latest MSBuild since
116+
that is what will be packaged with the .NET SDK. -->
117+
<PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildPackageVersion)" />
118+
<PackageVersion Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildPackageVersion)" />
119+
<!-- Localization is the same between source-only and regular modes. Always taken from latest. Duplicated between the itemgroups for clarity. -->
120+
<PackageVersion Include="Microsoft.Build.Localization" Version="$(MicrosoftBuildLocalizationPackageVersion)" />
121+
<PackageVersion Include="Microsoft.Build.Locator" Version="$(MicrosoftBuildLocatorPackageVersion)" />
122+
<PackageVersion Include="Microsoft.Build.Runtime" Version="$(MicrosoftBuildPackageVersion)" />
123+
<PackageVersion Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildPackageVersion)" />
124+
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildPackageVersion)" />
125+
<PackageVersion Include="Microsoft.NET.StringTools" Version="$(MicrosoftBuildPackageVersion)" />
126+
</ItemGroup>
127+
<ItemGroup Condition="'$(DotNetBuildSourceOnly)' != 'true' and '$(TargetFramework)' == 'net472'">
128+
<!-- MSBuild-y stuff that runs in VS/MSBuild.exe should reference the lagging minimum version so
129+
it works in that slightly-older Visual Studio. -->
130+
<PackageVersion Include="Microsoft.Build" Version="$(MicrosoftBuildMinimumVersion)" />
131+
<PackageVersion Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildMinimumVersion)" />
132+
<!-- Localization is the same between source-only and regular modes. Always taken from latest. Duplicated between the itemgroups for clarity. -->
133+
<PackageVersion Include="Microsoft.Build.Localization" Version="$(MicrosoftBuildLocalizationPackageVersion)" />
134+
<PackageVersion Include="Microsoft.Build.Locator" Version="$(MicrosoftBuildLocatorPackageVersion)" />
135+
<PackageVersion Include="Microsoft.Build.Runtime" Version="$(MicrosoftBuildMinimumVersion)" />
136+
<PackageVersion Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildMinimumVersion)" />
137+
<PackageVersion Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildMinimumVersion)" />
138+
<PackageVersion Include="Microsoft.NET.StringTools" Version="$(MicrosoftNETStringToolsPackageVersion)" />
139+
</ItemGroup>
114140
</Project>

documentation/general/workloads/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ Other documentation for workloads is in this repo:
2020
- [Grouping multiple packs into one MSI](https://github.com/dotnet/sdk/issues/21741)
2121
- [Handling workload assets across major .NET versions](cross-version-workloads.md)
2222
- [Workload Clean Command](workload-clean.md)
23+
- [Workload MSI Installation Tests](/src/Tests/dotnet-MsiInstallation.Tests/README.md)

eng/SourceBuildPrebuiltBaseline.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,26 @@
3232
<UsagePattern IdentityGlob="System.Diagnostics.EventLog/*7.0.0*" />
3333
<UsagePattern IdentityGlob="System.Reflection.MetadataLoadContext/*7.0.0*" />
3434
<UsagePattern IdentityGlob="System.Security.Cryptography.ProtectedData/*7.0.0*" />
35+
36+
<!-- (Don't include these for 9.0) Allow 8.0.2xx and higher to use any version of these packages since source build
37+
is only applicable to 8.0.1xx. -->
38+
<UsagePattern IdentityGlob="Microsoft.DotNet.Arcade.Sdk/*8.0.0*" />
39+
<UsagePattern IdentityGlob="Microsoft.Extensions.DependencyInjection/*8.0.0*" />
40+
<UsagePattern IdentityGlob="Microsoft.Extensions.DependencyInjection.Abstractions/8.0.*" />
41+
<UsagePattern IdentityGlob="Microsoft.DotNet.SourceBuild.Tasks/*8.0.0*" />
42+
<UsagePattern IdentityGlob="Microsoft.TemplateEngine.Abstractions/8.0.*" />
43+
<UsagePattern IdentityGlob="Microsoft.TemplateEngine.Core/8.0.*" />
44+
<UsagePattern IdentityGlob="Microsoft.TemplateEngine.Core.Contracts/8.0.*" />
45+
<UsagePattern IdentityGlob="Microsoft.TemplateEngine.Edge/8.0.*" />
46+
<UsagePattern IdentityGlob="Microsoft.TemplateEngine.Orchestrator.RunnableProjects/8.0.*" />
47+
<UsagePattern IdentityGlob="Microsoft.TemplateEngine.Utils/8.0.*" />
48+
<UsagePattern IdentityGlob="Microsoft.TemplateSearch.Common/8.0.*" />
49+
<UsagePattern IdentityGlob="System.Drawing.Common/8.0.*" />
50+
<UsagePattern IdentityGlob="System.Reflection.Metadata/*8.0.0*" />
51+
<UsagePattern IdentityGlob="System.Threading.Tasks.Dataflow/*8.0.0*" />
52+
<UsagePattern IdentityGlob="Valleysoft.DockerCredsProvider/*" />
53+
54+
<!-- Transitive dependencies from roslyn -->
55+
<UsagePattern IdentityGlob="Microsoft.Extensions.Options/8.0.0" />
3556
</IgnorePatterns>
3657
</UsageData>

eng/build-pr.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,6 @@ parameters:
1515
timeoutInMinutes: 180
1616

1717
jobs:
18-
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/release/8.0.2xx'), not(contains(parameters.agentOs, 'TemplateEngine'))) }}:
19-
- template: /eng/common/templates/job/onelocbuild.yml
20-
parameters:
21-
CreatePr: true
22-
LclSource: lclFilesfromPackage
23-
LclPackageId: 'LCL-JUNO-PROD-DOTNETSDK'
24-
MirrorBranch: release/8.0.2xx
25-
MirrorRepo: sdk
26-
2718
- ${{ if not(contains(parameters.agentOs, 'TemplateEngine')) }}:
2819
- template: /eng/common/templates/job/job.yml
2920
parameters:
@@ -190,6 +181,7 @@ jobs:
190181
log/$(_BuildConfig)/**/*
191182
TestResults/$(_BuildConfig)/**/*
192183
SymStore/$(_BuildConfig)/**/*
184+
tmp/$(_BuildConfig)/**/*.binlog
193185
TargetFolder: '$(Build.ArtifactStagingDirectory)'
194186
continueOnError: true
195187
condition: always()
@@ -321,6 +313,7 @@ jobs:
321313
log/$(_BuildConfig)/**/*
322314
TestResults/$(_BuildConfig)/**/*
323315
SymStore/$(_BuildConfig)/**/*
316+
tmp/$(_BuildConfig)/**/*.binlog
324317
TargetFolder: '$(Build.ArtifactStagingDirectory)'
325318
continueOnError: true
326319
condition: always()
@@ -463,6 +456,7 @@ jobs:
463456
log/$(_BuildConfig)/**/*
464457
TestResults/$(_BuildConfig)/**/*
465458
SymStore/$(_BuildConfig)/**/*
459+
tmp/$(_BuildConfig)/**/*.binlog
466460
TargetFolder: '$(Build.ArtifactStagingDirectory)'
467461
continueOnError: true
468462
condition: always()

eng/build.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ parameters:
1515
timeoutInMinutes: 180
1616

1717
jobs:
18-
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/release/8.0.2xx'), not(contains(parameters.agentOs, 'TemplateEngine'))) }}:
18+
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/release/9.0.1xx'), not(contains(parameters.agentOs, 'TemplateEngine'))) }}:
1919
- template: /eng/common/templates-official/job/onelocbuild.yml@self
2020
parameters:
2121
CreatePr: true
2222
LclSource: lclFilesfromPackage
2323
LclPackageId: 'LCL-JUNO-PROD-DOTNETSDK'
24-
MirrorBranch: release/8.0.2xx
24+
MirrorBranch: release/9.0.1xx
2525
MirrorRepo: sdk
2626

2727
- ${{ if not(contains(parameters.agentOs, 'TemplateEngine')) }}:
@@ -201,6 +201,7 @@ jobs:
201201
log/$(_BuildConfig)/**/*
202202
TestResults/$(_BuildConfig)/**/*
203203
SymStore/$(_BuildConfig)/**/*
204+
tmp/$(_BuildConfig)/**/*.binlog
204205
TargetFolder: '$(Build.ArtifactStagingDirectory)'
205206
continueOnError: true
206207
condition: always()
@@ -253,7 +254,6 @@ jobs:
253254
- name: _HelixApiToken
254255
value: $(HelixApiAccessToken)
255256
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
256-
- group: dotnet-benchview
257257
- name: _OfficialBuildIdArgs
258258
value: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
259259
- name: _SignArgs
@@ -346,6 +346,7 @@ jobs:
346346
log/$(_BuildConfig)/**/*
347347
TestResults/$(_BuildConfig)/**/*
348348
SymStore/$(_BuildConfig)/**/*
349+
tmp/$(_BuildConfig)/**/*.binlog
349350
TargetFolder: '$(Build.ArtifactStagingDirectory)'
350351
continueOnError: true
351352
condition: always()
@@ -398,7 +399,6 @@ jobs:
398399
- name: _HelixApiToken
399400
value: $(HelixApiAccessToken)
400401
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
401-
- group: dotnet-benchview
402402
- name: _OfficialBuildIdArgs
403403
value: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
404404
- name: _SignArgs
@@ -502,6 +502,7 @@ jobs:
502502
log/$(_BuildConfig)/**/*
503503
TestResults/$(_BuildConfig)/**/*
504504
SymStore/$(_BuildConfig)/**/*
505+
tmp/$(_BuildConfig)/**/*.binlog
505506
TargetFolder: '$(Build.ArtifactStagingDirectory)'
506507
continueOnError: true
507508
condition: always()

sdk.sln

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.NET.Build.Contain
473473
EndProject
474474
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.NET.Build.Containers.UnitTests", "src\Tests\Microsoft.NET.Build.Containers.UnitTests\Microsoft.NET.Build.Containers.UnitTests.csproj", "{E54506B8-0B81-4FC4-99B5-5C67E19D4B09}"
475475
EndProject
476-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDDLTests", "src\Tests\SDDLTests\SDDLTests.csproj", "{FEA8B7B5-901B-4A3A-948F-7E5F54F09FF5}"
476+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SDDLTests", "src\Tests\SDDLTests\SDDLTests.csproj", "{FEA8B7B5-901B-4A3A-948F-7E5F54F09FF5}"
477+
EndProject
478+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnet-MsiInstallation.Tests", "src\Tests\dotnet-MsiInstallation.Tests\dotnet-MsiInstallation.Tests.csproj", "{36975025-857B-45F0-AB39-904B521A6713}"
477479
EndProject
478480
Global
479481
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -893,6 +895,10 @@ Global
893895
{FEA8B7B5-901B-4A3A-948F-7E5F54F09FF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
894896
{FEA8B7B5-901B-4A3A-948F-7E5F54F09FF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
895897
{FEA8B7B5-901B-4A3A-948F-7E5F54F09FF5}.Release|Any CPU.Build.0 = Release|Any CPU
898+
{36975025-857B-45F0-AB39-904B521A6713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
899+
{36975025-857B-45F0-AB39-904B521A6713}.Debug|Any CPU.Build.0 = Debug|Any CPU
900+
{36975025-857B-45F0-AB39-904B521A6713}.Release|Any CPU.ActiveCfg = Release|Any CPU
901+
{36975025-857B-45F0-AB39-904B521A6713}.Release|Any CPU.Build.0 = Release|Any CPU
896902
EndGlobalSection
897903
GlobalSection(SolutionProperties) = preSolution
898904
HideSolutionNode = FALSE
@@ -1056,6 +1062,7 @@ Global
10561062
{7DCA2BEC-B1E1-4F2B-952A-A26B5110FDA5} = {580D1AE7-AA8F-4912-8B76-105594E00B3B}
10571063
{E54506B8-0B81-4FC4-99B5-5C67E19D4B09} = {580D1AE7-AA8F-4912-8B76-105594E00B3B}
10581064
{FEA8B7B5-901B-4A3A-948F-7E5F54F09FF5} = {580D1AE7-AA8F-4912-8B76-105594E00B3B}
1065+
{36975025-857B-45F0-AB39-904B521A6713} = {580D1AE7-AA8F-4912-8B76-105594E00B3B}
10591066
EndGlobalSection
10601067
GlobalSection(ExtensibilityGlobals) = postSolution
10611068
SolutionGuid = {FB8F26CE-4DE6-433F-B32A-79183020BBD6}

src/ApiCompat/Microsoft.DotNet.ApiCompat.Task/Microsoft.DotNet.ApiCompat.Task.csproj

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@
4343
<ProjectReference Include="..\Microsoft.DotNet.ApiCompatibility\Microsoft.DotNet.ApiCompatibility.csproj" />
4444
<!-- We carry NuGet as part of the package in case the package is used with an older SDKs or with full framework MSBuild. -->
4545
<PackageReference Include="NuGet.Packaging" PrivateAssets="All" Publish="true"/>
46+
<!-- The ApiCompatibility/PackageValidation stuff depends on CodeAnalysis.CSharp at the version that is
47+
currently built into the SDK. That may in turn have transitive dependencies on System.Collections.Immutable
48+
and System.Reflection.Metadata, which could bump the versions of those packages past the versions guaranteed
49+
by the .NET Framework MSBuild in the minimum supported VS environment. Reference CA.C# here with PrivateAssets
50+
to prevent flowing the higher dependencies to the main SDK tasks assembly. This would be unsafe in general,
51+
but the only reason that Microsoft.NET.Build.Tasks.csproj references this project is for _deployment_, and
52+
it should never share types with this assembly. Within this task, the RoslynResolver should provide a good
53+
closure of references. -->
54+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" ExcludeAssets="Runtime" PrivateAssets="all" />
4655
</ItemGroup>
4756

4857
<ItemGroup>

0 commit comments

Comments
 (0)