Add source-build leak detection (#13434)
This commit is contained in:
parent
3080cd3c13
commit
f6e3766b7a
15 changed files with 1569 additions and 148 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -68,12 +68,16 @@
|
|||
<ItemGroup>
|
||||
<FinalCliTarball Include="$(SourceBuiltTarBallPath)**/*$(TarBallExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Checking @(FinalCliTarball) for poisoned files." />
|
||||
|
||||
<CheckForPoison FilesToCheck="@(FinalCliTarball)"
|
||||
HashCatalogFilePath="$(PoisonReportDataFile)"
|
||||
MarkerFileName="$(PoisonMarkerFile)"
|
||||
PoisonReportOutputFilePath="$(PoisonUsageReportFile)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)ReportPoisonUsage.complete" Overwrite="true" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Done checking for poison." />
|
||||
</Target>
|
||||
|
||||
<Target Name="GeneratePrebuiltBurndownData"
|
||||
|
@ -92,6 +96,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<CustomTestEnvVars Condition="'$(EnablePoison)' == 'true'">SMOKE_TESTS_POISON_REPORT_PATH=$(PoisonUsageReportFile);</CustomTestEnvVars>
|
||||
<SdkTarballPath>%(SdkTarballItem.Identity)</SdkTarballPath>
|
||||
<SmokeTestConsoleVerbosity Condition="'$(SmokeTestConsoleVerbosity)' == ''">normal</SmokeTestConsoleVerbosity>
|
||||
</PropertyGroup>
|
||||
|
@ -101,7 +106,7 @@
|
|||
EnvironmentVariables="
|
||||
SMOKE_TESTS_SDK_TARBALL_PATH=$(SdkTarballPath);
|
||||
SMOKE_TESTS_TARGET_RID=$(TargetRid);
|
||||
" />
|
||||
$(CustomTestEnvVars)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreateSmokeTestPrereqsTarball"
|
||||
|
|
|
@ -8,6 +8,7 @@ usage() {
|
|||
echo " --online build using online sources"
|
||||
echo " --with-packages <dir> use the specified directory of previously-built packages"
|
||||
echo " --with-sdk <dir> 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
|
||||
|
|
|
@ -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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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*<Hash>.*</Hash>(\r\n?|\n)", string.Empty, RegexOptions.Multiline);
|
||||
}
|
||||
}
|
|
@ -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}");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -14,14 +14,15 @@
|
|||
<BuildTasksTarget Include="Restore;Build;InstallResolver" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(BuildWithOnlineSources)' != 'true' ">
|
||||
<BuildTasksOfflineSources>$(ReferencePackagesDir)%3B$(PrebuiltPackagesPath)</BuildTasksOfflineSources>
|
||||
<PropertyGroup>
|
||||
<BuildTasksOfflineSources>$(ReferencePackagesDir)%3B$(PrebuiltPackagesPath)%3B$(PrebuiltSourceBuiltPackagesPath)</BuildTasksOfflineSources>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="Build">
|
||||
<CallTarget Targets="
|
||||
UnpackTarballs;
|
||||
BuildXPlatTasks;
|
||||
BuildLeakDetection;
|
||||
ExtractToolPackage;
|
||||
GenerateRootFs;
|
||||
BuildTextOnlyPackages;
|
||||
|
@ -103,10 +104,11 @@
|
|||
DependsOnTargets="UnpackTarballs"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)BuildXPlatTasks.complete">
|
||||
<PropertyGroup>
|
||||
<XPlatTaskProjects>tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj;tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj</XPlatTaskProjects>
|
||||
</PropertyGroup>
|
||||
<MSBuild
|
||||
Projects="
|
||||
tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj;
|
||||
tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj"
|
||||
Projects="$(XPlatTaskProjects)"
|
||||
Targets="%(BuildTasksTarget.Identity)"
|
||||
SkipNonexistentTargets="true"
|
||||
Properties="
|
||||
|
@ -116,6 +118,25 @@
|
|||
<WriteLinesToFile File="$(CompletedSemaphorePath)BuildXPlatTasks.complete" Overwrite="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="BuildLeakDetection"
|
||||
DependsOnTargets="ExtractToolPackage"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)BuildLeakDetection.complete"
|
||||
Condition="'$(EnablePoison)' == 'true'">
|
||||
<PropertyGroup>
|
||||
<LeakDetectionProjects>tasks\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj</LeakDetectionProjects>
|
||||
</PropertyGroup>
|
||||
<MSBuild
|
||||
Projects="$(LeakDetectionProjects)"
|
||||
Targets="%(BuildTasksTarget.Identity)"
|
||||
SkipNonexistentTargets="true"
|
||||
Properties="
|
||||
RestoreSources=$(BuildTasksOfflineSources);
|
||||
__ToolInitPhase=%(BuildTasksTarget.Identity)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)BuildLeakDetection.complete" Overwrite="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateRootFs" Condition="'$(OS)' != 'Windows_NT'">
|
||||
<Exec Condition="$(Platform.Contains('arm')) AND '$(Platform)' != 'armel' AND '$(BuildArchitecture)' != 'arm64'" Command="$(ArmEnvironmentVariables) $(ProjectDir)cross/build-rootfs.sh" />
|
||||
<Exec Condition="'$(Platform)' == 'armel'" Command="$(ArmEnvironmentVariables) $(ProjectDir)cross/armel/tizen-build-rootfs.sh" />
|
||||
|
@ -185,10 +206,14 @@
|
|||
<PrebuiltPackages Include="$(PrebuiltPackagesPath)**/*.nupkg" />
|
||||
<PrebuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)**/*.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Poisoning existing packages for leak detection." />
|
||||
|
||||
<MarkAndCatalogPackages PackagesToMark="@(PrebuiltPackages)" CatalogOutputFilePath="$(PoisonReportDataFile)" MarkerFileName="$(PoisonMarkerFile)" />
|
||||
<MarkAndCatalogPackages PackagesToMark="@(PrebuiltSourceBuiltPackages)" CatalogOutputFilePath="$(SourceBuiltPoisonReportDataFile)" MarkerFileName="$(SourceBuiltPoisonMarkerFile)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)PoisonPrebuiltPackages.complete" Overwrite="true" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Done poisoning." />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -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<CatalogPackageEntry> catalogedPackages = ReadCatalog(catalogedPackagesFilePath);
|
||||
var poisons = new List<PoisonedFileEntry>();
|
||||
var candidateQueue = new Queue<string>(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)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp6.0</TargetFramework>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<OutputPath>$(LeakDetectionTasksBinDir)</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
@ -26,4 +26,8 @@
|
|||
<Reference Include="@(SdkAssemblyReference)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="*.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
Loading…
Reference in a new issue