diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml
index b04465727..b6fd560d6 100644
--- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml
+++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml
@@ -43,6 +43,7 @@ jobs:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.centOS7Container }}
+ _EnablePoison: false
_ExcludeOmniSharpTests: true
_Platform: linux
_RunOnline: true
@@ -50,6 +51,7 @@ jobs:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.centOS7Container }}
+ _EnablePoison: false
_ExcludeOmniSharpTests: true
_Platform: linux
_RunOnline: false
@@ -58,6 +60,7 @@ jobs:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.centOS8Container }}
+ _EnablePoison: false
_ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false
@@ -65,6 +68,7 @@ jobs:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.centOSStream9Container }}
+ _EnablePoison: false
_ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false
@@ -72,6 +76,7 @@ jobs:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.fedora33Container }}
+ _EnablePoison: true
_ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false
@@ -79,6 +84,7 @@ jobs:
_BootstrapPrep: false
_BuildArch: x64
_Container: ${{ parameters.ubuntu1804Container }}
+ _EnablePoison: false
_ExcludeOmniSharpTests: false
_Platform: linux
_RunOnline: false
@@ -97,6 +103,7 @@ jobs:
parameters:
buildArch: $(_BuildArch)
container: $(_Container)
+ enablePoison: $(_EnablePoison)
excludeOmniSharpTests: $(_ExcludeOmniSharpTests)
installerBuildResourceId: ${{ parameters.installerBuildResourceId }}
platform: $(_Platform)
@@ -104,7 +111,7 @@ jobs:
set -x
customPrepArgs=
- if [ '$(_BootstrapPrep)' = 'true' ]; then
+ if [[ '$(_BootstrapPrep)' == 'true' ]]; then
customPrepArgs='--bootstrap'
fi
diff --git a/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml b/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml
index 1cec502ab..99e54f4ab 100644
--- a/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml
+++ b/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml
@@ -10,6 +10,9 @@ parameters:
# Container image to build within
container: null
+ # Enable the poison report
+ enablePoison: false
+
# Skip running the OmniSharp smoke-tests
excludeOmniSharpTests: false
@@ -26,7 +29,7 @@ parameters:
prepScript: null
# Whether or not to build online
- runOnline: null
+ runOnline: false
# Directory to build the tarball in
tarballDir:
@@ -55,7 +58,7 @@ steps:
set -x
resourceIdPathSegment=
- if [ '${{ parameters.installerBuildResourceId }}' != 'current' ]; then
+ if [[ '${{ parameters.installerBuildResourceId }}' != 'current' ]]; then
resourceIdPathSegment='${{ parameters.installerBuildResourceId }}/'
fi
@@ -74,12 +77,16 @@ steps:
networkArgs=
customBuildArgs=
- if [ '${{ parameters.runOnline}}' = 'true' ]; then
+ if [[ '${{ parameters.runOnline }}' == 'true' ]]; then
customBuildArgs='--online'
else
networkArgs='--network none'
fi
+ if [[ '${{ parameters.enablePoison }}' == 'true' ]]; then
+ customBuildArgs="$customBuildArgs --poison"
+ fi
+
docker run --rm -v ${{ parameters.tarballDir }}:/tarball -w /tarball ${networkArgs} ${{ parameters.container }} ./build.sh ${customBuildArgs} ${{ parameters.additionalBuildArgs }} -- /p:CleanWhileBuilding=true
displayName: Build Tarball
@@ -92,6 +99,7 @@ steps:
dockerVolumeArgs="-v ${{ parameters.tarballDir }}:/tarball"
dockerEnvArgs="-e SMOKE_TESTS_EXCLUDE_OMNISHARP=${{ parameters.excludeOmniSharpTests}} -e SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS=true"
+ poisonArg=''
if [[ '${{ parameters.isBootstrapped }}' != 'true' && '${{ parameters.installerBuildResourceId }}' != 'current' ]]; then
dockerVolumeArgs+=" -v $(PIPELINE.WORKSPACE)/${{ parameters.installerBuildResourceId }}/BlobArtifacts/:/BlobArtifacts"
@@ -99,7 +107,12 @@ steps:
dockerEnvArgs+=" -e SMOKE_TESTS_MSFT_SDK_TARBALL_PATH=/BlobArtifacts/$msftSdkTarballName"
fi
- docker run --rm $dockerVolumeArgs -w /tarball $dockerEnvArgs ${{ parameters.container }} ./build.sh --run-smoke-test ${{ parameters.additionalBuildArgs }} -- /p:SmokeTestConsoleVerbosity=detailed
+ if [[ '${{ parameters.enablePoison }}' == 'true' ]]; then
+ poisonArg='--poison'
+ dockerEnvArgs+=" -e SMOKE_TESTS_WARN_POISON_DIFFS=true"
+ fi
+
+ docker run --rm $dockerVolumeArgs -w /tarball $dockerEnvArgs ${{ parameters.container }} ./build.sh $poisonArg --run-smoke-test ${{ parameters.additionalBuildArgs }} -- /p:SmokeTestConsoleVerbosity=detailed
displayName: Run Tests
# Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph.
diff --git a/src/SourceBuild/tarball/content/build.proj b/src/SourceBuild/tarball/content/build.proj
index c9310fa6c..4c76732f7 100644
--- a/src/SourceBuild/tarball/content/build.proj
+++ b/src/SourceBuild/tarball/content/build.proj
@@ -68,12 +68,16 @@
+
+
+
+
+ SMOKE_TESTS_POISON_REPORT_PATH=$(PoisonUsageReportFile);
%(SdkTarballItem.Identity)
normal
@@ -101,7 +106,7 @@
EnvironmentVariables="
SMOKE_TESTS_SDK_TARBALL_PATH=$(SdkTarballPath);
SMOKE_TESTS_TARGET_RID=$(TargetRid);
- " />
+ $(CustomTestEnvVars)" />
use the specified directory of previously-built packages"
echo " --with-sdk use the SDK in the specified directory for bootstrapping"
+ echo " --poison build with poisoning checks"
echo " --run-smoke-test don't build; run smoke tests"
echo "use -- to send the remaining arguments to MSBuild"
echo ""
@@ -35,6 +36,9 @@ while :; do
--online)
MSBUILD_ARGUMENTS+=( "/p:BuildWithOnlineSources=true")
;;
+ --poison)
+ MSBUILD_ARGUMENTS+=( "/p:EnablePoison=true")
+ ;;
--with-packages)
CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR="$(cd -P "$2" && pwd)"
if [ ! -d "$CUSTOM_PREVIOUSLY_BUILT_PACKAGES_DIR" ]; then
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs
index 39d7bd389..abcf4dba9 100644
--- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs
@@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
+using System.Text.RegularExpressions;
using Xunit;
using Xunit.Abstractions;
@@ -36,18 +37,17 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
public static void CompareContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
{
- string baselineFilePath = GetBaselineFilePath(baselineFileName);
-
string actualFilePath = Path.Combine(Environment.CurrentDirectory, $"{baselineFileName}");
File.WriteAllText(actualFilePath, actualContents);
- CompareFiles(baselineFilePath, actualFilePath, outputHelper, warnOnDiffs);
+ CompareFiles(baselineFileName, actualFilePath, outputHelper, warnOnDiffs);
}
- public static void CompareFiles(string baselineFilePath, string actualFilePath, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
+ public static void CompareFiles(string baselineFileName, string actualFilePath, ITestOutputHelper outputHelper, bool warnOnDiffs = false)
{
- string baselineFileText = File.ReadAllText(baselineFilePath);
- string actualFileText = File.ReadAllText(actualFilePath);
+ string baselineFilePath = GetBaselineFilePath(baselineFileName);
+ string baselineFileText = File.ReadAllText(baselineFilePath).Trim();
+ string actualFileText = File.ReadAllText(actualFilePath).Trim();
string? message = null;
@@ -84,5 +84,23 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests
public static string GetAssetsDirectory() => Path.Combine(Directory.GetCurrentDirectory(), "assets");
private static string GetBaselineFilePath(string baselineFileName) => Path.Combine(GetAssetsDirectory(), "baselines", baselineFileName);
+
+ public static string RemoveRids(string diff) => diff.Replace(Config.TargetRid, "banana.rid");
+
+ public static string RemoveVersions(string source)
+ {
+ // Remove semantic versions
+ // Regex source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
+ Regex semanticVersionRegex = new(
+ $"(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)"
+ + $"(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))"
+ + $"?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?");
+ string result = semanticVersionRegex.Replace(source, $"x.y.z");
+
+ // Remove netx.y path segments
+ string pathSeparator = Regex.Escape(Path.DirectorySeparatorChar.ToString());
+ Regex netTfmRegex = new($"{pathSeparator}net[1-9]+\\.[0-9]+{pathSeparator}");
+ return netTfmRegex.Replace(result, $"{Path.DirectorySeparatorChar}netx.y{Path.DirectorySeparatorChar}");
+ }
}
}
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs
index 9abf0c299..0aaab59ff 100644
--- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs
@@ -12,18 +12,23 @@ internal static class Config
public const string DotNetDirectoryEnv = "SMOKE_TESTS_DOTNET_DIR";
public const string ExcludeOmniSharpEnv = "SMOKE_TESTS_EXCLUDE_OMNISHARP";
public const string MsftSdkTarballPathEnv = "SMOKE_TESTS_MSFT_SDK_TARBALL_PATH";
+ public const string PoisonReportPathEnv = "SMOKE_TESTS_POISON_REPORT_PATH";
public const string PrereqsPathEnv = "SMOKE_TESTS_PREREQS_PATH";
public const string SdkTarballPathEnv = "SMOKE_TESTS_SDK_TARBALL_PATH";
public const string TargetRidEnv = "SMOKE_TESTS_TARGET_RID";
+ public const string WarnPoisonDiffsEnv = "SMOKE_TESTS_WARN_POISON_DIFFS";
public const string WarnSdkContentDiffsEnv = "SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS";
public static string DotNetDirectory { get; } =
Environment.GetEnvironmentVariable(DotNetDirectoryEnv) ?? Path.Combine(Directory.GetCurrentDirectory(), ".dotnet");
public static string? MsftSdkTarballPath { get; } = Environment.GetEnvironmentVariable(MsftSdkTarballPathEnv);
+ public static string? PoisonReportPath { get; } = Environment.GetEnvironmentVariable(PoisonReportPathEnv);
public static string? PrereqsPath { get; } = Environment.GetEnvironmentVariable(PrereqsPathEnv);
public static string? SdkTarballPath { get; } = Environment.GetEnvironmentVariable(SdkTarballPathEnv);
public static string TargetRid { get; } = Environment.GetEnvironmentVariable(TargetRidEnv) ??
throw new InvalidOperationException($"'{Config.TargetRidEnv}' must be specified");
+ public static bool WarnOnPoisonDiffs { get; } =
+ bool.TryParse(Environment.GetEnvironmentVariable(WarnPoisonDiffsEnv), out bool excludeOnlineTests) && excludeOnlineTests;
public static bool WarnOnSdkContentDiffs { get; } =
bool.TryParse(Environment.GetEnvironmentVariable(WarnSdkContentDiffsEnv), out bool excludeOnlineTests) && excludeOnlineTests;
}
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs
index cad0d30d4..d6ec47734 100644
--- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs
@@ -10,8 +10,9 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests;
public class DotNetFormatTests : SmokeTests
{
+ private const string TestFileName = "FormatTest.cs";
private const string UnformattedFileName = "FormatTestUnformatted.cs";
- private const string ExpectedFormattedFileName = "FormatTestExpectedFormatted.cs";
+ private const string ExpectedFormattedFileName = "FormatTestFormatted.cs";
public DotNetFormatTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
@@ -21,20 +22,17 @@ public class DotNetFormatTests : SmokeTests
[Fact]
public void FormatProject()
{
- string assetsDirectory = BaselineHelper.GetAssetsDirectory();
-
- string unformattedCsFilePath = Path.Combine(assetsDirectory, UnformattedFileName);
- string expectedFormattedCsFilePath = Path.Combine(assetsDirectory, ExpectedFormattedFileName);
+ string unformattedCsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), UnformattedFileName);
string projectDirectory = DotNetHelper.ExecuteNew("console", nameof(FormatProject), "C#");
string projectFilePath = Path.Combine(projectDirectory, nameof(FormatProject) + ".csproj");
- string formattedCsFilePath = Path.Combine(projectDirectory, UnformattedFileName);
+ string testFilePath = Path.Combine(projectDirectory, TestFileName);
- File.Copy(unformattedCsFilePath, formattedCsFilePath);
+ File.Copy(unformattedCsFilePath, testFilePath);
DotNetHelper.ExecuteCmd($"format {projectFilePath}");
- BaselineHelper.CompareFiles(expectedFormattedCsFilePath, formattedCsFilePath, OutputHelper);
+ BaselineHelper.CompareFiles(ExpectedFormattedFileName, testFilePath, OutputHelper);
}
}
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs
new file mode 100644
index 000000000..11ea0667f
--- /dev/null
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs
@@ -0,0 +1,34 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.IO;
+using System.Text.RegularExpressions;
+using Xunit.Abstractions;
+
+namespace Microsoft.DotNet.SourceBuild.SmokeTests
+{
+ public class PoisonTests : SmokeTests
+ {
+ public PoisonTests(ITestOutputHelper outputHelper) : base(outputHelper) { }
+
+ [SkippableFact(Config.PoisonReportPathEnv, skipOnNullOrWhiteSpace: true)]
+ public void VerifyUsage()
+ {
+ if (!File.Exists(Config.PoisonReportPath))
+ {
+ throw new InvalidOperationException($"Poison report '{Config.PoisonReportPath}' does not exist.");
+ }
+
+ string currentPoisonReport = File.ReadAllText(Config.PoisonReportPath);
+ currentPoisonReport = RemoveHashes(currentPoisonReport);
+ currentPoisonReport = BaselineHelper.RemoveRids(currentPoisonReport);
+ currentPoisonReport = BaselineHelper.RemoveVersions(currentPoisonReport);
+
+ BaselineHelper.CompareContents("PoisonUsage.txt", currentPoisonReport, OutputHelper, Config.WarnOnPoisonDiffs);
+ }
+
+ private static string RemoveHashes(string source) => Regex.Replace(source, "^\\s*.*(\r\n?|\n)", string.Empty, RegexOptions.Multiline);
+ }
+}
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs
index 74657726c..2ca4b03a4 100644
--- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs
@@ -31,9 +31,9 @@ public class SdkContentTests : SmokeTests
WriteTarballFileList(Config.SdkTarballPath, sbFileListingFileName);
string diff = BaselineHelper.DiffFiles(msftFileListingFileName, sbFileListingFileName, OutputHelper);
- diff = RemoveVersionedPaths(diff);
+ diff = BaselineHelper.RemoveVersions(diff);
diff = RemoveDiffMarkers(diff);
- diff = RemoveRids(diff);
+ diff = BaselineHelper.RemoveRids(diff);
BaselineHelper.CompareContents("MsftToSbSdk.diff", diff, OutputHelper, Config.WarnOnSdkContentDiffs);
}
@@ -57,22 +57,4 @@ public class SdkContentTests : SmokeTests
Regex diffSegmentRegex = new("^@@ .* @@", RegexOptions.Multiline);
return diffSegmentRegex.Replace(result, "@@ ------------ @@");
}
-
- private static string RemoveRids(string diff) => diff.Replace(Config.TargetRid, "banana.rid");
-
- private static string RemoveVersionedPaths(string source)
- {
- // Remove semantic version path segments
- string pathSeparator = Regex.Escape(Path.DirectorySeparatorChar.ToString());
- // Regex source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
- Regex semanticVersionRegex = new(
- $"{pathSeparator}(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)"
- + $"(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))"
- + $"?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?{pathSeparator}");
- string result = semanticVersionRegex.Replace(source, $"{Path.DirectorySeparatorChar}x.y.z{Path.DirectorySeparatorChar}");
-
- // Remove net.x.y path segments
- Regex netTfmRegex = new($"{pathSeparator}net[1-9]*.[0-9]{pathSeparator}");
- return netTfmRegex.Replace(result, $"{Path.DirectorySeparatorChar}netx.y{Path.DirectorySeparatorChar}");
- }
}
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/FormatTestExpectedFormatted.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/FormatTestFormatted.cs
similarity index 100%
rename from src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/FormatTestExpectedFormatted.cs
rename to src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/FormatTestFormatted.cs
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff
index 6418004c8..f1600a4aa 100644
--- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff
@@ -860,65 +860,65 @@ index ------------
./sdk/x.y.z/Sdks/FSharp.NET.Sdk/Sdk/Sdk.props
./sdk/x.y.z/Sdks/FSharp.NET.Sdk/Sdk/Sdk.targets
./sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/
-+./sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/microsoft.docker.sdk.1.1.0.csproj
++./sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/microsoft.docker.sdk.x.y.z.csproj
./sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/Sdk/
./sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.props
./sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.targets
@@ ------------ @@
- ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/netx.y/System.Buffers.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/netx.y/System.Collections.Immutable.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/netx.y/System.Memory.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/netx.y/System.Numerics.Vectors.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/netx.y/System.Reflection.Metadata.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/netx.y/System.Runtime.CompilerServices.Unsafe.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/net472/System.Buffers.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/net472/System.Collections.Immutable.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/net472/System.Memory.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/net472/System.Numerics.Vectors.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/net472/System.Reflection.Metadata.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
./sdk/x.y.z/Sdks/Microsoft.NET.ILLink.Tasks/tools/netx.y/
@@ ------------ @@
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentNoLocation.transform
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentWithLocation.transform
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/cs/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/de/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/es/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/fr/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/it/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ja/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ko/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.Bcl.AsyncInterfaces.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.NET.Sdk.Publish.Tasks.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.NET.Sdk.Publish.Tasks.dll.config
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.Web.Delegation.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.Web.Deployment.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.Web.Deployment.Tracing.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.Web.XmlTransform.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/pl/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/pt-BR/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ru/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Buffers.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Memory.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Numerics.Vectors.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Runtime.CompilerServices.Unsafe.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Security.Cryptography.ProtectedData.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Text.Encodings.Web.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Text.Json.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Threading.Tasks.Extensions.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.ValueTuple.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/tr/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/zh-Hans/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/zh-Hant/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/cs/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/de/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/es/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/fr/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/it/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ja/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ko/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Bcl.AsyncInterfaces.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll.config
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Delegation.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.Tracing.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.XmlTransform.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pl/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pt-BR/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ru/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Buffers.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Memory.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Numerics.Vectors.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Security.Cryptography.ProtectedData.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Encodings.Web.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Json.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Threading.Tasks.Extensions.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.ValueTuple.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/tr/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hans/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hant/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/cs/
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
@@ -934,13 +934,13 @@ index ------------
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/tr/
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
@@ ------------ @@
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/System.Buffers.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/System.Collections.Immutable.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/System.Memory.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/System.Numerics.Vectors.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/System.Reflection.Metadata.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/System.Runtime.CompilerServices.Unsafe.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/System.Text.Encodings.Web.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Buffers.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Collections.Immutable.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Memory.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Numerics.Vectors.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Reflection.Metadata.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Text.Encodings.Web.dll
@@ ------------ @@
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.deps.json
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.dll
@@ -972,40 +972,40 @@ index ------------
-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/System.Windows.Forms.Analyzers.props
-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/THIRD-PARTY-NOTICES.TXT
-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/cs/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/cs/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/de/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/de/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/es/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/es/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/fr/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/fr/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/it/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/it/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/ja/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/ja/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/ko/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/ko/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/pl/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/pl/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/PresentationBuildTasks.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/pt-BR/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/pt-BR/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/ru/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/ru/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/System.Collections.Immutable.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/System.Memory.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/System.Numerics.Vectors.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/System.Reflection.Metadata.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/System.Reflection.MetadataLoadContext.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/System.Runtime.CompilerServices.Unsafe.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/tr/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/tr/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/zh-Hans/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/zh-Hans/PresentationBuildTasks.resources.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/zh-Hant/
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/zh-Hant/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/cs/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/cs/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/de/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/de/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/es/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/es/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/fr/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/fr/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/it/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/it/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ja/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ja/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ko/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ko/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pl/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pl/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/PresentationBuildTasks.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pt-BR/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pt-BR/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ru/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ru/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Collections.Immutable.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Memory.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Numerics.Vectors.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.Metadata.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.MetadataLoadContext.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/tr/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/tr/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hans/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hans/PresentationBuildTasks.resources.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hant/
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hant/PresentationBuildTasks.resources.dll
-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/
-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/cs/
-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/netx.y/cs/PresentationBuildTasks.resources.dll
@@ -1041,13 +1041,13 @@ index ------------
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/Sdk/
./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.props
@@ ------------ @@
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/System.Buffers.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/System.Collections.Immutable.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/System.Memory.dll
--./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/System.Numerics.Vectors.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/System.Reflection.Metadata.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/System.Runtime.CompilerServices.Unsafe.dll
- ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/System.Text.Encodings.Web.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/System.Buffers.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/System.Collections.Immutable.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/System.Memory.dll
+-./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/System.Numerics.Vectors.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/System.Reflection.Metadata.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
+ ./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/System.Text.Encodings.Web.dll
@@ ------------ @@
./sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/buildCrossTargeting/
./sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/buildCrossTargeting/NuGet.Build.Tasks.Pack.targets
diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/PoisonUsage.txt b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/PoisonUsage.txt
new file mode 100644
index 000000000..25f79024b
--- /dev/null
+++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/PoisonUsage.txt
@@ -0,0 +1,1328 @@
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
+ AssemblyAttribute
+
+
diff --git a/src/SourceBuild/tarball/content/tools-local/init-build.proj b/src/SourceBuild/tarball/content/tools-local/init-build.proj
index 1070cf0be..701f76c0c 100644
--- a/src/SourceBuild/tarball/content/tools-local/init-build.proj
+++ b/src/SourceBuild/tarball/content/tools-local/init-build.proj
@@ -14,14 +14,15 @@
-
- $(ReferencePackagesDir)%3B$(PrebuiltPackagesPath)
+
+ $(ReferencePackagesDir)%3B$(PrebuiltPackagesPath)%3B$(PrebuiltSourceBuiltPackagesPath)
+
+ tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj;tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj
+
+
+
+ tasks\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj
+
+
+
+
+
+
@@ -185,10 +206,14 @@
+
+
+
+
diff --git a/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs b/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs
index 3fad37c47..d3c683c56 100644
--- a/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs
+++ b/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs
@@ -134,7 +134,7 @@ namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection
// if we should write out the poison report, do that
if (!string.IsNullOrWhiteSpace(PoisonReportOutputFilePath))
{
- File.WriteAllText(PoisonReportOutputFilePath, (new XElement("PrebuiltLeakReport", poisons.Select(p => p.ToXml()))).ToString());
+ File.WriteAllText(PoisonReportOutputFilePath, (new XElement("PrebuiltLeakReport", poisons.OrderBy(p => p.Path).Select(p => p.ToXml()))).ToString());
}
if (FailOnPoisonFound && poisons.Count() > 0)
@@ -167,8 +167,6 @@ namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection
IEnumerable catalogedPackages = ReadCatalog(catalogedPackagesFilePath);
var poisons = new List();
var candidateQueue = new Queue(initialCandidates);
- // avoid collisions between nupkgs with the same name
- var dirCounter = 0;
if (!string.IsNullOrWhiteSpace(OverrideTempPath))
{
Directory.CreateDirectory(OverrideTempPath);
@@ -184,7 +182,7 @@ namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection
// add its contents to the list to be checked.
if (ZipFileExtensions.Concat(TarFileExtensions).Concat(TarGzFileExtensions).Any(e => checking.ToLowerInvariant().EndsWith(e)))
{
- var tempCheckingDir = Path.Combine(tempDir.FullName, Path.GetRandomFileName(), Path.GetFileNameWithoutExtension(checking) + "." + (++dirCounter).ToString());
+ var tempCheckingDir = Path.Combine(tempDir.FullName, Path.GetFileNameWithoutExtension(checking));
PoisonedFileEntry result = ExtractAndCheckZipFileOnly(catalogedPackages, checking, markerFileName, tempCheckingDir, candidateQueue);
if (result != null)
{
diff --git a/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj b/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj
index b9eefcd65..c00725cc7 100644
--- a/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj
+++ b/src/SourceBuild/tarball/content/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj
@@ -1,7 +1,7 @@
- netcoreapp6.0
+ net6.0
true
$(LeakDetectionTasksBinDir)
@@ -26,4 +26,8 @@
+
+
+
+