Merge pull request #9532 from dotnet-maestro-bot/merge/vs17.9-to-main

[automated] Merge branch 'vs17.9' => 'main'
This commit is contained in:
AR-May 2023-12-15 10:47:31 +01:00 коммит произвёл GitHub
Родитель 125647ba65 b0e2b79230
Коммит caa5b7d900
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
27 изменённых файлов: 102 добавлений и 37 удалений

14
.github/CODEOWNERS поставляемый Normal file
Просмотреть файл

@ -0,0 +1,14 @@
# Users referenced in this file will automatically be requested as reviewers for PRs that modify the given paths.
# See https://help.github.com/articles/about-code-owners/
/eng/SourceBuild* @dotnet/source-build-internal
/eng/ @dotnet/kitten
/.github/ @dotnet/kitten
/global.json @dotnet/kitten
/.exp-insertions.yml @dotnet/kitten
/.opt-prof.yml @dotnet/kitten
/.vsts-dotnet-ci.yml @dotnet/kitten
/.vsts-dotnet.yml @dotnet/kitten
/NuGet.config @dotnet/kitten
/Directory.Build* @dotnet/kitten
/.git* @dotnet/kitten

Просмотреть файл

@ -94,8 +94,6 @@ stages:
value: 'int.main'
- name: VisualStudio.DropName
value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)
- name: NUGET_PACKAGES
value:
steps:
- task: NuGetToolInstaller@0

Просмотреть файл

