зеркало из https://github.com/dotnet/msbuild.git
Merge pull request #9532 from dotnet-maestro-bot/merge/vs17.9-to-main
[automated] Merge branch 'vs17.9' => 'main'
This commit is contained in:
Коммит
caa5b7d900
|
@ -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>
|
||||
|
|
|
@ -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,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,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'
|
||||
)
|
||||
|
||||
|
|
|
@ -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,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'
|
||||
)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)' > '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)' > '17'">$(MSBuildProjectFile.Substring(0,8)).$([MSBuild]::StableStringHash($(MSBuildProjectFile)).ToString("X8"))</MSBuildCopyMarkerName>
|
||||
<MSBuildCopyMarkerName>$(MSBuildCopyMarkerName).Up2Date</MSBuildCopyMarkerName>
|
||||
</PropertyGroup>
|
||||
|
|
Загрузка…
Ссылка в новой задаче