@ -29,6 +29,7 @@ A wave of features is set to "rotate out" (i.e. become standard functionality) t
- [Cache SDK resolver data process-wide](https://github.com/dotnet/msbuild/pull/9335)
- [Target parameters will be unquoted](https://github.com/dotnet/msbuild/pull/9452), meaning the ';' symbol in the parameter target name will always be treated as separator
- [Change Version switch output to finish with a newline](https://github.com/dotnet/msbuild/pull/9485)
- [Load Microsoft.DotNet.MSBuildSdkResolver into default load context (MSBuild.exe only)](https://github.com/dotnet/msbuild/pull/9439)
### 17.8
- [[RAR] Don't do I/O on SDK-provided references](https://github.com/dotnet/msbuild/pull/8688)

Просмотреть файл

@ -58,14 +58,14 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23463.1">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23580.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>1d451c32dda2314c721adbf8829e1c0cd4e681ff</Sha>
<Sha>efc3da96e5ac110513e92ebd9ef87c73f44d8540</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23426.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23475.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/xliff-tasks</Uri>
<Sha>194f32828726c3f1f63f79f3dc09b9e99c157b11</Sha>
<Sha>73f0850939d96131c28cf6ea6ee5aacb4da0083a</Sha>
<SourceBuild RepoName="xliff-tasks" ManagedOnly="true" />
</Dependency>
<Dependency Name="NuGet.Build.Tasks" Version="6.9.0-preview.1.50">
@ -77,9 +77,9 @@
<Sha>8e4ab418a8f9703f7dfe3a66adc9b3876ef9382f</Sha>
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="8.0.0-beta.23463.1">
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="8.0.0-beta.23580.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>1d451c32dda2314c721adbf8829e1c0cd4e681ff</Sha>
<Sha>efc3da96e5ac110513e92ebd9ef87c73f44d8540</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>

Просмотреть файл

@ -47,7 +47,7 @@
Otherwise, this version of dotnet will not be installed and the build will error out. -->
<DotNetCliVersion>$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1))</DotNetCliVersion>
<MicrosoftCodeAnalysisCollectionsVersion>4.2.0-1.22102.8</MicrosoftCodeAnalysisCollectionsVersion>
<MicrosoftDotNetXUnitExtensionsVersion>8.0.0-beta.23463.1</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftDotNetXUnitExtensionsVersion>8.0.0-beta.23580.1</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftExtensionsDependencyModelVersion>7.0.0</MicrosoftExtensionsDependencyModelVersion>
<MicrosoftIORedistVersion>6.0.0</MicrosoftIORedistVersion>
<MicrosoftNetCompilersToolsetVersion>4.9.0-3.23608.9</MicrosoftNetCompilersToolsetVersion>

2
eng/common/darc-init.ps1 сгенерированный поставляемый
Просмотреть файл

@ -1,6 +1,6 @@
param (
$darcVersion = $null,
$versionEndpoint = 'https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16',
$versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16',
$verbosity = 'minimal',
$toolpath = $null
)

2
eng/common/darc-init.sh сгенерированный поставляемый
Просмотреть файл

@ -2,7 +2,7 @@
source="${BASH_SOURCE[0]}"
darcVersion=''
versionEndpoint='https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16'
versionEndpoint='https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16'
verbosity='minimal'
while [[ $# > 0 ]]; do

2
eng/common/post-build/add-build-to-channel.ps1 сгенерированный поставляемый
Просмотреть файл

@ -2,7 +2,7 @@ param(
[Parameter(Mandatory=$true)][int] $BuildId,
[Parameter(Mandatory=$true)][int] $ChannelId,
[Parameter(Mandatory=$true)][string] $MaestroApiAccessToken,
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com',
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
[Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16'
)

2
eng/common/post-build/publish-using-darc.ps1 сгенерированный поставляемый
Просмотреть файл

@ -3,7 +3,7 @@ param(
[Parameter(Mandatory=$true)][int] $PublishingInfraVersion,
[Parameter(Mandatory=$true)][string] $AzdoToken,
[Parameter(Mandatory=$true)][string] $MaestroToken,
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com',
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
[Parameter(Mandatory=$true)][string] $WaitPublishingFinish,
[Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters,
[Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters

2
eng/common/post-build/trigger-subscriptions.ps1 сгенерированный поставляемый
Просмотреть файл

@ -2,7 +2,7 @@ param(
[Parameter(Mandatory=$true)][string] $SourceRepo,
[Parameter(Mandatory=$true)][int] $ChannelId,
[Parameter(Mandatory=$true)][string] $MaestroApiAccessToken,
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com',
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
[Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16'
)

2
eng/common/sdk-task.ps1 сгенерированный поставляемый
Просмотреть файл

@ -64,7 +64,7 @@ try {
$GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty
}
if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) {
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.8.1-2" -MemberType NoteProperty
}
if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
$xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true

2
eng/common/templates/job/publish-build-assets.yml сгенерированный поставляемый
Просмотреть файл

@ -81,7 +81,7 @@ jobs:
arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
/p:MaestroApiEndpoint=https://maestro.dot.net
/p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
/p:OfficialBuildId=$(Build.BuildNumber)
condition: ${{ parameters.condition }}

2
eng/common/templates/post-build/common-variables.yml сгенерированный поставляемый
Просмотреть файл

@ -7,7 +7,7 @@ variables:
# Default Maestro++ API Endpoint and API Version
- name: MaestroApiEndPoint
value: "https://maestro-prod.westus2.cloudapp.azure.com"
value: "https://maestro.dot.net"
- name: MaestroApiAccessToken
value: $(MaestroAccessToken)
- name: MaestroApiVersion

6
eng/common/tools.ps1 сгенерированный поставляемый
Просмотреть файл

@ -379,13 +379,13 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
}
# Minimum VS version to require.
$vsMinVersionReqdStr = '17.6'
$vsMinVersionReqdStr = '17.7'
$vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr)
# If the version of msbuild is going to be xcopied,
# use this version. Version matches a package here:
# https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2
$defaultXCopyMSBuildVersion = '17.6.0-2'
# https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.8.1-2
$defaultXCopyMSBuildVersion = '17.8.1-2'
if (!$vsRequirements) {
if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {

Просмотреть файл

@ -3,13 +3,13 @@
"allowPrerelease": true
},
"tools": {
"dotnet": "8.0.100-rc.1.23463.5",
"dotnet": "8.0.100",
"vs": {
"version": "17.7.0"
"version": "17.8.0"
},
"xcopy-msbuild": "17.7.4"
"xcopy-msbuild": "17.8.1-2"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23463.1"
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23580.1"
}
}

Просмотреть файл

@ -226,6 +226,20 @@ namespace Microsoft.Build.BackEnd.SdkResolution
protected virtual Assembly LoadResolverAssembly(string resolverPath)
{
#if !FEATURE_ASSEMBLYLOADCONTEXT
if (ChangeWaves.AreFeaturesEnabled(ChangeWaves.Wave17_10))
{
string resolverFileName = Path.GetFileNameWithoutExtension(resolverPath);
if (resolverFileName.Equals("Microsoft.DotNet.MSBuildSdkResolver", StringComparison.OrdinalIgnoreCase))
{
// This will load the resolver assembly into the default load context if possible, and fall back to LoadFrom context.
// We very much prefer the default load context because it allows native images to be used by the CLR, improving startup perf.
AssemblyName assemblyName = new AssemblyName(resolverFileName)
{
CodeBase = resolverPath,
};
return Assembly.Load(assemblyName);
}
}
return Assembly.LoadFrom(resolverPath);
#else
return s_loader.LoadFromPath(resolverPath);

Просмотреть файл

@ -642,7 +642,7 @@ namespace Microsoft.Build.Logging
fields.Arguments)
{
ProjectFile = fields.ProjectFile,
ExtendedMetadata = fields.Extended.ExtendedMetadata,
ExtendedMetadata = fields.Extended.ExtendedMetadataAsDictionary,
ExtendedData = fields.Extended.ExtendedData,
};
}
@ -694,7 +694,7 @@ namespace Microsoft.Build.Logging
fields.Arguments)
{
ProjectFile = fields.ProjectFile,
ExtendedMetadata = fields.Extended.ExtendedMetadata,
ExtendedMetadata = fields.Extended.ExtendedMetadataAsDictionary,
ExtendedData = fields.Extended.ExtendedData,
};
}
@ -747,7 +747,7 @@ namespace Microsoft.Build.Logging
fields.Arguments)
{
ProjectFile = fields.ProjectFile,
ExtendedMetadata = fields.Extended?.ExtendedMetadata,
ExtendedMetadata = fields.Extended?.ExtendedMetadataAsDictionary,
ExtendedData = fields.Extended?.ExtendedData,
};
}
@ -836,7 +836,7 @@ namespace Microsoft.Build.Logging
fields.Arguments)
{
ProjectFile = fields.ProjectFile,
ExtendedMetadata = fields.Extended?.ExtendedMetadata,
ExtendedMetadata = fields.Extended?.ExtendedMetadataAsDictionary,
ExtendedData = fields.Extended?.ExtendedData,
};
}

Просмотреть файл

@ -17,4 +17,14 @@ internal class ExtendedDataFields
public string ExtendedType { get; }
public IDictionary<string, string?>? ExtendedMetadata { get; }
public string? ExtendedData { get; }
/// <summary>
/// We need to this for Extended event args have Dictionary as ExtendedMetadata.
/// </summary>
public Dictionary<string, string?>? ExtendedMetadataAsDictionary =>
ExtendedMetadata == null ?
null :
ExtendedMetadata is Dictionary<string, string?> asDictionary ?
asDictionary :
new Dictionary<string, string?>(ExtendedMetadata);
}

Просмотреть файл

@ -18,7 +18,7 @@ public sealed class ExtendedBuildErrorEventArgs : BuildErrorEventArgs, IExtended
public string ExtendedType { get; set; }
/// <inheritdoc />
public IDictionary<string, string?>? ExtendedMetadata { get; set; }
public Dictionary<string, string?>? ExtendedMetadata { get; set; }
/// <inheritdoc />
public string? ExtendedData { get; set; }

Просмотреть файл

@ -18,7 +18,7 @@ public sealed class ExtendedBuildMessageEventArgs : BuildMessageEventArgs, IExte
public string ExtendedType { get; set; }
/// <inheritdoc />
public IDictionary<string, string?>? ExtendedMetadata { get; set; }
public Dictionary<string, string?>? ExtendedMetadata { get; set; }
/// <inheritdoc />
public string? ExtendedData { get; set; }

Просмотреть файл

@ -18,7 +18,7 @@ public sealed class ExtendedBuildWarningEventArgs : BuildWarningEventArgs, IExte
public string ExtendedType { get; set; }
/// <inheritdoc />
public IDictionary<string, string?>? ExtendedMetadata { get; set; }
public Dictionary<string, string?>? ExtendedMetadata { get; set; }
/// <inheritdoc />
public string? ExtendedData { get; set; }

Просмотреть файл

@ -18,7 +18,7 @@ public sealed class ExtendedCriticalBuildMessageEventArgs : CriticalBuildMessage
public string ExtendedType { get; set; }
/// <inheritdoc />
public IDictionary<string, string?>? ExtendedMetadata { get; set; }
public Dictionary<string, string?>? ExtendedMetadata { get; set; }
/// <inheritdoc />
public string? ExtendedData { get; set; }

Просмотреть файл

@ -18,7 +18,7 @@ public sealed class ExtendedCustomBuildEventArgs : CustomBuildEventArgs, IExtend
public string ExtendedType { get; set; }
/// <inheritdoc />
public IDictionary<string, string?>? ExtendedMetadata { get; set; }
public Dictionary<string, string?>? ExtendedMetadata { get; set; }
/// <inheritdoc />
public string? ExtendedData { get; set; }

Просмотреть файл

@ -22,7 +22,7 @@ public interface IExtendedBuildEventArgs
/// - data which needed in custom code to properly routing this message without interpreting/deserializing <see cref="ExtendedData"/>.
/// - simple extended data can be transferred in form of dictionary key-value per one extended property.
/// </summary>
IDictionary<string, string?>? ExtendedMetadata { get; set; }
Dictionary<string, string?>? ExtendedMetadata { get; set; }
/// <summary>
/// Transparent data as string.

Просмотреть файл

@ -184,6 +184,21 @@
<assemblyIdentity name="Microsoft.VisualStudio.CodeAnalysis.Sdk" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
<codeBase version="17.0.0.0" href="..\..\..\Microsoft\VisualStudio\v17.0\CodeAnalysis\Microsoft.VisualStudio.CodeAnalysis.Sdk.dll" />
</dependentAssembly>
<!-- Redirects for SDK resolver components -->
<qualifyAssembly partialName="Microsoft.DotNet.MSBuildSdkResolver" fullName="Microsoft.DotNet.MSBuildSdkResolver, Version=8.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60" />
<dependentAssembly>
<assemblyIdentity name="Microsoft.DotNet.MSBuildSdkResolver" culture="neutral" publicKeyToken="adb9793829ddae60" />
<codeBase version="8.0.100.0" href="..\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver\Microsoft.DotNet.MSBuildSdkResolver.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Deployment.DotNet.Releases" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<codeBase version="2.0.0.0" href="..\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver\Microsoft.Deployment.DotNet.Releases.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<codeBase version="13.0.0.0" href="..\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver\Newtonsoft.Json.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<!-- To define one or more new toolsets, add an 'msbuildToolsets' element in this file. -->

Просмотреть файл

@ -133,6 +133,21 @@
<assemblyIdentity name="Microsoft.VisualStudio.CodeAnalysis.Sdk" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
<codeBase version="17.0.0.0" href="..\..\Microsoft\VisualStudio\v17.0\CodeAnalysis\Microsoft.VisualStudio.CodeAnalysis.Sdk.dll" />
</dependentAssembly>
<!-- Redirects for SDK resolver components -->
<qualifyAssembly partialName="Microsoft.DotNet.MSBuildSdkResolver" fullName="Microsoft.DotNet.MSBuildSdkResolver, Version=8.0.100.0, Culture=neutral, PublicKeyToken=adb9793829ddae60" />
<dependentAssembly>
<assemblyIdentity name="Microsoft.DotNet.MSBuildSdkResolver" culture="neutral" publicKeyToken="adb9793829ddae60" />
<codeBase version="8.0.100.0" href=".\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver\Microsoft.DotNet.MSBuildSdkResolver.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Deployment.DotNet.Releases" culture="neutral" publicKeyToken="31bf3856ad364e35" />
<codeBase version="2.0.0.0" href=".\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver\Microsoft.Deployment.DotNet.Releases.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
<codeBase version="13.0.0.0" href=".\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver\Newtonsoft.Json.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<!-- To define one or more new toolsets, add an 'msbuildToolsets' element in this file. -->

Просмотреть файл

@ -388,9 +388,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
<PropertyGroup Condition="'$(MSBuildCopyMarkerName)' == ''">
<MSBuildCopyMarkerName>$(MSBuildProjectFile)</MSBuildCopyMarkerName>
<!-- For a long MSBuildProjectFile let's shorten this to 17 chars - using the first 8 chars of the filename and either the ProjectGuid if it exists -->
<MSBuildCopyMarkerName Condition="'$(MSBuildCopyMarkerName.Length)' &gt; '17' and '$(ProjectGuid)' != ''">$(MSBuildProjectFile.Substring(0,8)).$(ProjectGuid.Substring(1,8))</MSBuildCopyMarkerName>
<!-- or a filename hash if the guid is not present (in such case the filename was not shortened and is still over 17 chars long). -->
<!-- For a long MSBuildProjectFile let's shorten this to 17 chars - using the first 8 chars of the filename and a filename hash. -->
<MSBuildCopyMarkerName Condition="'$(MSBuildCopyMarkerName.Length)' &gt; '17'">$(MSBuildProjectFile.Substring(0,8)).$([MSBuild]::StableStringHash($(MSBuildProjectFile)).ToString("X8"))</MSBuildCopyMarkerName>
<MSBuildCopyMarkerName>$(MSBuildCopyMarkerName).Up2Date</MSBuildCopyMarkerName>
</PropertyGroup>