diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 2b7fecfce171..9394fd31e535 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "microsoft.dotnet.darc": { - "version": "1.1.0-beta.23416.3", + "version": "1.1.0-beta.23578.2", "commands": [ "darc" ] diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml new file mode 100644 index 000000000000..60eb59ab40dd --- /dev/null +++ b/.github/workflows/backport.yml @@ -0,0 +1,17 @@ +name: Backport PR to branch +on: + issue_comment: + types: [created] + schedule: + # once a day at 13:00 UTC to cleanup old runs + - cron: '0 13 * * *' + +permissions: + contents: write + issues: write + pull-requests: write + actions: write + +jobs: + backport: + uses: dotnet/arcade/.github/workflows/backport-base.yml@main diff --git a/Directory.Build.props b/Directory.Build.props index 39b30a121778..5d0198439fae 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,6 +12,7 @@ $(BuildArchitecture) $(BuildArchitecture) $(BuildArchitecture) + $(BuildArchitecture) x64 @@ -25,7 +26,7 @@ true true - net8.0 + net9.0 - 10.0.17763.29 - 10.0.18362.29 - 10.0.19041.29 - 10.0.20348.29 - 10.0.22000.29 - 10.0.22621.29 + 10.0.17763.31 + 10.0.18362.31 + 10.0.19041.31 + 10.0.20348.31 + 10.0.22000.31 + 10.0.22621.31 diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml index ee09742d35f2..b821a269a10f 100644 --- a/eng/SourceBuildPrebuiltBaseline.xml +++ b/eng/SourceBuildPrebuiltBaseline.xml @@ -12,6 +12,6 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ef0586c60e2a..a805df0d336a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -5,46 +5,42 @@ Source-build uses transitive dependency resolution to determine correct build SHA of all product contributing repos. The order of dependencies is important and should not be modified without approval from dotnet/source-build-internal. --> - + https://github.com/dotnet/windowsdesktop - d6d8d8ffef6b62156e0751bc751d1e2aa5be614c + c2ba2e4e71b06b9f14165f9902e54259fe42e129 - + https://github.com/dotnet/windowsdesktop - d6d8d8ffef6b62156e0751bc751d1e2aa5be614c + c2ba2e4e71b06b9f14165f9902e54259fe42e129 - + https://github.com/dotnet/windowsdesktop - d6d8d8ffef6b62156e0751bc751d1e2aa5be614c + c2ba2e4e71b06b9f14165f9902e54259fe42e129 - + https://github.com/dotnet/windowsdesktop - d6d8d8ffef6b62156e0751bc751d1e2aa5be614c + c2ba2e4e71b06b9f14165f9902e54259fe42e129 - + https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf + a26802aa5793060c512359c2be83e9a4c51964c1 - + https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf + a26802aa5793060c512359c2be83e9a4c51964c1 - + https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf + a26802aa5793060c512359c2be83e9a4c51964c1 - + https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf + a26802aa5793060c512359c2be83e9a4c51964c1 - + https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf - - - https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf + a26802aa5793060c512359c2be83e9a4c51964c1 @@ -52,142 +48,146 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf + a26802aa5793060c512359c2be83e9a4c51964c1 - + https://github.com/dotnet/aspnetcore - 468ff785bc251d5a9c7ea82ebe8572a4cdcbeb39 + 7e9b1492baa02211842422566c0e8710886cace1 - + https://github.com/dotnet/aspnetcore - 468ff785bc251d5a9c7ea82ebe8572a4cdcbeb39 + 7e9b1492baa02211842422566c0e8710886cace1 + - + https://github.com/dotnet/aspnetcore - 468ff785bc251d5a9c7ea82ebe8572a4cdcbeb39 - + 7e9b1492baa02211842422566c0e8710886cace1 - + https://github.com/dotnet/aspnetcore - 468ff785bc251d5a9c7ea82ebe8572a4cdcbeb39 + 7e9b1492baa02211842422566c0e8710886cace1 - + https://github.com/dotnet/aspnetcore - 468ff785bc251d5a9c7ea82ebe8572a4cdcbeb39 + 7e9b1492baa02211842422566c0e8710886cace1 - + https://github.com/dotnet/aspnetcore - 468ff785bc251d5a9c7ea82ebe8572a4cdcbeb39 + 7e9b1492baa02211842422566c0e8710886cace1 - + https://github.com/dotnet/aspnetcore - 468ff785bc251d5a9c7ea82ebe8572a4cdcbeb39 + 7e9b1492baa02211842422566c0e8710886cace1 - + https://github.com/dotnet/sdk - fdc31e7fcaeb105e9988a564c8cce5ccc304ed36 + 96b3ef8aecc8e71f067e04ea02401b13bc8bcca7 - + https://github.com/dotnet/sdk - fdc31e7fcaeb105e9988a564c8cce5ccc304ed36 + 96b3ef8aecc8e71f067e04ea02401b13bc8bcca7 - + https://github.com/dotnet/sdk - fdc31e7fcaeb105e9988a564c8cce5ccc304ed36 + 96b3ef8aecc8e71f067e04ea02401b13bc8bcca7 - + https://github.com/dotnet/sdk - fdc31e7fcaeb105e9988a564c8cce5ccc304ed36 + 96b3ef8aecc8e71f067e04ea02401b13bc8bcca7 https://github.com/dotnet/test-templates 0385265f4d0b6413d64aea0223172366a9b9858c - + https://github.com/dotnet/test-templates - 1e5f3603af2277910aad946736ee23283e7f3e16 + 307b8f538d83a955d8f6dd909eee41a5555f2f4d - + https://github.com/dotnet/test-templates - 1e5f3603af2277910aad946736ee23283e7f3e16 + e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a - + https://github.com/dotnet/test-templates - 1e5f3603af2277910aad946736ee23283e7f3e16 + e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a - + https://github.com/dotnet/test-templates - 1e5f3603af2277910aad946736ee23283e7f3e16 + e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a + + + https://github.com/dotnet/test-templates + e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a - + https://github.com/dotnet/winforms - 0c5eb6c55e7bd273375c3e60c2e6ea8432a54058 + 0112f1b00b9608cd10bf9f92fad16b1bd84dc76f - + https://github.com/dotnet/wpf - 0585425b53369e9a0cdac10848f079590eb513ff + f398b952977b861a20c37ae7982032cae9d9f0a5 - + https://github.com/dotnet/fsharp - d28c79e337157c38bc716ae51eb7d487676b2129 + 5a2ef93ff28d0a9a7e9419d652e9b009557e3925 - + https://github.com/dotnet/fsharp - d28c79e337157c38bc716ae51eb7d487676b2129 + 5a2ef93ff28d0a9a7e9419d652e9b009557e3925 - + https://github.com/microsoft/vstest - bb99e3ea07aaecd62d5c59568524133317d081b4 + 94c5e8d3b9a54b6814ea7003be18f37c7c558fbc - + https://github.com/dotnet/runtime - 287c10d2539d47268a1083c4d533cf84124900cf + a26802aa5793060c512359c2be83e9a4c51964c1 - + https://github.com/dotnet/roslyn - dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 + 1f802118804658a38c932c885bfc82a9d0f38e86 - + https://github.com/dotnet/msbuild - caf06d19326f9e7dcc06d4d4f4b04f1c6ddae5f0 + 31108edc1f9cafc0103ed467906a31ddd8f914fa - + https://github.com/nuget/nuget.client - f47eb5771ee3f9a100d0b31d82ccb5ee600a56ed + 707c46e558b2b027d7ae942028c369e26545f10a https://github.com/Microsoft/ApplicationInsights-dotnet 53b80940842204f78708a538628288ff5d741a1d - + https://github.com/dotnet/emsdk - 1999c8c8ab7473a7e1c5b7bdf5ba6d9a985a69cc + 74e4868be8423562ba8ec2aac522f94a8c2c9f37 - + https://github.com/dotnet/deployment-tools - 850f61abed37b617a41fd59b63a37c284af6801d + 1d174267bf45dabbadb12602b1170329611fd219 - + https://github.com/dotnet/deployment-tools - 850f61abed37b617a41fd59b63a37c284af6801d + 1d174267bf45dabbadb12602b1170329611fd219 - + https://github.com/dotnet/source-build-externals - 5a3e6274a3749c3e6f8b2b3a01e6b42960687e86 + 5832ec4c6ab8fbcab4e6f25584f5955dbb57541d @@ -195,51 +195,55 @@ 2c8079e2e8e78c0cd11ac75a32014756136ecdb9 - + https://github.com/dotnet/command-line-api - 02fe27cd6a9b001c8feb7938e6ef4b3799745759 + a045dd54a4c44723c215d992288160eb1401bb7f - + https://github.com/dotnet/command-line-api - 02fe27cd6a9b001c8feb7938e6ef4b3799745759 + a045dd54a4c44723c215d992288160eb1401bb7f - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 38aa367e014493c6f6ebfe94d9029bea01d072c4 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 38aa367e014493c6f6ebfe94d9029bea01d072c4 - + https://github.com/dotnet/arcade - 1d451c32dda2314c721adbf8829e1c0cd4e681ff + 38aa367e014493c6f6ebfe94d9029bea01d072c4 - + https://github.com/dotnet/arcade-services - 5d63a226d022fda90cae2c239e882ad253baa758 + 5263b603d90991a0c200aca8b8892c3d7cfe4751 - + https://github.com/dotnet/arcade-services - 5d63a226d022fda90cae2c239e882ad253baa758 + 5263b603d90991a0c200aca8b8892c3d7cfe4751 + + + https://github.com/dotnet/arcade + 38aa367e014493c6f6ebfe94d9029bea01d072c4 https://github.com/dotnet/runtime af841c8b33cecc92d74222298f1e45bf7bf3d90a - + https://github.com/dotnet/source-build-reference-packages - 3dd2c0ef203db8fe0e849557960b4cd009afbaac + b5ceed90b72d1b05975dd95fedd86c2455969adb - - https://github.com/dotnet/xliff-tasks - 194f32828726c3f1f63f79f3dc09b9e99c157b11 - + + https://github.com/dotnet/scenario-tests + 8af694a5e3986a27ccfee1a638ba311c7e9bc55d + diff --git a/eng/Versions.props b/eng/Versions.props index f71a9bfb455e..d17537ffa133 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -5,7 +5,7 @@ true - 8 + 9 0 1 00 @@ -16,17 +16,18 @@ false release - rc + alpha rtm servicing - 2 + 1 30 32 17 - 21 - 10 + 22 + 11 + 0 <_NET70ILLinkPackVersion>7.0.100-1.23211.1 @@ -39,31 +40,32 @@ - 8.0.0-beta.23463.1 + 9.0.0-beta.23601.1 - 1.1.0-beta.23416.3 + 1.1.0-beta.23578.2 - 8.0.0-rc.2.23465.2 + 9.0.0-alpha.1.23575.1 - 8.0.0-rc.2.23465.1 + 9.0.0-alpha.1.23575.1 1.0.2-beta4.22406.1 1.0.2-beta4.22406.1 - 1.1.0-rc.22558.1 - 1.1.0-rc.23410.2 - 1.1.0-rc.23410.2 - 1.1.0-rc.23410.2 - 1.1.0-rc.23410.2 + 1.1.0-rc.23558.1 + + 1.1.0-rc.23578.1 + 1.1.0-rc.23578.1 + 1.1.0-rc.23578.1 + 1.1.0-rc.23578.1 @@ -71,50 +73,50 @@ - 8.0.0-rc.2.23465.17 - 8.0.0-rc.2.23465.17 - 8.0.0-rc.2.23465.17 - 8.0.0-rc.2.23465.17 - 8.0.0-rc.2.23465.17 - 8.0.0-rc.2.23465.17 - 8.0.0-rc.2.23465.17 + 9.0.0-alpha.1.23577.26 + 9.0.0-alpha.1.23577.26 + 9.0.0-alpha.1.23577.26 + 9.0.0-alpha.1.23577.26 + 9.0.0-alpha.1.23577.26 + 9.0.0-alpha.1.23577.26 + 9.0.0-alpha.1.23577.26 0.2.0 - 8.0.100-rc.2.23468.2 - 8.0.100-rc.2.23468.2 - 8.0.100-rc.2.23468.2 + 9.0.100-alpha.1.23577.21 + 9.0.100-alpha.1.23577.21 + 9.0.100-alpha.1.23577.21 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) - 4.8.0-3.23465.5 + 4.9.0-2.23563.6 - 8.0.0-rc.2.23466.4 + 9.0.0-alpha.1.23577.7 - 8.0.0-rc.2.23466.4 - 8.0.0-rc.2.23466.4 - 8.0.0-rc.2.23466.4 - 8.0.0-rc.2.23466.4 - 8.0.0-rc.2.23466.4 - 8.0.0-rc.2.23466.4 + 9.0.0-alpha.1.23577.7 + 9.0.0-alpha.1.23577.7 + 9.0.0-alpha.1.23577.7 + 9.0.0-alpha.1.23577.7 + 9.0.0-alpha.1.23577.7 + 8.0.0-rc.1.23414.4 2.1.0 - 8.0.0-rc.2.23465.5 - 8.0.0-rc.2.23465.5 - 8.0.0-rc.2.23465.5 - 8.0.0-rc.2.23465.5 + 9.0.0-alpha.1.23576.1 + 9.0.0-alpha.1.23576.1 + 9.0.0-alpha.1.23576.1 + 9.0.0-alpha.1.23576.1 @@ -126,11 +128,11 @@ - 6.8.0-rc.112 + 6.9.0-preview.1.45 - 1.0.0-preview.6.23407.1 + 2.0.0-preview.1.23509.2 @@ -150,25 +152,32 @@ true $([MSBuild]::Subtract($(VersionFeature60), 1)) $([MSBuild]::Subtract($(VersionFeature70), 1)) + $([MSBuild]::Subtract($(VersionFeature80), 1)) $(VersionFeature60) $(VersionFeature70) + $(VersionFeature80) $([MSBuild]::Subtract($(AspNetCoreTemplateFeature60), 1)) $([MSBuild]::Subtract($(AspNetCoreTemplateFeature70), 1)) + $([MSBuild]::Subtract($(AspNetCoreTemplateFeature80), 1)) + $(VersionFeature80) - 5.0.403 - 6.0.302 - 7.0.100 5.0.17 6.0.14 7.0.3 + 5.0.403 + 6.0.302 + 7.0.100 + 8.0.100 5.0.17-servicing.22215.4 - 5.0.17-servicing.22218.2 6.0.7-servicing.22322.3 - 6.0.7-servicing.22322.2 7.0.0-rtm.22518.7 + 8.0.0-rtm.23531.5 + 5.0.17-servicing.22218.2 + 6.0.7-servicing.22322.2 7.0.0-rtm.22518.2 + 8.0.0-rtm.23531.4 $(MicrosoftNETCoreAppRuntimePackageVersion) @@ -178,42 +187,46 @@ 1.0.0-v3.14.0.5722 + + $(MicrosoftAspNetCoreAppRuntimePackageVersion) + $(MicrosoftDotNetCommonItemTemplatesPackageVersion) + $(MicrosoftDotNetCommonItemTemplatesPackageVersion) + $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) + $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) + $(NUnit3DotNetNewTemplatePackageVersion) - $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) - $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) + 8.0.$(AspNetCoreTemplateFeature80) + $(MicrosoftDotNetCommonItemTemplates80PackageVersion) + $(MicrosoftWinFormsProjectTemplates80PackageVersion) + $(MicrosoftWPFProjectTemplates80PackageVersion) $(NUnit3DotNetNewTemplatePackageVersion) - $(MicrosoftDotNetCommonItemTemplatesPackageVersion) - $(MicrosoftDotNetCommonItemTemplatesPackageVersion) - $(MicrosoftAspNetCoreAppRuntimePackageVersion) + 7.0.$(AspNetCoreTemplateFeature70) + $(MicrosoftDotNetCommonItemTemplates70PackageVersion) $(MicrosoftWinFormsProjectTemplates70PackageVersion) $(MicrosoftWPFProjectTemplates70PackageVersion) $(NUnit3DotNetNewTemplatePackageVersion) - $(MicrosoftDotNetCommonItemTemplates70PackageVersion) - $(MicrosoftDotNetCommonItemTemplates70PackageVersion) - 7.0.$(AspNetCoreTemplateFeature70) + 6.0.$(AspNetCoreTemplateFeature60) + $(MicrosoftDotNetCommonItemTemplates60PackageVersion) + $(MicrosoftDotNetCommonItemTemplates60PackageVersion) $(MicrosoftWinFormsProjectTemplates60PackageVersion) $(MicrosoftWPFProjectTemplates60PackageVersion) $(NUnit3DotNetNewTemplatePackageVersion) - $(MicrosoftDotNetCommonItemTemplates60PackageVersion) - $(MicrosoftDotNetCommonItemTemplates60PackageVersion) - 6.0.$(AspNetCoreTemplateFeature60) + 5.0.17 + $(MicrosoftDotNetCommonItemTemplates50PackageVersion) $(MicrosoftWinFormsProjectTemplates50PackageVersion) $(MicrosoftWPFProjectTemplates50PackageVersion) $(NUnit3DotNetNewTemplatePackageVersion) - $(MicrosoftDotNetCommonItemTemplates50PackageVersion) - $(MicrosoftDotNetCommonItemTemplates50PackageVersion) - 5.0.17 + 3.1.32 + 3.2.1 + 3.1.27 + $(MicrosoftDotNetCommonItemTemplates31PackageVersion) 4.8.1-servicing.19605.5 3.1.2-servicing.20066.4 1.7.2 - 3.1.27 - $(MicrosoftDotNetCommonItemTemplates31PackageVersion) - 3.1.32 - 3.2.1 4.8.0-rc2.19462.10 3.0.0 @@ -231,27 +244,30 @@ 2.2.0-beta.19072.10 2.0.0 - 17.8.0-preview-23456-01 + 17.9.0-preview-23574-01 8.0.0-alpha.1.22557.12 + 8.0.0-preview.23424.2 - 8.0.100-preview.6 - 8.0.0-preview.6.8686 - 34.0.0-preview.6.359 - 16.4.8646-net8-p6 - 16.4.8646-net8-p6 - 13.3.8646-net8-p6 - 16.4.8646-net8-p6 + 8.0.100-rc.1 + 8.0.0-alpha.23471.13 + 8.0.100-rc.1 + 8.0.0-rc.1.9171 + 34.0.0-rc.1.432 + 16.4.8825-net8-rc1 + 16.4.8825-net8-rc1 + 13.3.8825-net8-rc1 + 16.4.8825-net8-rc1 - 8.0.0-rc.2.23463.1 - $(MicrosoftNETWorkloadEmscriptenCurrentManifest80100TransportPackageVersion) + 9.0.0-alpha.1.23572.3 + $(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion) - 8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) + 9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) $(MicrosoftNETCoreAppRefPackageVersion) - 8.0.100$([System.Text.RegularExpressions.Regex]::Match($(MonoWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) + 9.0.100$([System.Text.RegularExpressions.Regex]::Match($(MonoWorkloadManifestVersion), `-[A-z]*[\.]*\d*`)) diff --git a/eng/common/build.sh b/eng/common/build.sh index 50af40cdd2ce..2c17ba529b91 100755 --- a/eng/common/build.sh +++ b/eng/common/build.sh @@ -105,7 +105,7 @@ while [[ $# > 0 ]]; do -binarylog|-bl) binary_log=true ;; - -excludeCIBinarylog|-nobl) + -excludecibinarylog|-nobl) exclude_ci_binary_log=true ;; -pipelineslog|-pl) diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 9caf9b021dbd..4228f202e5bf 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -487,7 +487,7 @@ if [[ "$__CodeName" == "alpine" ]]; then -X "http://dl-cdn.alpinelinux.org/alpine/$version/main" \ -X "http://dl-cdn.alpinelinux.org/alpine/$version/community" \ -U $__ApkSignatureArg --root "$__RootfsDir" --arch "$__AlpineArch" \ - search 'llvm*-libs' | sort | tail -1 | sed 's/-[^-]*//2g')" + search 'llvm*-libs' | grep -E '^llvm' | sort | tail -1 | sed 's/-[^-]*//2g')" fi # install all packages in one go diff --git a/eng/common/cross/riscv64/tizen/tizen.patch b/eng/common/cross/riscv64/tizen/tizen.patch new file mode 100644 index 000000000000..eb6d1c07470b --- /dev/null +++ b/eng/common/cross/riscv64/tizen/tizen.patch @@ -0,0 +1,9 @@ +diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so +--- a/usr/lib64/libc.so 2016-12-30 23:00:08.284951863 +0900 ++++ b/usr/lib64/libc.so 2016-12-30 23:00:32.140951815 +0900 +@@ -2,4 +2,4 @@ + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ + OUTPUT_FORMAT(elf64-littleriscv) +-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-riscv64-lp64d.so.1 ) ) ++GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-riscv64-lp64d.so.1 ) ) diff --git a/eng/common/cross/tizen-build-rootfs.sh b/eng/common/cross/tizen-build-rootfs.sh index ac84173d44fc..ba31c93285f6 100644 --- a/eng/common/cross/tizen-build-rootfs.sh +++ b/eng/common/cross/tizen-build-rootfs.sh @@ -22,6 +22,10 @@ case "$ARCH" in TIZEN_ARCH="x86_64" LINK_ARCH="x86" ;; + riscv64) + TIZEN_ARCH="riscv64" + LINK_ARCH="riscv" + ;; *) echo "Unsupported architecture for tizen: $ARCH" exit 1 @@ -58,4 +62,21 @@ rm -rf $TIZEN_TMP_DIR echo ">>Start configuring Tizen rootfs" ln -sfn asm-${LINK_ARCH} ./usr/include/asm patch -p1 < $__TIZEN_CROSSDIR/tizen.patch +if [[ "$TIZEN_ARCH" == "riscv64" ]]; then + echo "Fixing broken symlinks in $PWD" + rm ./usr/lib64/libresolv.so + ln -s ../../lib64/libresolv.so.2 ./usr/lib64/libresolv.so + rm ./usr/lib64/libpthread.so + ln -s ../../lib64/libpthread.so.0 ./usr/lib64/libpthread.so + rm ./usr/lib64/libdl.so + ln -s ../../lib64/libdl.so.2 ./usr/lib64/libdl.so + rm ./usr/lib64/libutil.so + ln -s ../../lib64/libutil.so.1 ./usr/lib64/libutil.so + rm ./usr/lib64/libm.so + ln -s ../../lib64/libm.so.6 ./usr/lib64/libm.so + rm ./usr/lib64/librt.so + ln -s ../../lib64/librt.so.1 ./usr/lib64/librt.so + rm ./lib/ld-linux-riscv64-lp64d.so.1 + ln -s ../lib64/ld-linux-riscv64-lp64d.so.1 ./lib/ld-linux-riscv64-lp64d.so.1 +fi echo "< 0 ]]; do diff --git a/eng/common/post-build/add-build-to-channel.ps1 b/eng/common/post-build/add-build-to-channel.ps1 index de2d957922a6..49938f0c89f7 100644 --- a/eng/common/post-build/add-build-to-channel.ps1 +++ b/eng/common/post-build/add-build-to-channel.ps1 @@ -2,7 +2,7 @@ param( [Parameter(Mandatory=$true)][int] $BuildId, [Parameter(Mandatory=$true)][int] $ChannelId, [Parameter(Mandatory=$true)][string] $MaestroApiAccessToken, - [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com', + [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net', [Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16' ) diff --git a/eng/common/post-build/check-channel-consistency.ps1 b/eng/common/post-build/check-channel-consistency.ps1 index 63f3464c986a..1728f035a93e 100644 --- a/eng/common/post-build/check-channel-consistency.ps1 +++ b/eng/common/post-build/check-channel-consistency.ps1 @@ -7,7 +7,7 @@ try { . $PSScriptRoot\post-build-utils.ps1 if ($PromoteToChannels -eq "") { - Write-PipelineTaskError -Type 'warning' -Message "This build won't publish assets as it's not configured to any Maestro channel. If that wasn't intended use Darc to configure a default channel using add-default-channel for this branch or to promote it to a channel using add-build-to-channel. See https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#assigning-an-individual-build-to-a-channel for more info." + Write-PipelineTaskError -Type 'warning' -Message "This build won't publish assets as it's not configured to any Maestro channel. If that wasn't intended use Darc to configure a default channel using add-default-channel for this branch or to promote it to a channel using add-build-to-channel. See https://github.com/dotnet/arcade/blob/main/Documentation/Darc.md#assigning-an-individual-build-to-a-channel for more info." ExitWithExitCode 0 } diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 8508397d7764..1e779fec4dd1 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -3,7 +3,7 @@ param( [Parameter(Mandatory=$true)][int] $PublishingInfraVersion, [Parameter(Mandatory=$true)][string] $AzdoToken, [Parameter(Mandatory=$true)][string] $MaestroToken, - [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com', + [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net', [Parameter(Mandatory=$true)][string] $WaitPublishingFinish, [Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters, [Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters diff --git a/eng/common/post-build/redact-logs.ps1 b/eng/common/post-build/redact-logs.ps1 new file mode 100644 index 000000000000..82d91f6fd022 --- /dev/null +++ b/eng/common/post-build/redact-logs.ps1 @@ -0,0 +1,81 @@ +[CmdletBinding(PositionalBinding=$False)] +param( + [Parameter(Mandatory=$true, Position=0)][string] $InputPath, + [Parameter(Mandatory=$true)][string] $BinlogToolVersion, + [Parameter(Mandatory=$false)][string] $DotnetPath, + [Parameter(Mandatory=$false)][string] $PackageFeed = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json', + # File with strings to redact - separated by newlines. + # For comments start the line with '# ' - such lines are ignored + [Parameter(Mandatory=$false)][string] $TokensFilePath, + [Parameter(ValueFromRemainingArguments=$true)][String[]]$TokensToRedact +) + +try { + . $PSScriptRoot\post-build-utils.ps1 + + $packageName = 'binlogtool' + + $dotnet = $DotnetPath + + if (!$dotnet) { + $dotnetRoot = InitializeDotNetCli -install:$true + $dotnet = "$dotnetRoot\dotnet.exe" + } + + $toolList = & "$dotnet" tool list -g + + if ($toolList -like "*$packageName*") { + & "$dotnet" tool uninstall $packageName -g + } + + $toolPath = "$PSScriptRoot\..\..\..\.tools" + $verbosity = 'minimal' + + New-Item -ItemType Directory -Force -Path $toolPath + + Push-Location -Path $toolPath + + try { + Write-Host "Installing Binlog redactor CLI..." + Write-Host "'$dotnet' new tool-manifest" + & "$dotnet" new tool-manifest + Write-Host "'$dotnet' tool install $packageName --local --add-source '$PackageFeed' -v $verbosity --version $BinlogToolVersion" + & "$dotnet" tool install $packageName --local --add-source "$PackageFeed" -v $verbosity --version $BinlogToolVersion + + if (Test-Path $TokensFilePath) { + Write-Host "Adding additional sensitive data for redaction from file: " $TokensFilePath + $TokensToRedact += Get-Content -Path $TokensFilePath | Foreach {$_.Trim()} | Where { $_ -notmatch "^# " } + } + + $optionalParams = [System.Collections.ArrayList]::new() + + Foreach ($p in $TokensToRedact) + { + if($p -match '^\$\(.*\)$') + { + Write-Host ("Ignoring token {0} as it is probably unexpanded AzDO variable" -f $p) + } + elseif($p) + { + $optionalParams.Add("-p:" + $p) | Out-Null + } + } + + & $dotnet binlogtool redact --input:$InputPath --recurse --in-place ` + @optionalParams + + if ($LastExitCode -ne 0) { + Write-PipelineTelemetryError -Category 'Redactor' -Type 'warning' -Message "Problems using Redactor tool (exit code: $LastExitCode). But ignoring them now." + } + } + finally { + Pop-Location + } + + Write-Host 'done.' +} +catch { + Write-Host $_ + Write-PipelineTelemetryError -Category 'Redactor' -Message "There was an error while trying to redact logs. Error: $_" + ExitWithExitCode 1 +} diff --git a/eng/common/post-build/trigger-subscriptions.ps1 b/eng/common/post-build/trigger-subscriptions.ps1 index 55dea518ac58..ac9a95778fcd 100644 --- a/eng/common/post-build/trigger-subscriptions.ps1 +++ b/eng/common/post-build/trigger-subscriptions.ps1 @@ -2,7 +2,7 @@ param( [Parameter(Mandatory=$true)][string] $SourceRepo, [Parameter(Mandatory=$true)][int] $ChannelId, [Parameter(Mandatory=$true)][string] $MaestroApiAccessToken, - [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com', + [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net', [Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16' ) diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1 index 6c4ac6fec1a9..73828dd30d31 100644 --- a/eng/common/sdk-task.ps1 +++ b/eng/common/sdk-task.ps1 @@ -64,7 +64,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.8.1-2" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index e20ee3a983cb..0b01531357e3 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -154,7 +154,7 @@ jobs: displayName: RichCodeNav Upload inputs: languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} - environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} + environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }} richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} continueOnError: true diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index 42017109f374..3b25fd97923c 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -48,8 +48,8 @@ jobs: - group: AzureDevOps-Artifact-Feeds-Pats - name: runCodesignValidationInjection value: false - - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: - - template: /eng/common/templates/post-build/common-variables.yml + # unconditional - needed for logs publishing (redactor tool version) + - template: /eng/common/templates/post-build/common-variables.yml pool: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) @@ -81,7 +81,7 @@ jobs: arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' /p:BuildAssetRegistryToken=$(MaestroAccessToken) - /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com + /p:MaestroApiEndpoint=https://maestro.dot.net /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} /p:OfficialBuildId=$(Build.BuildNumber) condition: ${{ parameters.condition }} diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml index c24193acfc98..4ef7bd271fbd 100644 --- a/eng/common/templates/post-build/common-variables.yml +++ b/eng/common/templates/post-build/common-variables.yml @@ -7,7 +7,7 @@ variables: # Default Maestro++ API Endpoint and API Version - name: MaestroApiEndPoint - value: "https://maestro-prod.westus2.cloudapp.azure.com" + value: "https://maestro.dot.net" - name: MaestroApiAccessToken value: $(MaestroAccessToken) - name: MaestroApiVersion @@ -17,6 +17,8 @@ variables: value: 3.0.0 - name: SymbolToolVersion value: 1.0.1 + - name: BinlogToolVersion + value: 1.0.8 - name: runCodesignValidationInjection value: false diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index ef720f9d7819..d64236b28cfb 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -187,6 +187,7 @@ stages: parameters: StageLabel: 'Validation' JobLabel: 'Signing' + BinlogToolVersion: $(BinlogToolVersion) - job: displayName: SourceLink Validation diff --git a/eng/common/templates/steps/publish-logs.yml b/eng/common/templates/steps/publish-logs.yml index 88f238f36bfd..dadf1c464cd1 100644 --- a/eng/common/templates/steps/publish-logs.yml +++ b/eng/common/templates/steps/publish-logs.yml @@ -1,6 +1,9 @@ parameters: StageLabel: '' JobLabel: '' + CustomSensitiveDataList: '' + # A default - in case value from eng/common/templates/post-build/common-variables.yml is not passed + BinlogToolVersion: '1.0.8' steps: - task: Powershell@2 @@ -12,7 +15,30 @@ steps: Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ continueOnError: true condition: always() - + +- task: PowerShell@2 + displayName: Redact Logs + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1 + # For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml + # Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + # If the file exists - sensitive data for redaction will be sourced from it + # (single entry per line, lines starting with '# ' are considered comments and skipped) + arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs' + -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + '$(publishing-dnceng-devdiv-code-r-build-re)' + '$(MaestroAccessToken)' + '$(dn-bot-all-orgs-artifact-feeds-rw)' + '$(akams-client-id)' + '$(akams-client-secret)' + '$(microsoft-symbol-server-pat)' + '$(symweb-symbol-server-pat)' + '$(dn-bot-all-orgs-build-rw-code-rw)' + ${{parameters.CustomSensitiveDataList}} + continueOnError: true + condition: always() + - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index aa74ab4a81e7..e8def7e6a85f 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -158,7 +158,7 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { $env:DOTNET_MULTILEVEL_LOOKUP=0 # Disable first run since we do not need all ASP.NET packages restored. - $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + $env:DOTNET_NOLOGO=1 # Disable telemetry on CI. if ($ci) { @@ -228,7 +228,7 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) { Write-PipelinePrependPath -Path $dotnetRoot Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0' - Write-PipelineSetVariable -Name 'DOTNET_SKIP_FIRST_TIME_EXPERIENCE' -Value '1' + Write-PipelineSetVariable -Name 'DOTNET_NOLOGO' -Value '1' return $global:_DotNetInstallDir = $dotnetRoot } @@ -379,13 +379,13 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = } # Minimum VS version to require. - $vsMinVersionReqdStr = '17.6' + $vsMinVersionReqdStr = '17.7' $vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr) # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2 - $defaultXCopyMSBuildVersion = '17.6.0-2' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.8.1-2 + $defaultXCopyMSBuildVersion = '17.8.1-2' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { diff --git a/eng/common/tools.sh b/eng/common/tools.sh index e8d478943341..e98daf50c6b6 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -112,7 +112,7 @@ function InitializeDotNetCli { export DOTNET_MULTILEVEL_LOOKUP=0 # Disable first run since we want to control all package sources - export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + export DOTNET_NOLOGO=1 # Disable telemetry on CI if [[ $ci == true ]]; then @@ -165,7 +165,7 @@ function InitializeDotNetCli { Write-PipelinePrependPath -path "$dotnet_root" Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0" - Write-PipelineSetVariable -name "DOTNET_SKIP_FIRST_TIME_EXPERIENCE" -value "1" + Write-PipelineSetVariable -name "DOTNET_NOLOGO" -value "1" # return value _InitializeDotNetCli="$dotnet_root" @@ -310,7 +310,7 @@ function GetDotNetInstallScript { curl "$install_script_url" -sSL --retry 10 --create-dirs -o "$install_script" || { if command -v openssl &> /dev/null; then echo "Curl failed; dumping some information about dotnet.microsoft.com for later investigation" - echo | openssl s_client -showcerts -servername dotnet.microsoft.com -connect dotnet.microsoft.com:443 + echo | openssl s_client -showcerts -servername dotnet.microsoft.com -connect dotnet.microsoft.com:443 || true fi echo "Will now retry the same URL with verbose logging." with_retries curl "$install_script_url" -sSL --verbose --retry 10 --create-dirs -o "$install_script" || { @@ -341,7 +341,12 @@ function InitializeBuildTool { # return values _InitializeBuildTool="$_InitializeDotNetCli/dotnet" _InitializeBuildToolCommand="msbuild" - _InitializeBuildToolFramework="net8.0" + # use override if it exists - commonly set by source-build + if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then + _InitializeBuildToolFramework="net8.0" + else + _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" + fi } # Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116 diff --git a/eng/install-scancode.sh b/eng/install-scancode.sh new file mode 100755 index 000000000000..cec368af9f7b --- /dev/null +++ b/eng/install-scancode.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -euo pipefail + +# Install instructions: https://scancode-toolkit.readthedocs.io/en/latest/getting-started/install.html#installation-as-a-library-via-pip + +# See latest release at https://github.com/nexB/scancode-toolkit/releases +SCANCODE_VERSION="32.0.8" + +pyEnvPath="/tmp/scancode-env" +python3 -m venv $pyEnvPath +source $pyEnvPath/bin/activate +pip install scancode-toolkit==$SCANCODE_VERSION +deactivate + +# Setup a script which executes scancode in the virtual environment +cat > /usr/local/bin/scancode << EOF +#!/bin/bash +set -euo pipefail +source $pyEnvPath/bin/activate +scancode "\$@" +deactivate +EOF + +chmod +x /usr/local/bin/scancode diff --git a/eng/pipelines/source-build-license-scan.yml b/eng/pipelines/source-build-license-scan.yml new file mode 100644 index 000000000000..ca70fd70c7a0 --- /dev/null +++ b/eng/pipelines/source-build-license-scan.yml @@ -0,0 +1,138 @@ +# Pipeline documentation at https://github.com/dotnet/dotnet/blob/main/docs/license-scanning.md + +schedules: +- cron: "0 7 * * 1" + displayName: Run on Mondays at 7am UTC + branches: + include: + - main + - release/*.0.1xx* + - internal/release/*.0.1xx* + +pr: none +trigger: none + +parameters: +# Provides a way to scan a specific repo. If not provided, all repos of the VMR will be scanned. +- name: specificRepoName + type: string + displayName: "Specific repo name to scan (e.g. runtime, sdk). If empty, scans all repos of the VMR." + default: " " # Set it to an empty string to allow it be an optional parameter + +variables: + installerRoot: '$(Build.SourcesDirectory)/src/installer' + +jobs: +- job: Setup + pool: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals 1es-ubuntu-2004 + steps: + - script: | + vmrSrcDir="$(Build.SourcesDirectory)/src" + + # Builds an Azure DevOps matrix definition. Each entry in the matrix is a path, + # allowing a job to be run for each src repo. + matrix="" + + # Trim leading/trailing spaces from the repo name + specificRepoName=$(echo "${{ parameters.specificRepoName }}" | awk '{$1=$1};1') + + # If the repo name is provided, only scan that repo. + if [ ! -z "$specificRepoName" ]; then + matrix="\"$specificRepoName\": { \"repoPath\": \"$vmrSrcDir/$specificRepoName\" }" + else + for dir in $vmrSrcDir/*/ + do + if [ ! -z "$matrix" ]; then + matrix="$matrix," + fi + repoName=$(basename $dir) + matrix="$matrix \"$repoName\": { \"repoPath\": \"$dir\" }" + done + fi + + matrix="{ $matrix }" + + echo "##vso[task.setvariable variable=matrix;isOutput=true]$matrix" + name: GetMatrix + displayName: Get Matrix + +- job: LicenseScan + dependsOn: Setup + pool: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals 1es-ubuntu-2004 + timeoutInMinutes: 420 + strategy: + matrix: $[ dependencies.Setup.outputs['GetMatrix.matrix'] ] + steps: + + - script: $(Build.SourcesDirectory)/prep.sh --no-artifacts --no-bootstrap --no-prebuilts + displayName: 'Install .NET SDK' + + - task: PipAuthenticate@1 + displayName: 'Pip Authenticate' + inputs: + artifactFeeds: public/dotnet-public-pypi + onlyAddExtraIndex: false + + - script: $(installerRoot)/eng/install-scancode.sh + displayName: Install Scancode + + - script: > + $(Build.SourcesDirectory)/.dotnet/dotnet test + $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj + --filter "FullyQualifiedName=Microsoft.DotNet.SourceBuild.SmokeTests.LicenseScanTests.ScanForLicenses" + --logger:'trx;LogFileName=$(Agent.JobName)_LicenseScan.trx' + --logger:'console;verbosity=detailed' + -c Release + -bl:$(Build.SourcesDirectory)/artifacts/log/Debug/BuildTests_$(date +"%m%d%H%M%S").binlog + -flp:LogFile=$(Build.SourcesDirectory)/artifacts/logs/BuildTests_$(date +"%m%d%H%M%S").log + -clp:v=m + -e SMOKE_TESTS_LICENSE_SCAN_PATH=$(repoPath) + -e SMOKE_TESTS_RUNNING_IN_CI=true + -e SMOKE_TESTS_WARN_LICENSE_SCAN_DIFFS=false + -e SMOKE_TESTS_TARGET_RID=linux-x64 + -e SMOKE_TESTS_PORTABLE_RID=linux-x64 + displayName: Run Tests + workingDirectory: $(Build.SourcesDirectory) + + - script: | + set -x + targetFolder=$(Build.StagingDirectory)/BuildLogs/ + mkdir -p ${targetFolder} + cd "$(Build.SourcesDirectory)" + find artifacts/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \; + find artifacts/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \; + echo "Updated:" + find test/ -type f -name "Updated*.json" + find test/ -type f -name "Updated*.json" -exec cp {} --parents -t ${targetFolder} \; + echo "Results:" + find test/ -type f -name "scancode-results*.json" + find test/ -type f -name "scancode-results*.json" -exec cp {} --parents -t ${targetFolder} \; + echo "All:" + ls -R test/ + echo "BuildLogs:" + ls -R ${targetFolder} + displayName: Prepare BuildLogs staging directory + continueOnError: true + condition: succeededOrFailed() + + - publish: '$(Build.StagingDirectory)/BuildLogs' + artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) + displayName: Publish BuildLogs + continueOnError: true + condition: succeededOrFailed() + + - task: PublishTestResults@2 + displayName: Publish Test Results + condition: succeededOrFailed() + continueOnError: true + inputs: + testRunner: vSTest + testResultsFiles: '*.trx' + searchFolder: $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults + mergeTestResults: true + publishRunAttachments: true + testRunTitle: $(Agent.JobName) diff --git a/eng/pipelines/source-build-sdk-diff-tests.yml b/eng/pipelines/source-build-sdk-diff-tests.yml index 9b5a3f28eb2e..2184cb2e518e 100644 --- a/eng/pipelines/source-build-sdk-diff-tests.yml +++ b/eng/pipelines/source-build-sdk-diff-tests.yml @@ -4,7 +4,8 @@ schedules: branches: include: - main - - release/* + - release/*.0.1xx* + - internal/release/*.0.1xx* pr: none trigger: none @@ -26,6 +27,7 @@ jobs: targetRid: centos.8-x64 architecture: x64 dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} + includeArtifactsSize: true - template: templates/jobs/sdk-diff-tests.yml parameters: @@ -36,8 +38,8 @@ jobs: - template: templates/jobs/sdk-diff-tests.yml parameters: - buildName: Fedora38_Offline_MsftSdk - targetRid: fedora.38-x64 + buildName: Fedora39_Offline_MsftSdk + targetRid: fedora.39-x64 architecture: x64 dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} diff --git a/eng/pipelines/templates/jobs/sdk-diff-tests.yml b/eng/pipelines/templates/jobs/sdk-diff-tests.yml index d79849d6649a..c101034d646b 100644 --- a/eng/pipelines/templates/jobs/sdk-diff-tests.yml +++ b/eng/pipelines/templates/jobs/sdk-diff-tests.yml @@ -11,6 +11,10 @@ parameters: - name: dotnetDotnetRunId type: string +- name: includeArtifactsSize + type: boolean + default: false + jobs: - job: ${{ parameters.buildName }}_${{ parameters.architecture }} timeoutInMinutes: 150 @@ -51,36 +55,25 @@ jobs: env: AZURE_DEVOPS_EXT_PAT: $(System.AccessToken) - - task: DownloadPipelineArtifact@2 - displayName: Download MSFT SDK - inputs: - buildType: specific - buildVersionToDownload: specific - project: internal - pipeline: $(INSTALLER_OFFICIAL_CI_PIPELINE_ID) - buildId: $(InstallerBuildId) - artifact: BlobArtifacts - patterns: '**/dotnet-sdk-+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*)-linux-${{ parameters.architecture }}.tar.gz' - allowPartiallySucceededBuilds: true - allowFailedBuilds: true - downloadPath: $(Pipeline.Workspace)/Artifacts - checkDownloadedFiles: true - - - task: DownloadPipelineArtifact@2 - displayName: Download Source Build SDK - inputs: - buildType: specific - buildVersionToDownload: specific - project: internal - pipeline: $(DOTNET_DOTNET_CI_PIPELINE_ID) - buildId: $(DotnetDotnetBuildId) - artifact: ${{ parameters.buildName }}_${{ parameters.architecture }}_Artifacts + - template: ../steps/download-pipeline-artifact.yml + parameters: + patterns: '**/dotnet-sdk-+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*)-linux-${{ parameters.architecture }}.tar.gz' + displayName: Download MSFT SDK + + - template: ../steps/download-vmr-artifact.yml + parameters: + buildName: ${{ parameters.buildName }} + architecture: ${{ parameters.architecture }} patterns: '**/dotnet-sdk-+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*)-${{ parameters.targetRid }}.tar.gz' - allowPartiallySucceededBuilds: true - allowFailedBuilds: true - downloadPath: $(Pipeline.Workspace)/Artifacts - checkDownloadedFiles: true - + displayName: Download Source Build SDK + + - template: ../steps/download-vmr-artifact.yml + parameters: + buildName: ${{ parameters.buildName }} + architecture: ${{ parameters.architecture }} + patterns: '**/Private.SourceBuilt.Artifacts.+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*).${{ parameters.targetRid }}.tar.gz' + displayName: Download Source Built Artifacts + - script: | msft_sdk_tarball_name=$(find "$(Pipeline.Workspace)/Artifacts" -name "dotnet-sdk-*-linux-${{ parameters.architecture }}.tar.gz" -exec basename {} \;) @@ -96,10 +89,18 @@ jobs: exit 1 fi + artifacts_path=$(find "$(Pipeline.Workspace)/Artifacts" -name "Private.SourceBuilt.Artifacts.*.${{ parameters.targetRid }}.tar.gz" -exec basename {} \;) + + if [[ -z "$artifacts_path" ]]; then + echo "Source-build artifacts path does not exist in '$(Pipeline.Workspace)/Artifacts'. The associated build https://dev.azure.com/dnceng/internal/_build/results?buildId=$(DotnetDotnetBuildId) might have failed" + exit 1 + fi + eng/common/build.sh -bl --projects $(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj --restore echo "##vso[task.setvariable variable=MsftSdkTarballPath]$(Pipeline.Workspace)/Artifacts/$msft_sdk_tarball_name" echo "##vso[task.setvariable variable=SdkTarballPath]$(Pipeline.Workspace)/Artifacts/$sdk_tarball_name" + echo "##vso[task.setvariable variable=SourceBuiltArtifactsPath]$(Pipeline.Workspace)/Artifacts/$artifacts_path" displayName: Prepare Tests workingDirectory: $(Build.SourcesDirectory) @@ -115,12 +116,13 @@ jobs: -clp:v=m -e SMOKE_TESTS_MSFT_SDK_TARBALL_PATH=$(MsftSdkTarballPath) -e SMOKE_TESTS_SDK_TARBALL_PATH=$(SdkTarballPath) - -e SMOKE_TESTS_SOURCEBUILT_ARTIFACTS_PATH= + -e SMOKE_TESTS_SOURCEBUILT_ARTIFACTS_PATH=$(SourceBuiltArtifactsPath) -e SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS=false -e SMOKE_TESTS_RUNNING_IN_CI=true -e SMOKE_TESTS_TARGET_RID=${{ parameters.targetRid }} -e SMOKE_TESTS_PORTABLE_RID=linux-${{ parameters.architecture }} - -e SMOKE_TESTS_CUSTOM_PACKAGES_PATH= + -e SMOKE_TESTS_CUSTOM_PACKAGES_PATH= + -e SMOKE_TESTS_INCLUDE_ARTIFACTSSIZE=${{ parameters.includeArtifactsSize }} displayName: Run Tests workingDirectory: $(Build.SourcesDirectory) diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml index 041a47580bbd..c591c508b968 100644 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ b/eng/pipelines/templates/jobs/vmr-build.yml @@ -21,6 +21,10 @@ parameters: - name: architecture type: string +- name: artifactsRid + type: string + default: '' + - name: container type: string @@ -90,7 +94,10 @@ jobs: steps: - template: ../steps/vmr-prepare.yml parameters: - vmrBranch: ${{ parameters.vmrBranch }} + ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: + vmrBranch: $(System.PullRequest.TargetBranch) + ${{ else }}: + vmrBranch: ${{ parameters.vmrBranch }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} skipComponentGovernanceDetection: true @@ -141,17 +148,25 @@ jobs: - script: | set -euo pipefail + if [[ '${{ parameters.artifactsRid }}' == '' ]]; then + echo "'artifactsRid' is not specified. Cannot download source-built SDK." + exit 1 + fi + packageVersionsPath="${{ variables.sourcesPath }}/eng/Versions.props" notFoundMessage="No source-built SDK found to download..." echo "Looking for source-built SDK to download..." - archiveUrlLine=`grep -m 1 "" "$packageVersionsPath" || :` - urlPattern="(.*)" + archiveVersionLine=$(grep -m 1 "" "$packageVersionsPath" || :) + versionPattern="(.*)" - if [[ $archiveUrlLine =~ $urlPattern ]]; then - archiveUrl="${BASH_REMATCH[1]}" + if [[ $archiveVersionLine =~ $versionPattern ]]; then + archiveVersion="${BASH_REMATCH[1]}" + archiveUrl="https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-$archiveVersion-${{ parameters.artifactsRid }}.tar.gz" downloadDir="$(sourcesPath)/prereqs/packages/archive/" - (cd $downloadDir && curl --retry 5 -O $archiveUrl) + + echo "Downloading source-built SDK from $archiveUrl..." + (cd "$downloadDir" && curl --retry 5 -O "$archiveUrl") else echo "$notFoundMessage" exit 1 @@ -163,8 +178,13 @@ jobs: customPrepArgs="" prepSdk=true + + if [[ -n '${{ parameters.artifactsRid }}' ]]; then + customPrepArgs="${customPrepArgs} --artifacts-rid ${{ parameters.artifactsRid }}" + fi + if [[ '${{ parameters.withPreviousSDK }}' == 'True' ]]; then - # Source-built artifacts are from CentOS 8 Stream. We want to download them without + # Source-built artifacts are from CentOS 8 Stream or Alpine 3.17. We want to download them without # downloading portable versions from the internet. customPrepArgs="${customPrepArgs} --no-sdk --no-bootstrap" prepSdk=false diff --git a/eng/pipelines/templates/jobs/vmr-synchronization.yml b/eng/pipelines/templates/jobs/vmr-synchronization.yml index 7849b23e0e82..8b796caa116b 100644 --- a/eng/pipelines/templates/jobs/vmr-synchronization.yml +++ b/eng/pipelines/templates/jobs/vmr-synchronization.yml @@ -56,7 +56,6 @@ jobs: vmrBranch: ${{ parameters.vmrBranch }} targetRef: ${{ parameters.targetRef }} - - ${{ if and(not(parameters.noPush), not(in(variables['Build.Reason'], 'PullRequest')), eq(variables['System.TeamProject'], 'internal')) }}: # Push main and release branches to the public VMR - ${{ if or(eq(parameters.vmrBranch, 'main'), startsWith(parameters.vmrBranch, 'release/')) }}: @@ -82,4 +81,4 @@ jobs: --azdev-pat '$(dn-bot-dnceng-build-rw-code-rw)' --verbose displayName: Push changes to dotnet-dotnet (internal) - workingDirectory: $(Agent.BuildDirectory)/installer \ No newline at end of file + workingDirectory: $(Agent.BuildDirectory)/installer diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml index 43f0c8633ba4..4cfcea6d572f 100644 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ b/eng/pipelines/templates/stages/vmr-build.yml @@ -8,6 +8,9 @@ parameters: # Branch of the VMR to use (to push to for internal builds) vmrBranch: $(Build.SourceBranch) + # True when the build is a lite build + isLiteBuild: + # True when build is running from dotnet/dotnet directly isBuiltFromVmr: @@ -16,7 +19,7 @@ parameters: alpine317Container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.17 centOSStream8Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8 centOSStream9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9 - fedora38Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38 + fedora39Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39 ubuntu2204Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04 ubuntu2204ArmContainer: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-arm64 @@ -67,8 +70,6 @@ stages: jobs: - # PR and CI legs ------------------------------------ - - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline @@ -87,40 +88,79 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 - - template: ../jobs/vmr-build.yml - parameters: - # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: CentOSStream8_Offline_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: - name: ${{ variables.defaultPoolName }} - demands: ${{ variables.defaultPoolDemands }} - container: ${{ parameters.centOSStream8Container }} - buildFromArchive: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: false # 🚫 - useMonoRuntime: false # 🚫 - withPreviousSDK: false # 🚫 - - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: - # CI - Stage 1 x64 legs ------------------------------------ + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: CentOSStream8_Online_CurrentSourceBuiltSdk + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + architecture: x64 + pool: + name: ${{ variables.defaultPoolName }} + demands: ${{ variables.defaultPoolDemands }} + container: ${{ parameters.centOSStream8Container }} + buildFromArchive: false # 🚫 + enablePoison: false # 🚫 + excludeOmniSharpTests: true # ✅ + runOnline: true # ✅ + useMonoRuntime: false # 🚫 + withPreviousSDK: false # 🚫 + reuseBuildArtifactsFrom: CentOSStream8_Online_MsftSdk + + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: Alpine317_Offline_PreviousSourceBuiltSdk + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + architecture: x64 + artifactsRid: alpine.3.17-x64 + pool: + name: ${{ variables.defaultPoolName }} + demands: ${{ variables.defaultPoolDemands }} + container: ${{ parameters.alpine317Container }} + buildFromArchive: false # 🚫 + enablePoison: true # ✅ + excludeOmniSharpTests: true # ✅ + runOnline: false # 🚫 + useMonoRuntime: false # 🚫 + withPreviousSDK: true # ✅ + + - ${{ if eq(parameters.isLiteBuild, false) }}: - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: Alpine317_Offline_MsftSdk + buildName: Alpine317_Online_MsftSdk isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 + artifactsRid: alpine.3.17-x64 pool: name: ${{ variables.defaultPoolName }} demands: ${{ variables.defaultPoolDemands }} container: ${{ parameters.alpine317Container }} - buildFromArchive: false # ✅ + buildFromArchive: false # 🚫 + enablePoison: false # 🚫 + excludeOmniSharpTests: true # ✅ + runOnline: true # ✅ + useMonoRuntime: false # 🚫 + withPreviousSDK: false # 🚫 + + - template: ../jobs/vmr-build.yml + parameters: + # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline + buildName: CentOSStream8_Offline_MsftSdk + isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} + vmrBranch: ${{ variables.VmrBranch }} + architecture: x64 + pool: + name: ${{ variables.defaultPoolName }} + demands: ${{ variables.defaultPoolDemands }} + container: ${{ parameters.centOSStream8Container }} + buildFromArchive: true # ✅ enablePoison: false # 🚫 excludeOmniSharpTests: true # ✅ runOnline: false # 🚫 @@ -134,6 +174,7 @@ stages: isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 + artifactsRid: centos.8-x64 pool: name: ${{ variables.defaultPoolName }} demands: ${{ variables.defaultPoolDemands }} @@ -152,6 +193,7 @@ stages: isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 + artifactsRid: centos.8-x64 pool: name: ${{ variables.defaultPoolName }} demands: ${{ variables.defaultPoolDemands }} @@ -202,16 +244,16 @@ stages: - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: Fedora38_Offline_MsftSdk + buildName: Fedora39_Offline_MsftSdk isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 pool: name: ${{ variables.defaultPoolName }} demands: ${{ variables.defaultPoolDemands }} - container: ${{ parameters.fedora38Container }} + container: ${{ parameters.fedora39Container }} buildFromArchive: true # ✅ - enablePoison: true # ✅ + enablePoison: false # 🚫 excludeOmniSharpTests: false # 🚫 runOnline: false # 🚫 useMonoRuntime: false # 🚫 @@ -235,8 +277,6 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 - # CI - Stage 1 arm64 Legs ------------------------------------ - - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline @@ -253,42 +293,21 @@ stages: useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 - # CI - Stage 2 x64 Legs ------------------------------------ - - - template: ../jobs/vmr-build.yml - parameters: - # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: CentOSStream8_Online_CurrentSourceBuiltSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: - name: ${{ variables.defaultPoolName }} - demands: ${{ variables.defaultPoolDemands }} - container: ${{ parameters.centOSStream8Container }} - buildFromArchive: false # 🚫 - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: false # 🚫 - useMonoRuntime: false # 🚫 - withPreviousSDK: false # 🚫 - reuseBuildArtifactsFrom: CentOSStream8_Online_MsftSdk - - template: ../jobs/vmr-build.yml parameters: # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline - buildName: Fedora38_Offline_CurrentSourceBuiltSdk + buildName: Fedora39_Offline_CurrentSourceBuiltSdk isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} vmrBranch: ${{ variables.VmrBranch }} architecture: x64 pool: name: ${{ variables.defaultPoolName }} demands: ${{ variables.defaultPoolDemands }} - container: ${{ parameters.fedora38Container }} + container: ${{ parameters.fedora39Container }} buildFromArchive: false # 🚫 enablePoison: false # 🚫 excludeOmniSharpTests: false # 🚫 runOnline: false # 🚫 useMonoRuntime: false # 🚫 withPreviousSDK: false # 🚫 - reuseBuildArtifactsFrom: Fedora38_Offline_MsftSdk + reuseBuildArtifactsFrom: Fedora39_Offline_MsftSdk diff --git a/eng/pipelines/templates/steps/download-pipeline-artifact.yml b/eng/pipelines/templates/steps/download-pipeline-artifact.yml new file mode 100644 index 000000000000..21df363d7875 --- /dev/null +++ b/eng/pipelines/templates/steps/download-pipeline-artifact.yml @@ -0,0 +1,35 @@ +parameters: +- name: pipeline + type: string + default: $(INSTALLER_OFFICIAL_CI_PIPELINE_ID) + +- name: buildId + type: string + default: $(InstallerBuildId) + +- name: artifact + type: string + default: BlobArtifacts + +- name: patterns + type: string + +- name: displayName + type: string + default: Download Pipeline Artifact + +steps: +- task: DownloadPipelineArtifact@2 + inputs: + buildType: specific + buildVersionToDownload: specific + project: internal + pipeline: ${{ parameters.pipeline }} + buildId: ${{ parameters.buildId }} + artifact: ${{ parameters.artifact }} + patterns: ${{ parameters.patterns }} + allowPartiallySucceededBuilds: true + allowFailedBuilds: true + downloadPath: $(Pipeline.Workspace)/Artifacts + checkDownloadedFiles: true + displayName: ${{ parameters.displayName }} diff --git a/eng/pipelines/templates/steps/download-vmr-artifact.yml b/eng/pipelines/templates/steps/download-vmr-artifact.yml new file mode 100644 index 000000000000..2e2266c426d8 --- /dev/null +++ b/eng/pipelines/templates/steps/download-vmr-artifact.yml @@ -0,0 +1,22 @@ +parameters: +- name: buildName + type: string + +- name: architecture + type: string + +- name: patterns + type: string + +- name: displayName + type: string + default: Download VMR Artifact + +steps: +- template: ../steps/download-pipeline-artifact.yml + parameters: + pipeline: $(DOTNET_DOTNET_CI_PIPELINE_ID) + buildId: $(DotnetDotnetBuildId) + artifact: ${{ parameters.buildName }}_${{ parameters.architecture }}_Artifacts + patterns: ${{ parameters.patterns }} + displayName: ${{ parameters.displayName }} diff --git a/eng/pipelines/templates/steps/vmr-prepare.yml b/eng/pipelines/templates/steps/vmr-prepare.yml index 08c40b646b62..644891799bae 100644 --- a/eng/pipelines/templates/steps/vmr-prepare.yml +++ b/eng/pipelines/templates/steps/vmr-prepare.yml @@ -28,11 +28,11 @@ steps: path: vmr clean: true -- ${{ if or(not(parameters.isBuiltFromVmr), eq(variables['System.TeamProject'], 'internal')) }}: - - script: | - git switch -c ${{ parameters.vmrBranch }} - displayName: Checkout ${{ parameters.vmrBranch }} - workingDirectory: $(Agent.BuildDirectory)/vmr +- script: | + git checkout --track origin/${{ parameters.vmrBranch }} + echo "##vso[task.setvariable variable=vmrBranch]${{ parameters.vmrBranch }}" + displayName: Check out ${{ parameters.vmrBranch }} + workingDirectory: $(Agent.BuildDirectory)/vmr # TODO (https://github.com/dotnet/arcade/issues/11332): Allow full CG? # Currently, we ignore dirs of individual repos - they have been scanned before diff --git a/eng/pipelines/templates/steps/vmr-pull-updates.yml b/eng/pipelines/templates/steps/vmr-pull-updates.yml index fc5bd98bc428..3d2fdf3cd1c9 100644 --- a/eng/pipelines/templates/steps/vmr-pull-updates.yml +++ b/eng/pipelines/templates/steps/vmr-pull-updates.yml @@ -22,12 +22,33 @@ steps: displayName: Clone dotnet/installer path: installer +# This step is needed so that when we get a detached HEAD / shallow clone, +# we still pull the commit into the temporary installer clone to use it during the sync. +- script: | + git branch installer-head + git rev-parse HEAD + displayName: Label PR commit + workingDirectory: $(Agent.BuildDirectory)/installer + - script: | git checkout -B ${{ parameters.vmrBranch }} echo "##vso[task.setvariable variable=vmrBranch]${{ parameters.vmrBranch }}" + mkdir -p ${{ parameters.vmrPath }}/artifacts/x64/Release displayName: Prepare branch ${{ parameters.vmrBranch }} workingDirectory: ${{ parameters.vmrPath }} +- script: | + git config --global user.name "dotnet-maestro[bot]" + git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com" + displayName: Set git author to dotnet-maestro[bot] + workingDirectory: ${{ parameters.vmrPath }} + +- script: | + echo '**/*' > .artifactignore + echo '!./*.patch' >> .artifactignore + displayName: Prepare .artifactignore + workingDirectory: $(Agent.TempDirectory) + - script: > ./eng/vmr-sync.sh --vmr ${{ parameters.vmrPath }} @@ -40,5 +61,12 @@ steps: --readme-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/README.template.md --tpn-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt --debug + || + (echo "##vso[task.logissue type=error]Failed to synchronize the VMR" && exit 1) displayName: Synchronize dotnet/dotnet workingDirectory: $(Agent.BuildDirectory)/installer + +- publish: $(Agent.TempDirectory) + artifact: $(System.JobDisplayName)_FailedPatches + displayName: Upload failed patches + condition: failed() diff --git a/eng/pipelines/vmr-build-internal.yml b/eng/pipelines/vmr-build-internal.yml index 85e8fe313fd1..d4bd115785ca 100644 --- a/eng/pipelines/vmr-build-internal.yml +++ b/eng/pipelines/vmr-build-internal.yml @@ -23,14 +23,14 @@ variables: value: ${{ replace(parameters.vmrBranch, ' ', '') }} - ${{ else }}: - name: VmrBranch - value: release/8.0.1xx + value: ${{ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} resources: repositories: - repository: vmr type: git name: dotnet-dotnet - ref: $(VmrBranch) + ref: ${{ variables.VmrBranch }} stages: # You can temporarily disable the VMR Build stage by changing the default of disableVmrBuild diff --git a/eng/pipelines/vmr-build.yml b/eng/pipelines/vmr-build.yml index 3f2e1c759fd9..e6a827a5117b 100644 --- a/eng/pipelines/vmr-build.yml +++ b/eng/pipelines/vmr-build.yml @@ -4,6 +4,10 @@ pr: include: - main - release/* + exclude: + - release/*.0.2xx + - release/*.0.3xx + - release/*.0.4xx parameters: - name: vmrBranch @@ -22,7 +26,7 @@ variables: value: ${{ replace(parameters.vmrBranch, ' ', '') }} - ${{ else }}: - name: VmrBranch - value: release/8.0.1xx + value: ${{ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} resources: repositories: @@ -30,7 +34,7 @@ resources: type: github name: dotnet/dotnet endpoint: dotnet - ref: $(VmrBranch) + ref: ${{ variables.VmrBranch }} stages: # You can temporarily disable the VMR Build stage by setting the disableVmrBuild variable diff --git a/eng/pipelines/vmr-sync-internal.yml b/eng/pipelines/vmr-sync-internal.yml index 176f98910c56..0a10a518e773 100644 --- a/eng/pipelines/vmr-sync-internal.yml +++ b/eng/pipelines/vmr-sync-internal.yml @@ -5,6 +5,10 @@ trigger: branches: include: - internal/release/* + exclude: + - internal/release/*.0.2xx + - internal/release/*.0.3xx + - internal/release/*.0.4xx resources: repositories: diff --git a/eng/pipelines/vmr-sync.yml b/eng/pipelines/vmr-sync.yml index aa12adcbea4d..6659887f1c76 100644 --- a/eng/pipelines/vmr-sync.yml +++ b/eng/pipelines/vmr-sync.yml @@ -6,6 +6,10 @@ trigger: include: - main - release/* + exclude: + - release/*.0.2xx + - release/*.0.3xx + - release/*.0.4xx resources: repositories: diff --git a/eng/pipelines/vmr-vertical-build-poc.yml b/eng/pipelines/vmr-vertical-build-poc.yml new file mode 100644 index 000000000000..b9ef33cca2ee --- /dev/null +++ b/eng/pipelines/vmr-vertical-build-poc.yml @@ -0,0 +1,52 @@ +trigger: none +pr: + branches: + include: + - main + +parameters: +- name: vmrBranch + displayName: dotnet/dotnet branch to push to + type: string + default: ' ' + +- name: disableVmrBuild + displayName: Skip source-building the VMR + type: boolean + default: false + +variables: +- ${{ if ne(parameters.vmrBranch, ' ') }}: + - name: VmrBranch + value: ${{ replace(parameters.vmrBranch, ' ', '') }} +- ${{ else }}: + - name: VmrBranch + value: ${{ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} + +resources: + repositories: + - repository: vmr + type: github + name: dotnet/dotnet + endpoint: dotnet + ref: ${{ variables.VmrBranch }} + +stages: +- ${{ if not(parameters.disableVmrBuild) }}: + - template: templates/stages/vmr-cross-build.yml + parameters: + vmrBranch: ${{ variables.VmrBranch }} + isBuiltFromVmr: false + isLiteBuild: true + +# In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate +# that the PR can be merged and later synchronized into the VMR without problems. +- ${{ else }}: + - stage: Synchronize_VMR + displayName: Synchronize VMR + dependsOn: [] + jobs: + - template: templates/jobs/vmr-synchronization.yml + parameters: + vmrBranch: ${{ variables.VmrBranch }} + noPush: true diff --git a/eng/vmr-sync.sh b/eng/vmr-sync.sh index a753efdd8b6e..0e0a5b275e83 100755 --- a/eng/vmr-sync.sh +++ b/eng/vmr-sync.sh @@ -135,7 +135,7 @@ while [[ $# -gt 0 ]]; do recursive=true ;; --remote) - additional_remotes="$additional_remotes,$2" + additional_remotes="$additional_remotes $2" shift ;; --readme-template) @@ -265,9 +265,10 @@ fi $azdev_pat \ --$verbosity \ $recursive_arg \ + $additional_remotes \ --readme-template "$readme_template" \ --tpn-template "$tpn_template" \ - $additional_remotes \ + --discard-patches \ "$repository" if [[ $? == 0 ]]; then diff --git a/global.json b/global.json index 789235dfe60a..b74be4a43b22 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "tools": { - "dotnet": "8.0.100-preview.7.23376.3", + "dotnet": "9.0.100-alpha.1.23524.3", "runtimes": { "dotnet": [ - "$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)" + "$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)" ] } }, @@ -11,7 +11,7 @@ "cmake": "3.21.0" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23463.1", - "Microsoft.DotNet.CMake.Sdk": "8.0.0-beta.23463.1" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23601.1", + "Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.23601.1" } } diff --git a/src/Microsoft.Dotnet.Sdk.Internal/Class1.cs b/src/Microsoft.Dotnet.Sdk.Internal/Class1.cs deleted file mode 100644 index 9b1a10d91839..000000000000 --- a/src/Microsoft.Dotnet.Sdk.Internal/Class1.cs +++ /dev/null @@ -1,7 +0,0 @@ - -namespace MicrosoftDotnetSdkInternal -{ - public class Class1 - { - } -} diff --git a/src/SourceBuild/content/.sscignore b/src/SourceBuild/content/.sscignore new file mode 100644 index 000000000000..bbeb864a8f43 --- /dev/null +++ b/src/SourceBuild/content/.sscignore @@ -0,0 +1,3 @@ +{ + "cfs" : ["CFS0013"] +} diff --git a/src/SourceBuild/content/Directory.Build.props b/src/SourceBuild/content/Directory.Build.props index 69262c7a8659..91aca8127601 100644 --- a/src/SourceBuild/content/Directory.Build.props +++ b/src/SourceBuild/content/Directory.Build.props @@ -8,6 +8,8 @@ + + net9.0 netstandard2.0 @@ -20,8 +22,11 @@ $(BuildArchitecture) $(BuildArchitecture) $(BuildArchitecture) + $(BuildArchitecture) x64 + $(Platform) + $(OverrideTargetRid.Substring($(OverrideTargetRid.LastIndexOf('-'))).TrimStart('-')) false @@ -99,9 +104,8 @@ $(LeakDetectionTasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.dll $(BaseOutputPath)obj/ - $(BaseOutputPath)$(Platform)/$(Configuration)/ - $(BaseIntermediatePath)$(Platform)/$(Configuration)/ - $(IntermediatePath)blobs/ + $(BaseOutputPath)$(TargetPlatform)/$(Configuration)/ + $(BaseIntermediatePath)$(TargetPlatform)/$(Configuration)/ $(IntermediatePath)nuget-packages/ $(IntermediatePath)blob-feed/ $(SourceBuiltBlobFeedDir)packages/ @@ -111,9 +115,6 @@ $(PrereqsPackagesDir)previously-source-built/ $(CustomPrebuiltSourceBuiltPackagesPath)/ $(OutputPath) - $(LocalBlobStorageRoot)Sdk/ - $(LocalBlobStorageRoot)Runtime/ - $(LocalBlobStorageRoot)aspnetcore/Runtime/ $(BaseOutputPath)logs/ $(BaseOutputPath)msbuild-debug/ $(BaseOutputPath)roslyn-debug/ @@ -167,11 +168,11 @@ Linux FreeBSD - $(__PortableTargetOS)-$(Platform) - freebsd-$(Platform) - osx-$(Platform) - linux-$(Platform) - win-$(Platform) + $(__PortableTargetOS)-$(TargetPlatform) + freebsd-$(TargetPlatform) + osx-$(TargetPlatform) + linux-$(TargetPlatform) + win-$(TargetPlatform) $(PortableRid) diff --git a/src/SourceBuild/content/build.proj b/src/SourceBuild/content/build.proj index 55e5a66c05b4..aa0804da745d 100644 --- a/src/SourceBuild/content/build.proj +++ b/src/SourceBuild/content/build.proj @@ -4,9 +4,14 @@ + + + true + + @@ -20,7 +25,6 @@ - @@ -57,6 +61,83 @@ + + + + + + + + + + $([System.IO.Path]::GetFileName('%(SymbolsTarball.Identity)')) + $(Filename.Split('.')[1]) + $(ArtifactsTmpDir)Symbols + $(UnifiedSymbolsLayout)/$(RepositoryName) + + + + + + + + + + + + $(OutputPath)dotnet-symbols-all-$(MicrosoftSourceBuildIntermediateInstallerVersion)-$(TargetRid).tar.gz + + + + + + + + + + + + + + + $(ArtifactsTmpDir)SdkSymbols + $(OutputPath)dotnet-symbols-sdk-$(MicrosoftSourceBuildIntermediateInstallerVersion)-$(TargetRid).tar.gz + $(ArtifactsTmpDir)Sdk + %(SdkTarballItem.Identity) + + + + + + + + + + + + + + + + - $(SmokeTestsDir)bin/$(Configuration)/net8.0/ + $(SmokeTestsDir)bin/$(Configuration)/$(NetCurrent)/ $(SmokeTestsArtifactsDir)packages/ @@ -163,36 +246,12 @@ - - - - - - - - - - - - - $(RelativeBlobPath)/%(Filename)%(Extension) - - - - - - - - + CreatePrebuiltsTarballIfPrebuiltsExist; + ErrorOnPrebuilts"/> @@ -215,4 +274,9 @@ + + + + diff --git a/src/SourceBuild/content/docs/license-scanning.md b/src/SourceBuild/content/docs/license-scanning.md new file mode 100644 index 000000000000..6007776abcc4 --- /dev/null +++ b/src/SourceBuild/content/docs/license-scanning.md @@ -0,0 +1,24 @@ +# License Scanning + +The VMR is regularly scanned for license references to ensure that only open-source license are used where relevant. + +License scanning pipline: https://dev.azure.com/dnceng/internal/_build?definitionId=1301 (internal only) + +License scanning test: https://github.com/dotnet/dotnet/blob/main/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs + +By default, running the pipeline will scan all repos within the VMR which takes several hours to run. +The pipeline can be triggered manually to target a specific repo within the VMR by setting the `specificRepoName` parameter. +This value should be the name of the repo within the VMR (i.e. a name of a directory within https://github.com/dotnet/dotnet/tree/main/src). +To test source modifications intended to resolve a license issue, apply the change in an internal branch of the VMR. +Run this pipeline, targeting your branch, and set the `specificRepoName` parameter to the name of the repo containing the change. + +The output of the pipeline is a set of test results and logs. +The logs are published as an artifact and can be found at test/Microsoft.DotNet/SourceBuild.SmokeTests/bin/Release/netX.0/logs. +It consists of the following: + * `UpdatedLicenses..json`: This is the output of that gets compared to the stored baseline. + If they're the same, the test passes; if not, it fails. By comparing this file to the baseline, one can determine which new license + references have been introduced. + If everything is deemed to be acceptable, the developer can either update the allowed licenses, update the exclusions file, update the + baseline, or any combination. + * `scancode-results.json`: This is the raw output that comes from scancode. This file is useful for diagnostic purposes because it tells you + the exact line number of where a license has been detected in a file. diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props index 80faaca384dd..2e1b9545d059 100644 --- a/src/SourceBuild/content/eng/Versions.props +++ b/src/SourceBuild/content/eng/Versions.props @@ -15,22 +15,21 @@ Building .NET from source depends on several archives, depending on the branch's current source-buildability status. - PrivateSourceBuiltArtifactsUrl is a tar.gz of .NET build outputs from a previous - build needed to build the current version of .NET. This is always defined, because .NET needs - to be bootstrappable at any point in time. + PrivateSourceBuiltSdkVersion is the version number of a tar.gz of the source build .NET SDK + from the previous release for a particular OS. It is used by CI to validate that the current + release can be built with it. - PrivateSourceBuiltPrebuiltsUrl is a tar.gz of assets downloaded from the internet - that are needed to build the current version of .NET. Early in the lifecycle of a .NET major - or minor release, prebuilts may be needed. When the release is mature, prebuilts are not - necessary, and this property is removed from the file. + PrivateSourceBuiltArtifactsVersion is the version number of a tar.gz of .NET build outputs + from a previous build needed to build the current version of .NET. This is always defined + because .NET needs to be bootstrappable at any point in time. - PrivateSourceBuiltSdkUrl_ is a tar.gz of the source build .NET SDK from the previous release - for a particular OS. It is used by CI to validate that the current release can be built with it. - - These URLs can't be composed from their base URL and version as we read them from the - prep.sh and pipeline scripts, outside of MSBuild. + PrivateSourceBuiltPrebuiltsVersion is the version number of a tar.gz of assets downloaded + from the internet that are needed to build the current version of .NET. Early in the lifecycle + of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts + are not necessary, and this property is removed from the file. --> - https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.100-rc.1.23455.1.centos.8-x64.tar.gz - https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.100-rc.1.23455.1-centos.8-x64.tar.gz + 9.0.100-alpha.1.23567.1 + 9.0.100-alpha.1.23567.1 + 0.1.0-9.0.100-6 diff --git a/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props b/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props index 2692610eb72c..e85bea0e3af4 100644 --- a/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props +++ b/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props @@ -1,11 +1,25 @@ - - 7.0.4-servicing.23107.6 + + 7.0.4-servicing.23107.6 + + $(NonshippingRuntimeVersionFor700) - $(NonshippingRuntimeVersionFor700) - $(NonshippingRuntimeVersionFor700) - $(NonshippingRuntimeVersionFor700) + 8.0.0-rc.2.23479.6 + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + $(Msft80RC2RuntimeVersion) + diff --git a/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj b/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj index e38e77b24618..b9dc057ab656 100644 --- a/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj +++ b/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj @@ -19,10 +19,12 @@ - - - - + + + + + + @@ -45,50 +47,53 @@ + + + - - - %(LinuxRid.Identity) - + + + %(UnixRid.Identity) + - - - %(LinuxRid.Identity) - + + + %(UnixRid.Identity) + - - %(RuntimePackWithLinuxRid.Identity).%(RuntimePackWithLinuxRid.LinuxRid) + + %(RuntimePackWithUnixRid.Identity).%(RuntimePackWithUnixRid.UnixRid) - - %(PortablePackageWithLinuxRid.Identity) + + %(PortablePackageWithUnixRid.Identity) - - runtime.%(PortablePackageWithLinuxRid.LinuxRid).%(PortablePackageWithLinuxRid.Identity) + + runtime.%(PortablePackageWithUnixRid.UnixRid).%(PortablePackageWithUnixRid.Identity) - - runtime.%(PortablePackageWithLinuxRid.LinuxRid).runtime.native.%(PortablePackageWithLinuxRid.Identity) + + runtime.%(PortablePackageWithUnixRid.UnixRid).runtime.native.%(PortablePackageWithUnixRid.Identity) diff --git a/src/SourceBuild/content/eng/pipelines/ci-lite.yml b/src/SourceBuild/content/eng/pipelines/ci-lite.yml new file mode 100644 index 000000000000..6276ec4a2b08 --- /dev/null +++ b/src/SourceBuild/content/eng/pipelines/ci-lite.yml @@ -0,0 +1,22 @@ +# This is the dotnet/dotnet-lite pipeline that is triggered by pushes to main and PRs targetting main and release/*. + +trigger: + batch: true + branches: + include: + - main + +pr: + branches: + include: + - main + - release/* + +stages: +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: templates/stages/vmr-scan.yml + +- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml + parameters: + isBuiltFromVmr: true + isLiteBuild: true diff --git a/src/SourceBuild/content/eng/pipelines/ci.yml b/src/SourceBuild/content/eng/pipelines/ci.yml index 55b6a212d046..edefbe789f34 100644 --- a/src/SourceBuild/content/eng/pipelines/ci.yml +++ b/src/SourceBuild/content/eng/pipelines/ci.yml @@ -1,24 +1,27 @@ -# This is the main build definition (PR+CI) for dotnet/dotnet +# This is the dotnet/dotnet pipeline that is triggered every weekday at midnight PST (08:00 UTC) for "main" and when changes are pushed to release/* and internal/release/* branches. -trigger: - batch: true +schedules: +- cron: '0 8 * * Mon-Fri' + displayName: Weekday midnight build branches: include: - main - - release/* - - internal/release/* + batch: true -pr: +trigger: + batch: true branches: - include: - - main - - release/* - - internal/release/* + include: + - release/* + - internal/release/* + +pr: none stages: -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: +- ${{ if ne(variables['Build.Reason'], 'Schedule') }}: - template: templates/stages/vmr-scan.yml - template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml parameters: isBuiltFromVmr: true + isLiteBuild: false diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs index e983090be7b1..dab29fae4edf 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs @@ -12,8 +12,11 @@ using System.IO.Compression; using System.Linq; using System.Reflection; +using System.Reflection.Metadata; +using System.Reflection.PortableExecutable; using System.Security.Cryptography; using System.Text; +using System.Text.RegularExpressions; using System.Xml; using System.Xml.Linq; @@ -29,6 +32,12 @@ public class CheckForPoison : Task [Required] public ITaskItem[] FilesToCheck { get; set; } + /// + /// The path of the project directory to the FilesToCheck. + /// + [Required] + public string ProjectDirPath { get; set; } + /// /// The output path for an XML poison report, if desired. /// @@ -141,6 +150,10 @@ public class CheckForPoison : Task private const string PoisonMarker = "POISONED"; + private const string SbrpAttributeType = "System.Reflection.AssemblyMetadataAttribute"; + + private record CandidateFileEntry(string ExtractedPath, string DisplayPath); + public override bool Execute() { IEnumerable poisons = GetPoisonedFiles(FilesToCheck.Select(f => f.ItemSpec), HashCatalogFilePath, MarkerFileName); @@ -176,7 +189,9 @@ internal IEnumerable GetPoisonedFiles(IEnumerable ini IEnumerable nonShippingPackages = GetAllNonShippingPackages(); IEnumerable catalogedPackages = ReadCatalog(catalogedPackagesFilePath); var poisons = new List(); - var candidateQueue = new Queue(initialCandidates); + var candidateQueue = new Queue(initialCandidates.Select(candidate => + new CandidateFileEntry(candidate, Utility.MakeRelativePath(candidate, ProjectDirPath)))); + if (!string.IsNullOrWhiteSpace(OverrideTempPath)) { Directory.CreateDirectory(OverrideTempPath); @@ -186,22 +201,22 @@ internal IEnumerable GetPoisonedFiles(IEnumerable ini while (candidateQueue.Any()) { - var checking = candidateQueue.Dequeue(); + var candidate = candidateQueue.Dequeue(); // if this is a zip or NuPkg, extract it, check for the poison marker, and // add its contents to the list to be checked. - if (ZipFileExtensions.Concat(TarFileExtensions).Concat(TarGzFileExtensions).Any(e => checking.ToLowerInvariant().EndsWith(e))) + if (ZipFileExtensions.Concat(TarFileExtensions).Concat(TarGzFileExtensions).Any(e => candidate.ExtractedPath.ToLowerInvariant().EndsWith(e))) { - Log.LogMessage($"Zip or NuPkg file to check: {checking}"); + Log.LogMessage($"Zip or NuPkg file to check: {candidate.ExtractedPath}"); // Skip non-shipping packages - if (nonShippingPackages.Contains(Path.GetFileName(checking), StringComparer.OrdinalIgnoreCase)) + if (nonShippingPackages.Contains(Path.GetFileName(candidate.ExtractedPath), StringComparer.OrdinalIgnoreCase)) { continue; } - var tempCheckingDir = Path.Combine(tempDir.FullName, Path.GetFileNameWithoutExtension(checking)); - PoisonedFileEntry result = ExtractAndCheckZipFileOnly(catalogedPackages, checking, markerFileName, tempCheckingDir, candidateQueue); + var tempCheckingDir = Path.Combine(tempDir.FullName, Path.GetFileNameWithoutExtension(candidate.ExtractedPath)); + PoisonedFileEntry result = ExtractAndCheckZipFileOnly(catalogedPackages, candidate, markerFileName, tempCheckingDir, candidateQueue); if (result != null) { poisons.Add(result); @@ -209,7 +224,7 @@ internal IEnumerable GetPoisonedFiles(IEnumerable ini } else { - PoisonedFileEntry result = CheckSingleFile(catalogedPackages, tempDir.FullName, checking); + PoisonedFileEntry result = CheckSingleFile(catalogedPackages, candidate); if (result != null) { poisons.Add(result); @@ -237,10 +252,12 @@ private IEnumerable GetAllNonShippingPackages() } } - private static PoisonedFileEntry CheckSingleFile(IEnumerable catalogedPackages, string rootPath, string fileToCheck) + private static PoisonedFileEntry CheckSingleFile(IEnumerable catalogedPackages, CandidateFileEntry candidate) { // skip some common files that get copied verbatim from nupkgs - LICENSE, _._, etc as well as // file types that we never care about - text files, .gitconfig, etc. + var fileToCheck = candidate.ExtractedPath; + if (FileNamesToSkip.Any(f => Path.GetFileName(fileToCheck).ToLowerInvariant() == f.ToLowerInvariant()) || FileExtensionsToSkip.Any(e => Path.GetExtension(fileToCheck).ToLowerInvariant() == e.ToLowerInvariant()) || (new FileInfo(fileToCheck).Length == 0)) @@ -249,7 +266,7 @@ private static PoisonedFileEntry CheckSingleFile(IEnumerable catalogedPackages, string zipToCheck, string markerFileName, string tempDir, Queue futureFilesToCheck) + private static bool IsAssemblyFromSbrp(string assemblyPath) + { + using var stream = new FileStream(assemblyPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + using var peReader = new PEReader(stream); + + MetadataReader reader = peReader.GetMetadataReader(); + return reader.CustomAttributes.Select(attrHandle => reader.GetCustomAttribute(attrHandle)) + .Any(attr => IsAttributeSbrp(reader, attr)); + } + + private static bool IsAttributeSbrp(MetadataReader reader, CustomAttribute attr) + { + string attributeType = string.Empty; + + if (attr.Constructor.Kind == HandleKind.MemberReference) + { + MemberReference mref = reader.GetMemberReference((MemberReferenceHandle)attr.Constructor); + + if (mref.Parent.Kind == HandleKind.TypeReference) + { + TypeReference tref = reader.GetTypeReference((TypeReferenceHandle)mref.Parent); + attributeType = $"{reader.GetString(tref.Namespace)}.{reader.GetString(tref.Name)}"; + } + } + + if (attributeType == SbrpAttributeType) + { + var decodedValue = attr.DecodeValue(DummyAttributeTypeProvider.Instance); + try + { + return decodedValue.FixedArguments[0].Value.ToString() == "source" && decodedValue.FixedArguments[1].Value.ToString() == "source-build-reference-packages"; + } + catch + { + throw new InvalidOperationException($"{SbrpAttributeType} is not formatted properly with a key, value pair."); + } + } + + return false; + } + + private static PoisonedFileEntry ExtractAndCheckZipFileOnly(IEnumerable catalogedPackages, CandidateFileEntry candidate, string markerFileName, string tempDir, Queue futureFilesToCheck) { var poisonEntry = new PoisonedFileEntry(); + var zipToCheck = candidate.ExtractedPath; poisonEntry.Path = zipToCheck; using (var sha = SHA256.Create()) @@ -375,8 +438,9 @@ private static PoisonedFileEntry ExtractAndCheckZipFileOnly(IEnumerable + { + public static readonly DummyAttributeTypeProvider Instance = new(); + + public Type GetPrimitiveType(PrimitiveTypeCode typeCode) => default(Type); + + public Type GetSystemType() => default(Type); + + public Type GetSZArrayType(Type elementType) => default(Type); + + public Type GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind) => default(Type); + + public Type GetTypeFromReference(MetadataReader reader, TypeReferenceHandle handle, byte rawTypeKind) => default(Type); + + public Type GetTypeFromSerializedName(string name) => default(Type); + + public PrimitiveTypeCode GetUnderlyingEnumType(Type type) => default(PrimitiveTypeCode); + + public bool IsSystemType(Type type) => default(bool); + } +} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs index 270fb11f94fc..32abcae71795 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs @@ -155,6 +155,7 @@ public override bool Execute() } File.Delete(p.ItemSpec); File.Move(poisonedPackagePath, p.ItemSpec); + Directory.Delete(packageTempPath, true); } } diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj index 8598377a2aed..27510e6db859 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj @@ -1,7 +1,7 @@  - net8.0 + $(NetCurrent) true $(LeakDetectionTasksBinDir) diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonType.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonType.cs index de5c35961bda..4ac37e1cb2b0 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonType.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonType.cs @@ -11,5 +11,6 @@ internal enum PoisonType Hash = 1, AssemblyAttribute = 2, NupkgFile = 4, + SourceBuildReferenceAssembly = 8, } } diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AddRidToRuntimeJson.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AddRidToRuntimeJson.cs deleted file mode 100644 index 5842d0d823c6..000000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AddRidToRuntimeJson.cs +++ /dev/null @@ -1,94 +0,0 @@ -// 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; -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; -using NuGet.Packaging; -using NuGet.Packaging.Core; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System.Collections.Generic; -using System.Linq; -using NuGet.Versioning; - -namespace Microsoft.DotNet.Build.Tasks -{ - public class AddRidToRuntimeJson:Task - { - /// - /// [OS name].[version]-[architecture] - /// - [Required] - public string Rid { get; set; } - - [Required] - public string RuntimeJson { get; set; } - - private string runtimesIdentifier = "runtimes"; - - public override bool Execute() - { - string[] ridParts = Rid.Split('-'); - string osNameAndVersion = ridParts[0]; - string[] osParts = osNameAndVersion.Split(new char[] { '.' }, 2); - - if (ridParts.Length < 1 || osParts.Length < 2) - { - throw new System.InvalidOperationException($"Unknown rid format {Rid}."); - } - - // Acquire Rid parts: - // osName - // version - // arch - string arch = ridParts[1]; - string osName = osParts[0]; - string version = osParts[1]; - - JObject projectRoot = ReadProject(RuntimeJson); - - if (projectRoot.SelectToken($"{runtimesIdentifier}.{osName}") == null) - { - AddRidToRuntimeGraph(projectRoot, osName, "linux"); - AddRidToRuntimeGraph(projectRoot, $"{osName}-{arch}", osName, $"linux-{arch}"); - } - if(projectRoot.SelectToken($"{runtimesIdentifier}.{osName}.{version}") == null) - { - AddRidToRuntimeGraph(projectRoot, $"{osName}.{version}", osName); - AddRidToRuntimeGraph(projectRoot, $"{osName}.{version}-{arch}", $"{osName}.{version}", $"{osName}-{arch}"); - } - - WriteProject(projectRoot, RuntimeJson); - return true; - } - - private void AddRidToRuntimeGraph(JObject projectRoot, string name, params string[] imports) - { - projectRoot[runtimesIdentifier][name] = new JObject(new JProperty("#import", new JArray(imports))); - } - - private static JObject ReadProject(string projectJsonPath) - { - using (TextReader projectFileReader = File.OpenText(projectJsonPath)) - { - var projectJsonReader = new JsonTextReader(projectFileReader); - var serializer = new JsonSerializer(); - return serializer.Deserialize(projectJsonReader); - } - } - private static void WriteProject(JObject projectRoot, string projectJsonPath) - { - string projectJson = JsonConvert.SerializeObject(projectRoot, Formatting.Indented) + Environment.NewLine; - - if (!File.Exists(projectJsonPath) || !projectJson.Equals(File.ReadAllText(projectJsonPath))) - { - Directory.CreateDirectory(Path.GetDirectoryName(projectJsonPath)); - File.WriteAllText(projectJsonPath, projectJson); - } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AzureConnectionStringBuildTask.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AzureConnectionStringBuildTask.cs deleted file mode 100644 index b717d34508af..000000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AzureConnectionStringBuildTask.cs +++ /dev/null @@ -1,61 +0,0 @@ -// 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 Microsoft.Build.Utilities; -using System.Text.RegularExpressions; - -namespace Microsoft.DotNet.Build.Tasks -{ - public abstract class AzureConnectionStringBuildTask : Task - { - /// - /// Azure Storage account connection string. Supersedes Account Key / Name. - /// Will cause errors if both are set. - /// - public string ConnectionString { get; set; } - - /// - /// The Azure account key used when creating the connection string. - /// When we fully deprecate these, can just make them get; only. - /// - public string AccountKey { get; set; } - - /// - /// The Azure account name used when creating the connection string. - /// When we fully deprecate these, can just make them get; only. - /// - public string AccountName { get; set; } - - public void ParseConnectionString() - { - if (!string.IsNullOrEmpty(ConnectionString)) - { - if (!(string.IsNullOrEmpty(AccountKey) && string.IsNullOrEmpty(AccountName))) - { - Log.LogError("If the ConnectionString property is set, you must not provide AccountKey / AccountName. These values will be deprecated in the future."); - } - else - { - Regex storageConnectionStringRegex = new Regex("AccountName=(?.+?);AccountKey=(?.+?);"); - - MatchCollection matches = storageConnectionStringRegex.Matches(ConnectionString); - if (matches.Count > 0) - { - // When we deprecate this format, we'll want to demote these to private - AccountName = matches[0].Groups["name"].Value; - AccountKey = matches[0].Groups["key"].Value; - } - else - { - Log.LogError("Error parsing connection string. Please review its value."); - } - } - } - else if (string.IsNullOrEmpty(AccountKey) || string.IsNullOrEmpty(AccountName)) - { - Log.LogError("Error, must provide either ConnectionString or AccountName with AccountKey"); - } - } - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AzureHelper.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AzureHelper.cs deleted file mode 100644 index ac08cfb3aea3..000000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/AzureHelper.cs +++ /dev/null @@ -1,461 +0,0 @@ -// 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 Microsoft.Build.Framework; -using Microsoft.Build.Utilities; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Net.Http.Headers; -using System.Security.Cryptography; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace Microsoft.DotNet.Build.Tasks -{ - public static class AzureHelper - { - /// - /// The storage api version. - /// - public static readonly string StorageApiVersion = "2015-04-05"; - public const string DateHeaderString = "x-ms-date"; - public const string VersionHeaderString = "x-ms-version"; - public const string AuthorizationHeaderString = "Authorization"; - public const string CacheControlString = "x-ms-blob-cache-control"; - public const string ContentTypeString = "x-ms-blob-content-type"; - - public enum SasAccessType - { - Read, - Write, - }; - - public static string AuthorizationHeader( - string storageAccount, - string storageKey, - string method, - DateTime now, - HttpRequestMessage request, - string ifMatch = "", - string contentMD5 = "", - string size = "", - string contentType = "") - { - string stringToSign = string.Format( - "{0}\n\n\n{1}\n{5}\n{6}\n\n\n{2}\n\n\n\n{3}{4}", - method, - (size == string.Empty) ? string.Empty : size, - ifMatch, - GetCanonicalizedHeaders(request), - GetCanonicalizedResource(request.RequestUri, storageAccount), - contentMD5, - contentType); - byte[] signatureBytes = Encoding.UTF8.GetBytes(stringToSign); - string authorizationHeader; - using (HMACSHA256 hmacsha256 = new HMACSHA256(Convert.FromBase64String(storageKey))) - { - authorizationHeader = "SharedKey " + storageAccount + ":" - + Convert.ToBase64String(hmacsha256.ComputeHash(signatureBytes)); - } - - return authorizationHeader; - } - - public static string CreateContainerSasToken( - string accountName, - string containerName, - string key, - SasAccessType accessType, - int validityTimeInDays) - { - string signedPermissions = string.Empty; - switch (accessType) - { - case SasAccessType.Read: - signedPermissions = "r"; - break; - case SasAccessType.Write: - signedPermissions = "wdl"; - break; - default: - throw new ArgumentOutOfRangeException(nameof(accessType), accessType, "Unrecognized value"); - } - - string signedStart = DateTime.UtcNow.ToString("O"); - string signedExpiry = DateTime.UtcNow.AddDays(validityTimeInDays).ToString("O"); - string canonicalizedResource = "/blob/" + accountName + "/" + containerName; - string signedIdentifier = string.Empty; - string signedVersion = StorageApiVersion; - - string stringToSign = ConstructServiceStringToSign( - signedPermissions, - signedVersion, - signedExpiry, - canonicalizedResource, - signedIdentifier, - signedStart); - - byte[] signatureBytes = Encoding.UTF8.GetBytes(stringToSign); - string signature; - using (HMACSHA256 hmacSha256 = new HMACSHA256(Convert.FromBase64String(key))) - { - signature = Convert.ToBase64String(hmacSha256.ComputeHash(signatureBytes)); - } - - string sasToken = string.Format( - "?sv={0}&sr={1}&sig={2}&st={3}&se={4}&sp={5}", - WebUtility.UrlEncode(signedVersion), - WebUtility.UrlEncode("c"), - WebUtility.UrlEncode(signature), - WebUtility.UrlEncode(signedStart), - WebUtility.UrlEncode(signedExpiry), - WebUtility.UrlEncode(signedPermissions)); - - return sasToken; - } - - public static string GetCanonicalizedHeaders(HttpRequestMessage request) - { - StringBuilder sb = new StringBuilder(); - List headerNameList = (from headerName in request.Headers - where - headerName.Key.ToLowerInvariant() - .StartsWith("x-ms-", StringComparison.Ordinal) - select headerName.Key.ToLowerInvariant()).ToList(); - headerNameList.Sort(); - foreach (string headerName in headerNameList) - { - StringBuilder builder = new StringBuilder(headerName); - string separator = ":"; - foreach (string headerValue in GetHeaderValues(request.Headers, headerName)) - { - string trimmedValue = headerValue.Replace("\r\n", string.Empty); - builder.Append(separator); - builder.Append(trimmedValue); - separator = ","; - } - - sb.Append(builder); - sb.Append("\n"); - } - - return sb.ToString(); - } - - public static string GetCanonicalizedResource(Uri address, string accountName) - { - StringBuilder str = new StringBuilder(); - StringBuilder builder = new StringBuilder("/"); - builder.Append(accountName); - builder.Append(address.AbsolutePath); - str.Append(builder); - Dictionary> queryKeyValues = ExtractQueryKeyValues(address); - Dictionary> dictionary = GetCommaSeparatedList(queryKeyValues); - - foreach (KeyValuePair> pair in dictionary.OrderBy(p => p.Key)) - { - StringBuilder stringBuilder = new StringBuilder(string.Empty); - stringBuilder.Append(pair.Key + ":"); - string commaList = string.Join(",", pair.Value); - stringBuilder.Append(commaList); - str.Append("\n"); - str.Append(stringBuilder); - } - - return str.ToString(); - } - - public static List GetHeaderValues(HttpRequestHeaders headers, string headerName) - { - List list = new List(); - IEnumerable values; - headers.TryGetValues(headerName, out values); - if (values != null) - { - list.Add((values.FirstOrDefault() ?? string.Empty).TrimStart(null)); - } - - return list; - } - - private static bool IsWithinRetryRange(HttpStatusCode statusCode) - { - // Retry on http client and server error codes (4xx - 5xx) as well as redirect - - var rawStatus = (int)statusCode; - if (rawStatus == 302) - return true; - else if (rawStatus >= 400 && rawStatus <= 599) - return true; - else - return false; - } - - public static async Task RequestWithRetry(TaskLoggingHelper loggingHelper, HttpClient client, - Func createRequest, Func validationCallback = null, int retryCount = 5, - int retryDelaySeconds = 5) - { - if (loggingHelper == null) - throw new ArgumentNullException(nameof(loggingHelper)); - if (client == null) - throw new ArgumentNullException(nameof(client)); - if (createRequest == null) - throw new ArgumentNullException(nameof(createRequest)); - if (retryCount < 1) - throw new ArgumentException(nameof(retryCount)); - if (retryDelaySeconds < 1) - throw new ArgumentException(nameof(retryDelaySeconds)); - - int retries = 0; - HttpResponseMessage response = null; - - // add a bit of randomness to the retry delay - var rng = new Random(); - - while (retries < retryCount) - { - if (retries > 0) - { - if (response != null) - { - response.Dispose(); - response = null; - } - - int delay = retryDelaySeconds * retries * rng.Next(1, 5); - loggingHelper.LogMessage(MessageImportance.Low, "Waiting {0} seconds before retry", delay); - await System.Threading.Tasks.Task.Delay(delay * 1000); - } - - try - { - using (var request = createRequest()) - response = await client.SendAsync(request); - } - catch (Exception e) - { - loggingHelper.LogWarningFromException(e, true); - - // if this is the final iteration let the exception bubble up - if (retries + 1 == retryCount) - throw; - } - - // response can be null if we fail to send the request - if (response != null) - { - if (validationCallback == null) - { - // check if the response code is within the range of failures - if (!IsWithinRetryRange(response.StatusCode)) - { - return response; - } - } - else - { - bool isSuccess = validationCallback(response); - if (!isSuccess) - { - loggingHelper.LogMessage("Validation callback returned retry for status code {0}", response.StatusCode); - } - else - { - loggingHelper.LogMessage("Validation callback returned success for status code {0}", response.StatusCode); - return response; - } - } - } - - ++retries; - } - - // retry count exceeded - loggingHelper.LogWarning("Retry count {0} exceeded", retryCount); - - // set some default values in case response is null - var statusCode = "None"; - var contentStr = "Null"; - if (response != null) - { - statusCode = response.StatusCode.ToString(); - contentStr = await response.Content.ReadAsStringAsync(); - response.Dispose(); - } - - throw new HttpRequestException($"Request {createRequest().RequestUri} failed with status {statusCode}. Response : {contentStr}"); - } - - private static string ConstructServiceStringToSign( - string signedPermissions, - string signedVersion, - string signedExpiry, - string canonicalizedResource, - string signedIdentifier, - string signedStart, - string signedIP = "", - string signedProtocol = "", - string rscc = "", - string rscd = "", - string rsce = "", - string rscl = "", - string rsct = "") - { - // constructing string to sign based on spec in https://msdn.microsoft.com/en-us/library/azure/dn140255.aspx - var stringToSign = string.Join( - "\n", - signedPermissions, - signedStart, - signedExpiry, - canonicalizedResource, - signedIdentifier, - signedIP, - signedProtocol, - signedVersion, - rscc, - rscd, - rsce, - rscl, - rsct); - return stringToSign; - } - - private static Dictionary> ExtractQueryKeyValues(Uri address) - { - Dictionary> values = new Dictionary>(); - //Decode this to allow the regex to pull out the correct groups for signing - address = new Uri(WebUtility.UrlDecode(address.ToString())); - Regex newreg = new Regex(@"(?:\?|&)([^=]+)=([^&]+)"); - MatchCollection matches = newreg.Matches(address.Query); - foreach (Match match in matches) - { - string key, value; - if (!string.IsNullOrEmpty(match.Groups[1].Value)) - { - key = match.Groups[1].Value; - value = match.Groups[2].Value; - } - else - { - key = match.Groups[3].Value; - value = match.Groups[4].Value; - } - - HashSet setOfValues; - if (values.TryGetValue(key, out setOfValues)) - { - setOfValues.Add(value); - } - else - { - HashSet newSet = new HashSet { value }; - values.Add(key, newSet); - } - } - - return values; - } - - private static Dictionary> GetCommaSeparatedList( - Dictionary> queryKeyValues) - { - Dictionary> dictionary = new Dictionary>(); - - foreach (string queryKeys in queryKeyValues.Keys) - { - HashSet setOfValues; - queryKeyValues.TryGetValue(queryKeys, out setOfValues); - List list = new List(); - list.AddRange(setOfValues); - list.Sort(); - string commaSeparatedValues = string.Join(",", list); - string key = queryKeys.ToLowerInvariant(); - HashSet setOfValues2; - if (dictionary.TryGetValue(key, out setOfValues2)) - { - setOfValues2.Add(commaSeparatedValues); - } - else - { - HashSet newSet = new HashSet { commaSeparatedValues }; - dictionary.Add(key, newSet); - } - } - - return dictionary; - } - - public static Func RequestMessage(string method, string url, string accountName, string accountKey, List> additionalHeaders = null, string body = null) - { - Func requestFunc = () => - { - HttpMethod httpMethod = HttpMethod.Get; - if (method == "PUT") - { - httpMethod = HttpMethod.Put; - } - else if (method == "DELETE") - { - httpMethod = HttpMethod.Delete; - } - DateTime dateTime = DateTime.UtcNow; - var request = new HttpRequestMessage(httpMethod, url); - request.Headers.Add(AzureHelper.DateHeaderString, dateTime.ToString("R", CultureInfo.InvariantCulture)); - request.Headers.Add(AzureHelper.VersionHeaderString, AzureHelper.StorageApiVersion); - if (additionalHeaders != null) - { - foreach (Tuple additionalHeader in additionalHeaders) - { - request.Headers.Add(additionalHeader.Item1, additionalHeader.Item2); - } - } - if (body != null) - { - request.Content = new StringContent(body); - request.Headers.Add(AzureHelper.AuthorizationHeaderString, AzureHelper.AuthorizationHeader( - accountName, - accountKey, - method, - dateTime, - request, - "", - "", - request.Content.Headers.ContentLength.ToString(), - request.Content.Headers.ContentType.ToString())); - } - else - { - request.Headers.Add(AzureHelper.AuthorizationHeaderString, AzureHelper.AuthorizationHeader( - accountName, - accountKey, - method, - dateTime, - request)); - } - return request; - }; - return requestFunc; - } - - public static string GetRootRestUrl(string accountName) - { - return $"https://{accountName}.blob.core.windows.net"; - } - - public static string GetContainerRestUrl(string accountName, string containerName) - { - return $"{GetRootRestUrl(accountName)}/{containerName}"; - } - - public static string GetBlobRestUrl(string accountName, string containerName, string blob) - { - return $"{GetContainerRestUrl(accountName, containerName)}/{blob}"; - } - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/CreateSdkSymbolsLayout.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/CreateSdkSymbolsLayout.cs new file mode 100644 index 000000000000..7e00bbf3008f --- /dev/null +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/CreateSdkSymbolsLayout.cs @@ -0,0 +1,163 @@ +// 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.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection.Metadata; +using System.Reflection.PortableExecutable; +using Microsoft.Build.Framework; +using Microsoft.Build.Utilities; + +namespace Microsoft.DotNet.Build.Tasks +{ + // Creates a symbols layout that matches the SDK layout + public class CreateSdkSymbolsLayout : Task + { + /// + /// Path to SDK layout. + /// + [Required] + public string SdkLayoutPath { get; set; } + + /// + /// Path to all source-built symbols, flat or with folder hierarchy. + /// + [Required] + public string AllSymbolsPath { get; set; } + + /// + /// Path to SDK symbols layout - will be created if it doesn't exist. + /// + [Required] + public string SdkSymbolsLayoutPath { get; set; } + + /// + /// If true, fails the build if any PDBs are missing. + /// + public bool FailOnMissingPDBs { get; set; } + + public override bool Execute() + { + IList filesWithoutPDBs = GenerateSymbolsLayout(IndexAllSymbols()); + if (filesWithoutPDBs.Count > 0) + { + LogErrorOrWarning(FailOnMissingPDBs, $"Did not find PDBs for the following SDK files:"); + foreach (string file in filesWithoutPDBs) + { + LogErrorOrWarning(FailOnMissingPDBs, file); + } + } + + return !Log.HasLoggedErrors; + } + + private void LogErrorOrWarning(bool isError, string message) + { + if (isError) + { + Log.LogError(message); + } + else + { + Log.LogWarning(message); + } + } + + private IList GenerateSymbolsLayout(Hashtable allPdbGuids) + { + List filesWithoutPDBs = new List(); + + if (Directory.Exists(SdkSymbolsLayoutPath)) + { + Directory.Delete(SdkSymbolsLayoutPath, true); + } + + foreach (string file in Directory.GetFiles(SdkLayoutPath, "*", SearchOption.AllDirectories)) + { + if (file.EndsWith(".dll", StringComparison.InvariantCultureIgnoreCase) && + !file.EndsWith(".resources.dll", StringComparison.InvariantCultureIgnoreCase)) + { + string guid = string.Empty; + using var pdbStream = File.OpenRead(file); + using var peReader = new PEReader(pdbStream); + try + { + // Check if pdb is embedded + if (peReader.ReadDebugDirectory().Any(entry => entry.Type == DebugDirectoryEntryType.EmbeddedPortablePdb)) + { + continue; + } + + var debugDirectory = peReader.ReadDebugDirectory().First(entry => entry.Type == DebugDirectoryEntryType.CodeView); + var codeViewData = peReader.ReadCodeViewDebugDirectoryData(debugDirectory); + guid = $"{codeViewData.Guid.ToString("N").Replace("-", string.Empty)}"; + } + catch (Exception e) when (e is BadImageFormatException || e is InvalidOperationException) + { + // Ignore binaries without debug info + continue; + } + + if (guid != string.Empty) + { + string debugId = GetDebugId(guid, file); + if (!allPdbGuids.ContainsKey(debugId)) + { + filesWithoutPDBs.Add(file.Substring(SdkLayoutPath.Length + 1)); + } + else + { + // Copy matching pdb to symbols path, preserving sdk binary's hierarchy + string sourcePath = (string)allPdbGuids[debugId]!; + string destinationPath = + file.Replace(SdkLayoutPath, SdkSymbolsLayoutPath) + .Replace(Path.GetFileName(file), Path.GetFileName(sourcePath)); + + Directory.CreateDirectory(Path.GetDirectoryName(destinationPath)!); + File.Copy(sourcePath, destinationPath, true); + } + } + } + } + + return filesWithoutPDBs; + } + + public Hashtable IndexAllSymbols() + { + Hashtable allPdbGuids = new Hashtable(); + + foreach (string file in Directory.GetFiles(AllSymbolsPath, "*.pdb", SearchOption.AllDirectories)) + { + using var pdbFileStream = File.OpenRead(file); + var metadataProvider = MetadataReaderProvider.FromPortablePdbStream(pdbFileStream); + var metadataReader = metadataProvider.GetMetadataReader(); + if (metadataReader.DebugMetadataHeader == null) + { + continue; + } + + var id = new BlobContentId(metadataReader.DebugMetadataHeader.Id); + string guid = $"{id.Guid:N}"; + string debugId = GetDebugId(guid, file); + if (!string.IsNullOrEmpty(guid) && !allPdbGuids.ContainsKey(debugId)) + { + allPdbGuids.Add(debugId, file); + } + } + + return allPdbGuids; + } + + /// + /// Calculates a debug Id from debug guid and filename. We use this as a key + /// in PDB hashtable. Guid is not enough due to collisions in several PDBs. + /// + private string GetDebugId(string guid, string file) => + $"{guid}.{Path.GetFileNameWithoutExtension(file)}".ToLower(); + } +} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj index d458ea6f32f3..a28c1b5a3dfe 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj @@ -1,7 +1,7 @@  - net8.0 + $(NetCurrent) $(XPlatTasksBinDir) diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/UploadClient.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/UploadClient.cs deleted file mode 100644 index c02055705348..000000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/UploadClient.cs +++ /dev/null @@ -1,285 +0,0 @@ -// 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 Microsoft.Build.Framework; -using Microsoft.Build.Utilities; -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Task = System.Threading.Tasks.Task; - -namespace Microsoft.DotNet.Build.Tasks -{ - public class UploadClient - { - private TaskLoggingHelper log; - - public UploadClient(TaskLoggingHelper loggingHelper) - { - log = loggingHelper; - } - - public string EncodeBlockIds(int numberOfBlocks, int lengthOfId) - { - string numberOfBlocksString = numberOfBlocks.ToString("D" + lengthOfId); - if (Encoding.UTF8.GetByteCount(numberOfBlocksString) <= 64) - { - byte[] bytes = Encoding.UTF8.GetBytes(numberOfBlocksString); - return Convert.ToBase64String(bytes); - } - else - { - throw new Exception("Task failed - Could not encode block id."); - } - } - - public async Task UploadBlockBlobAsync( - CancellationToken ct, - string AccountName, - string AccountKey, - string ContainerName, - string filePath, - string destinationBlob, - string contentType, - int uploadTimeout, - string leaseId = "") - { - string resourceUrl = AzureHelper.GetContainerRestUrl(AccountName, ContainerName); - - string fileName = destinationBlob; - fileName = fileName.Replace("\\", "/"); - string blobUploadUrl = resourceUrl + "/" + fileName; - int size = (int)new FileInfo(filePath).Length; - int blockSize = 4 * 1024 * 1024; //4MB max size of a block blob - int bytesLeft = size; - List blockIds = new List(); - int numberOfBlocks = (size / blockSize) + 1; - int countForId = 0; - using (FileStream fileStreamTofilePath = new FileStream(filePath, FileMode.Open, FileAccess.Read)) - { - int offset = 0; - - while (bytesLeft > 0) - { - int nextBytesToRead = (bytesLeft < blockSize) ? bytesLeft : blockSize; - byte[] fileBytes = new byte[blockSize]; - int read = fileStreamTofilePath.Read(fileBytes, 0, nextBytesToRead); - - if (nextBytesToRead != read) - { - throw new Exception(string.Format( - "Number of bytes read ({0}) from file {1} isn't equal to the number of bytes expected ({2}) .", - read, fileName, nextBytesToRead)); - } - - string blockId = EncodeBlockIds(countForId, numberOfBlocks.ToString().Length); - - blockIds.Add(blockId); - string blockUploadUrl = blobUploadUrl + "?comp=block&blockid=" + WebUtility.UrlEncode(blockId); - - using (HttpClient client = new HttpClient()) - { - client.DefaultRequestHeaders.Clear(); - - // In random occassions the request fails if the network is slow and it takes more than 100 seconds to upload 4MB. - client.Timeout = TimeSpan.FromMinutes(uploadTimeout); - Func createRequest = () => - { - DateTime dt = DateTime.UtcNow; - var req = new HttpRequestMessage(HttpMethod.Put, blockUploadUrl); - req.Headers.Add( - AzureHelper.DateHeaderString, - dt.ToString("R", CultureInfo.InvariantCulture)); - req.Headers.Add(AzureHelper.VersionHeaderString, AzureHelper.StorageApiVersion); - if (!string.IsNullOrWhiteSpace(leaseId)) - { - log.LogMessage($"Sending request: {leaseId} {blockUploadUrl}"); - req.Headers.Add("x-ms-lease-id", leaseId); - } - req.Headers.Add( - AzureHelper.AuthorizationHeaderString, - AzureHelper.AuthorizationHeader( - AccountName, - AccountKey, - "PUT", - dt, - req, - string.Empty, - string.Empty, - nextBytesToRead.ToString(), - string.Empty)); - - Stream postStream = new MemoryStream(); - postStream.Write(fileBytes, 0, nextBytesToRead); - postStream.Seek(0, SeekOrigin.Begin); - req.Content = new StreamContent(postStream); - return req; - }; - - log.LogMessage(MessageImportance.Low, "Sending request to upload part {0} of file {1}", countForId, fileName); - - using (HttpResponseMessage response = await AzureHelper.RequestWithRetry(log, client, createRequest)) - { - log.LogMessage( - MessageImportance.Low, - "Received response to upload part {0} of file {1}: Status Code:{2} Status Desc: {3}", - countForId, - fileName, - response.StatusCode, - await response.Content.ReadAsStringAsync()); - } - } - - offset += read; - bytesLeft -= nextBytesToRead; - countForId += 1; - } - } - - string blockListUploadUrl = blobUploadUrl + "?comp=blocklist"; - - using (HttpClient client = new HttpClient()) - { - Func createRequest = () => - { - DateTime dt1 = DateTime.UtcNow; - var req = new HttpRequestMessage(HttpMethod.Put, blockListUploadUrl); - req.Headers.Add(AzureHelper.DateHeaderString, dt1.ToString("R", CultureInfo.InvariantCulture)); - req.Headers.Add(AzureHelper.VersionHeaderString, AzureHelper.StorageApiVersion); - if (string.IsNullOrEmpty(contentType)) - { - contentType = DetermineContentTypeBasedOnFileExtension(filePath); - } - if (!string.IsNullOrEmpty(contentType)) - { - req.Headers.Add(AzureHelper.ContentTypeString, contentType); - } - string cacheControl = DetermineCacheControlBasedOnFileExtension(filePath); - if (!string.IsNullOrEmpty(cacheControl)) - { - req.Headers.Add(AzureHelper.CacheControlString, cacheControl); - } - - var body = new StringBuilder(""); - foreach (object item in blockIds) - body.AppendFormat("{0}", item); - - body.Append(""); - byte[] bodyData = Encoding.UTF8.GetBytes(body.ToString()); - if (!string.IsNullOrWhiteSpace(leaseId)) - { - log.LogMessage($"Sending list request: {leaseId} {blockListUploadUrl}"); - req.Headers.Add("x-ms-lease-id", leaseId); - } - req.Headers.Add( - AzureHelper.AuthorizationHeaderString, - AzureHelper.AuthorizationHeader( - AccountName, - AccountKey, - "PUT", - dt1, - req, - string.Empty, - string.Empty, - bodyData.Length.ToString(), - string.Empty)); - - Stream postStream = new MemoryStream(); - postStream.Write(bodyData, 0, bodyData.Length); - postStream.Seek(0, SeekOrigin.Begin); - req.Content = new StreamContent(postStream); - return req; - }; - - using (HttpResponseMessage response = await AzureHelper.RequestWithRetry(log, client, createRequest)) - { - log.LogMessage( - MessageImportance.Low, - "Received response to combine block list for file {0}: Status Code:{1} Status Desc: {2}", - fileName, - response.StatusCode, - await response.Content.ReadAsStringAsync()); - } - } - } - - public async Task FileEqualsExistingBlobAsync( - string accountName, - string accountKey, - string containerName, - string filePath, - string destinationBlob, - int uploadTimeout) - { - using (var client = new HttpClient - { - Timeout = TimeSpan.FromMinutes(uploadTimeout) - }) - { - log.LogMessage( - MessageImportance.Low, - $"Downloading blob {destinationBlob} to check if identical."); - - string blobUrl = AzureHelper.GetBlobRestUrl(accountName, containerName, destinationBlob); - var createRequest = AzureHelper.RequestMessage("GET", blobUrl, accountName, accountKey); - - using (HttpResponseMessage response = await AzureHelper.RequestWithRetry( - log, - client, - createRequest)) - { - if (!response.IsSuccessStatusCode) - { - throw new HttpRequestException( - $"Failed to retrieve existing blob {destinationBlob}, " + - $"status code {response.StatusCode}."); - } - - byte[] existingBytes = await response.Content.ReadAsByteArrayAsync(); - byte[] localBytes = File.ReadAllBytes(filePath); - - bool equal = localBytes.SequenceEqual(existingBytes); - - if (equal) - { - log.LogMessage( - MessageImportance.Normal, - "Item exists in blob storage, and is verified to be identical. " + - $"File: '{filePath}' Blob: '{destinationBlob}'"); - } - - return equal; - } - } - } - - private string DetermineContentTypeBasedOnFileExtension(string filename) - { - if (Path.GetExtension(filename) == ".svg") - { - return "image/svg+xml"; - } - else if (Path.GetExtension(filename) == ".version") - { - return "text/plain"; - } - return string.Empty; - } - private string DetermineCacheControlBasedOnFileExtension(string filename) - { - if (Path.GetExtension(filename) == ".svg") - { - return "No-Cache"; - } - return string.Empty; - } - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/UploadToAzure.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/UploadToAzure.cs deleted file mode 100644 index 5431194d630c..000000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/UploadToAzure.cs +++ /dev/null @@ -1,208 +0,0 @@ -// 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 Microsoft.Build.Framework; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using ThreadingTask = System.Threading.Tasks.Task; - -namespace Microsoft.DotNet.Build.Tasks -{ - - public class UploadToAzure : AzureConnectionStringBuildTask, ICancelableTask - { - private static readonly CancellationTokenSource TokenSource = new CancellationTokenSource(); - private static readonly CancellationToken CancellationToken = TokenSource.Token; - - /// - /// The name of the container to access. The specified name must be in the correct format, see the - /// following page for more info. https://msdn.microsoft.com/en-us/library/azure/dd135715.aspx - /// - [Required] - public string ContainerName { get; set; } - - /// - /// An item group of files to upload. Each item must have metadata RelativeBlobPath - /// that specifies the path relative to ContainerName where the item will be uploaded. - /// - [Required] - public ITaskItem[] Items { get; set; } - - /// - /// Indicates if the destination blob should be overwritten if it already exists. The default if false. - /// - public bool Overwrite { get; set; } = false; - - /// - /// Enables idempotency when Overwrite is false. - /// - /// false: (default) Attempting to upload an item that already exists fails. - /// - /// true: When an item already exists, download the existing blob to check if it's - /// byte-for-byte identical to the one being uploaded. If so, pass. If not, fail. - /// - public bool PassIfExistingItemIdentical { get; set; } - - /// - /// Specifies the maximum number of clients to concurrently upload blobs to azure - /// - public int MaxClients { get; set; } = 8; - - public int UploadTimeoutInMinutes { get; set; } = 5; - - public void Cancel() - { - TokenSource.Cancel(); - } - - public override bool Execute() - { - return ExecuteAsync(CancellationToken).GetAwaiter().GetResult(); - } - - public async Task ExecuteAsync(CancellationToken ct) - { - ParseConnectionString(); - // If the connection string AND AccountKey & AccountName are provided, error out. - if (Log.HasLoggedErrors) - { - return false; - } - - Log.LogMessage( - MessageImportance.Normal, - "Begin uploading blobs to Azure account {0} in container {1}.", - AccountName, - ContainerName); - - if (Items.Length == 0) - { - Log.LogError("No items were provided for upload."); - return false; - } - - // first check what blobs are present - string checkListUrl = $"{AzureHelper.GetContainerRestUrl(AccountName, ContainerName)}?restype=container&comp=list"; - - HashSet blobsPresent = new HashSet(StringComparer.OrdinalIgnoreCase); - - try - { - using (HttpClient client = new HttpClient()) - { - var createRequest = AzureHelper.RequestMessage("GET", checkListUrl, AccountName, AccountKey); - - Log.LogMessage(MessageImportance.Low, "Sending request to check whether Container blobs exist"); - using (HttpResponseMessage response = await AzureHelper.RequestWithRetry(Log, client, createRequest)) - { - var doc = new XmlDocument(); - doc.LoadXml(await response.Content.ReadAsStringAsync()); - - XmlNodeList nodes = doc.DocumentElement.GetElementsByTagName("Blob"); - - foreach (XmlNode node in nodes) - { - blobsPresent.Add(node["Name"].InnerText); - } - - Log.LogMessage(MessageImportance.Low, "Received response to check whether Container blobs exist"); - } - } - - using (var clientThrottle = new SemaphoreSlim(this.MaxClients, this.MaxClients)) - { - await ThreadingTask.WhenAll(Items.Select(item => UploadAsync(ct, item, blobsPresent, clientThrottle))); - } - - Log.LogMessage(MessageImportance.Normal, "Upload to Azure is complete, a total of {0} items were uploaded.", Items.Length); - } - catch (Exception e) - { - Log.LogErrorFromException(e, true); - } - return !Log.HasLoggedErrors; - } - - private async ThreadingTask UploadAsync(CancellationToken ct, ITaskItem item, HashSet blobsPresent, SemaphoreSlim clientThrottle) - { - if (ct.IsCancellationRequested) - { - Log.LogError("Task UploadToAzure cancelled"); - ct.ThrowIfCancellationRequested(); - } - - string relativeBlobPath = item.GetMetadata("RelativeBlobPath"); - if (string.IsNullOrEmpty(relativeBlobPath)) - throw new Exception(string.Format("Metadata 'RelativeBlobPath' is missing for item '{0}'.", item.ItemSpec)); - - if (!File.Exists(item.ItemSpec)) - throw new Exception(string.Format("The file '{0}' does not exist.", item.ItemSpec)); - - UploadClient uploadClient = new UploadClient(Log); - - if (!Overwrite && blobsPresent.Contains(relativeBlobPath)) - { - if (PassIfExistingItemIdentical && - await ItemEqualsExistingBlobAsync(item, relativeBlobPath, uploadClient, clientThrottle)) - { - return; - } - - throw new Exception(string.Format("The blob '{0}' already exists.", relativeBlobPath)); - } - - string contentType = item.GetMetadata("ContentType"); - - await clientThrottle.WaitAsync(); - - try - { - Log.LogMessage("Uploading {0} to {1}.", item.ItemSpec, ContainerName); - await - uploadClient.UploadBlockBlobAsync( - ct, - AccountName, - AccountKey, - ContainerName, - item.ItemSpec, - relativeBlobPath, - contentType, - UploadTimeoutInMinutes); - } - finally - { - clientThrottle.Release(); - } - } - - private async Task ItemEqualsExistingBlobAsync( - ITaskItem item, - string relativeBlobPath, - UploadClient client, - SemaphoreSlim clientThrottle) - { - await clientThrottle.WaitAsync(); - try - { - return await client.FileEqualsExistingBlobAsync( - AccountName, - AccountKey, - ContainerName, - item.ItemSpec, - relativeBlobPath, - UploadTimeoutInMinutes); - } - finally - { - clientThrottle.Release(); - } - } - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/WritePackageVersionProps.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/WritePackageVersionProps.cs index c3b97b2b0597..618dd0dd5b7d 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/WritePackageVersionProps.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/WritePackageVersionProps.cs @@ -70,14 +70,6 @@ public class WritePackageVersionsProps : Microsoft.Build.Utilities.Task /// public ITaskItem[] ExtraProperties { get; set; } - /// - /// Additional assets to be added to the build output props. - /// i.e. /bin/obj/x64/Release/blobs/Toolset/3.0.100 - /// This parameter is the / portion only, and the asset - /// must be in a / folder. - /// - public string[] AdditionalAssetDirs { get; set; } - /// /// Indicates which properties will be written into the Version props file. /// If AllPackages (Default), all packages from previously built repos will be written. @@ -196,17 +188,7 @@ public override bool Execute() Version = identity.Version.ToString() }); - var additionalAssets = (AdditionalAssetDirs ?? new string[0]) - .Where(Directory.Exists) - .Where(dir => Directory.GetDirectories(dir).Count() > 0) - .Select(dir => new VersionEntry() - { - Name = new DirectoryInfo(dir).Name, - Version = new DirectoryInfo(Directory.EnumerateDirectories(dir).OrderBy(s => s).Last()).Name - }); - var packageElementsToWrite = latestPackages; - var additionalAssetElementsToWrite = additionalAssets; // Then, if version flow type is "DependenciesOnly", filter those // dependencies that do not appear in the version.details.xml file. @@ -220,7 +202,6 @@ public override bool Execute() } packageElementsToWrite = FilterNonDependencies(packageElementsToWrite, dependencies); - additionalAssetElementsToWrite = FilterNonDependencies(additionalAssetElementsToWrite, dependencies); } Directory.CreateDirectory(Path.GetDirectoryName(OutputPath)); @@ -233,7 +214,6 @@ public override bool Execute() WriteVersionEntries(sw, packageElementsToWrite, "packages"); WriteExtraProperties(sw); - WriteVersionEntries(sw, additionalAssetElementsToWrite, "additional assets"); sw.WriteLine(@" "); sw.WriteLine($@" <{CreationTimePropertyName}>{DateTime.UtcNow.Ticks}"); diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json index 1d6588cf946a..19c613a55d51 100644 --- a/src/SourceBuild/content/global.json +++ b/src/SourceBuild/content/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "8.0.100-rc.1.23455.8" + "dotnet": "9.0.100-alpha.1.23524.3" }, "msbuild-sdks": { "Microsoft.Build.CentralPackageVersions": "2.0.1", diff --git a/src/SourceBuild/content/prep.sh b/src/SourceBuild/content/prep.sh index 472c348ae5d9..678cb8a6fa84 100755 --- a/src/SourceBuild/content/prep.sh +++ b/src/SourceBuild/content/prep.sh @@ -10,6 +10,8 @@ ### --no-bootstrap Don't replace portable packages in the download source-built artifacts ### --no-prebuilts Exclude the download of the prebuilts archive ### --no-sdk Exclude the download of the .NET SDK +### --artifacts-rid The RID of the previously source-built artifacts archive to download +### Default is centos.8-x64 ### --runtime-source-feed URL of a remote server or a local directory, from which SDKs and ### runtimes can be downloaded ### --runtime-source-feed-key Key for accessing the above server, if necessary @@ -24,10 +26,13 @@ function print_help () { sed -n '/^### /,/^$/p' "$source" | cut -b 5- } +defaultArtifactsRid='centos.8-x64' + buildBootstrap=true downloadArtifacts=true downloadPrebuilts=true installDotnet=true +artifactsRid=$defaultArtifactsRid runtime_source_feed='' # IBM requested these to support s390x scenarios runtime_source_feed_key='' # IBM requested these to support s390x scenarios positional_args=() @@ -53,6 +58,9 @@ while :; do --no-sdk) installDotnet=false ;; + --artifacts-rid) + artifactsRid=$2 + ;; --runtime-source-feed) runtime_source_feed=$2 shift @@ -107,17 +115,27 @@ fi function DownloadArchive { archiveType="$1" isRequired="$2" + artifactsRid="$3" packageVersionsPath="$SCRIPT_ROOT/eng/Versions.props" notFoundMessage="No source-built $archiveType found to download..." echo " Looking for source-built $archiveType to download..." - archiveVersionLine=$(grep -m 1 "" "$packageVersionsPath" || :) - versionPattern="(.*)" + archiveVersionLine=$(grep -m 1 "" "$packageVersionsPath" || :) + versionPattern="(.*)" if [[ $archiveVersionLine =~ $versionPattern ]]; then - archiveUrl="${BASH_REMATCH[1]}" - echo " Downloading source-built $archiveType from $archiveUrl..." - (cd "$packagesArchiveDir" && curl --retry 5 -O "$archiveUrl") + archiveVersion="${BASH_REMATCH[1]}" + + if [ "$archiveType" == "Prebuilts" ]; then + archiveRid=$defaultArtifactsRid + else + archiveRid=$artifactsRid + fi + + archiveUrl="https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.$archiveType.$archiveVersion.$archiveRid.tar.gz" + + echo " Downloading source-built $archiveType from $archiveUrl..." + (cd "$packagesArchiveDir" && curl --retry 5 -O "$archiveUrl") elif [ "$isRequired" == true ]; then echo " ERROR: $notFoundMessage" exit 1 @@ -157,16 +175,19 @@ function BootstrapArtifacts { if [ "$installDotnet" == true ]; then echo " Installing dotnet..." (source ./eng/common/tools.sh && InitializeDotNetCli true) + + # TODO: Remove once runtime dependency is gone (https://github.com/dotnet/runtime/issues/93666) + bash .dotnet/dotnet-install.sh --install-dir "$SCRIPT_ROOT/.dotnet" --channel 8.0 --runtime dotnet fi # Read the eng/Versions.props to get the archives to download and download them if [ "$downloadArtifacts" == true ]; then - DownloadArchive Artifacts true + DownloadArchive Artifacts true $artifactsRid if [ "$buildBootstrap" == true ]; then BootstrapArtifacts fi fi if [ "$downloadPrebuilts" == true ]; then - DownloadArchive Prebuilts false + DownloadArchive Prebuilts false $artifactsRid fi diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.props b/src/SourceBuild/content/repo-projects/Directory.Build.props index 165f87523dfe..266ebe7ce5ec 100644 --- a/src/SourceBuild/content/repo-projects/Directory.Build.props +++ b/src/SourceBuild/content/repo-projects/Directory.Build.props @@ -14,7 +14,6 @@ true $(LoggingDir)$(RepositoryName).log >> $(RepoConsoleLogFile) 2>&1 - net8.0 $(ProjectDirectory)artifacts/packages/$(Configuration)/NonShipping/ @@ -50,11 +49,21 @@ $(GitCommitDate.Replace('-', '')) + + false + + '$(RepositoryName)' + + + $(OverrideTargetRid.Substring(0, $(OverrideTargetRid.LastIndexOf('-')))) + $(OverrideTargetRid.Substring($(OverrideTargetRid.LastIndexOf('-'))).TrimStart('-')) + + @@ -158,6 +167,7 @@ $(StandardSourceBuildArgs) /p:ReferencePackageNupkgCacheDir="$(ReferencePackagesDir)" $(StandardSourceBuildArgs) /p:PreviouslySourceBuiltNupkgCacheDir="$(PrebuiltSourceBuiltPackagesPath)" $(StandardSourceBuildArgs) /p:SourceBuildUseMonoRuntime=$(SourceBuildUseMonoRuntime) + $(StandardSourceBuildArgs) /p:DotNetBuildVertical=$(DotNetBuildVertical) $(ProjectDirectory)\build$(ShellExtension) diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.targets b/src/SourceBuild/content/repo-projects/Directory.Build.targets index e1a5734ad5f1..07aefc4d81cd 100644 --- a/src/SourceBuild/content/repo-projects/Directory.Build.targets +++ b/src/SourceBuild/content/repo-projects/Directory.Build.targets @@ -26,57 +26,16 @@ - - - - - ]]> - - - %24(NoWarn);NU5104;NU1603;$(RepoNoWarns) - -]]> - - - $(ProjectDirectory)Directory.Build.props - $(ProjectDirectory)src/Directory.Build.props - - - - + - - - - - + OldText="_InitializeBuildToolFramework="net8.0"" + NewText="_InitializeBuildToolFramework="net9.0"" /> @@ -174,8 +133,6 @@ (https://github.com/dotnet/source-build/issues/3043). --> <_PreviouslyBuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg" Exclude="$(PrebuiltSourceBuiltPackagesPath)System.Drawing.Common*.nupkg" /> - - <_CurrentAdditionalAssetDirs Include="$(SourceBuiltToolsetDir)" Condition="Exists('$(SourceBuiltToolsetDir)')" /> @@ -601,8 +557,8 @@ - - + + @@ -628,24 +584,23 @@ DataFile="$(PackageReportDataFile)" ProjectAssetsJsonArchiveFile="$(ProjectAssetsJsonArchiveFile)" /> - + - - - + + + + + $([System.String]::Copy(%(Filename)).ToLower()) + - - - - - - + $([System.String]::Copy(%(Filename)).ToLower()) - + + - + diff --git a/src/SourceBuild/content/repo-projects/aspnetcore.proj b/src/SourceBuild/content/repo-projects/aspnetcore.proj index e3f4b1664aae..010479f55f5c 100644 --- a/src/SourceBuild/content/repo-projects/aspnetcore.proj +++ b/src/SourceBuild/content/repo-projects/aspnetcore.proj @@ -11,11 +11,10 @@ $(StandardSourceBuildArgs.Replace('--publish', '')) - - $(BuildCommandArgs) --arch $(Platform) + $(BuildCommandArgs) --arch $(Platform) + $(BuildCommandArgs) --arch $(OverrideTargetArch) $(BuildCommandArgs) --no-build-repo-tasks $(BuildCommandArgs) --no-build-nodejs - $(BuildCommandArgs) /p:PublishCompressedFilesPathPrefix=$(SourceBuiltAspNetCoreRuntime) $(BuildCommandArgs) /p:PortableBuild=$(_portableRidOverridden) /p:TargetRuntimeIdentifier=$(OverrideTargetRid) diff --git a/src/SourceBuild/content/repo-projects/dotnet.proj b/src/SourceBuild/content/repo-projects/dotnet.proj index 23c5d842a99c..67972bc8fdf0 100644 --- a/src/SourceBuild/content/repo-projects/dotnet.proj +++ b/src/SourceBuild/content/repo-projects/dotnet.proj @@ -26,7 +26,6 @@ - @@ -49,6 +48,10 @@ + + + + diff --git a/src/SourceBuild/content/repo-projects/fsharp.proj b/src/SourceBuild/content/repo-projects/fsharp.proj index 25eeb3d9e789..a2e473d4e31b 100644 --- a/src/SourceBuild/content/repo-projects/fsharp.proj +++ b/src/SourceBuild/content/repo-projects/fsharp.proj @@ -19,7 +19,6 @@ - - - SYSLIB0051 diff --git a/src/SourceBuild/content/repo-projects/roslyn.proj b/src/SourceBuild/content/repo-projects/roslyn.proj index bd7a4f45b8c6..543f89a9bea8 100644 --- a/src/SourceBuild/content/repo-projects/roslyn.proj +++ b/src/SourceBuild/content/repo-projects/roslyn.proj @@ -21,7 +21,6 @@ - diff --git a/src/SourceBuild/content/repo-projects/runtime.proj b/src/SourceBuild/content/repo-projects/runtime.proj index 67959e981ddc..28d21b130dc4 100644 --- a/src/SourceBuild/content/repo-projects/runtime.proj +++ b/src/SourceBuild/content/repo-projects/runtime.proj @@ -5,9 +5,6 @@ true - - NU5129 - $(ProjectDirectory)/clean$(ShellExtension) $(TargetRid) @@ -19,13 +16,20 @@ $(NETCoreSdkRuntimeIdentifier.Substring(0, $(_platformIndex))) <_platformIndex>$(NETCoreSdkPortableRuntimeIdentifier.LastIndexOf('-')) - $(NETCoreSdkPortableRuntimeIdentifier.Substring(0, $(_platformIndex))) + $(NETCoreSdkPortableRuntimeIdentifier.Substring(0, $(_platformIndex)))-$(Platform) + + false + true + false $(StandardSourceBuildArgs) + $(BuildCommandArgs) --arch $(OverrideTargetArch) + $(BuildCommandArgs) --os $(OverrideTargetOS) $(BuildCommandArgs) /p:TargetRid=$(OverrideTargetRid) $(BuildCommandArgs) /p:RuntimeOS=$(RuntimeOS) $(BuildCommandArgs) /p:BaseOS=$(BaseOS) - $(BuildCommandArgs) /p:SourceBuildNonPortable=true + $(BuildCommandArgs) /p:PortableBuild=$(PortableBuild) + $(BuildCommandArgs) /p:SourceBuildNonPortable=$(BuildNonPortable) $(BuildCommandArgs) /p:UsingToolMicrosoftNetCompilers=false $(StandardSourceBuildCommand) $(BuildCommandArgs) @@ -38,11 +42,6 @@ - - - - - @@ -57,8 +56,6 @@ - - @@ -66,17 +63,5 @@ - - - $(ProjectDirectory)pkg/Microsoft.NETCore.Platforms/runtime.json - - - - - - diff --git a/src/SourceBuild/content/repo-projects/scenario-tests.proj b/src/SourceBuild/content/repo-projects/scenario-tests.proj new file mode 100644 index 000000000000..a7ea534f6979 --- /dev/null +++ b/src/SourceBuild/content/repo-projects/scenario-tests.proj @@ -0,0 +1,15 @@ + + + + + $(StandardSourceBuildCommand) $(StandardSourceBuildArgs) + + + + + + + + + + diff --git a/src/SourceBuild/content/repo-projects/sdk.proj b/src/SourceBuild/content/repo-projects/sdk.proj index 79b1ef0607dc..a77e3f092ecb 100644 --- a/src/SourceBuild/content/repo-projects/sdk.proj +++ b/src/SourceBuild/content/repo-projects/sdk.proj @@ -5,12 +5,14 @@ $(StandardSourceBuildArgs) $(BuildCommandArgs) $(FlagParameterPrefix)nodereuse $(ArcadeFalseBoolBuildArg) $(BuildCommandArgs) /p:PackageProjectUrl=https://github.com/dotnet/sdk - $(BuildCommandArgs) /p:PublishCompressedFilesPathPrefix=$(SourceBuiltToolsetDir) <_platformIndex>$(NETCoreSdkPortableRuntimeIdentifier.LastIndexOf('-')) <_baseOS>$(NETCoreSdkPortableRuntimeIdentifier.Substring(0, $(_platformIndex))) - $(BuildCommandArgs) /p:PortableRid=$(_baseOS)-$(Platform) + <_baseOS Condition="'$(OverrideTargetOS)' != ''">$(OverrideTargetOS) + <_targetPortableArch>$(Platform) + <_targetPortableArch Condition="'$(OverrideTargetArch)' != ''">$(OverrideTargetArch) + $(BuildCommandArgs) /p:PortableRid=$(_baseOS)-$(_targetPortableArch) $(BuildCommandArgs) /p:TargetRid=$(TargetRid) @@ -24,7 +26,6 @@ - diff --git a/src/SourceBuild/content/repo-projects/vstest.proj b/src/SourceBuild/content/repo-projects/vstest.proj index 65e7b28247c7..d1188d6fe229 100644 --- a/src/SourceBuild/content/repo-projects/vstest.proj +++ b/src/SourceBuild/content/repo-projects/vstest.proj @@ -6,8 +6,6 @@ $(BuildCommandArgs) /p:SemanticVersioningV1=true $(ProjectDirectory)\eng\common\build$(ShellExtension) $(BuildCommandArgs) true - - IDE0090 diff --git a/src/SourceBuild/content/repo-projects/xliff-tasks.proj b/src/SourceBuild/content/repo-projects/xliff-tasks.proj deleted file mode 100644 index e6c43dd752ad..000000000000 --- a/src/SourceBuild/content/repo-projects/xliff-tasks.proj +++ /dev/null @@ -1,14 +0,0 @@ - - - - - $(StandardSourceBuildArgs) - $(StandardSourceBuildCommand) $(BuildCommandArgs) - - true - true - - - - - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs new file mode 100644 index 000000000000..e07d6d71665f --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs @@ -0,0 +1,161 @@ +// 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.Linq; +using System.Collections; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using System.Formats.Tar; +using System.Threading.Tasks; +using Xunit; +using Xunit.Abstractions; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +[Trait("Category", "SdkContent")] +public class ArtifactsSizeTest : SdkTests +{ + private const int SizeThresholdPercentage = 25; + private static readonly string BaselineFilePath = BaselineHelper.GetBaselineFilePath($"ArtifactsSizes/{Config.TargetRid}.txt"); + private readonly Dictionary BaselineFileContent = new(); + private Dictionary FilePathCountMap = new(); + + public ArtifactsSizeTest(ITestOutputHelper outputHelper) : base(outputHelper) + { + if (File.Exists(BaselineFilePath)) + { + string[] baselineFileContent = File.ReadAllLines(BaselineFilePath); + foreach (string entry in baselineFileContent) + { + string[] splitEntry = entry.Split(':', StringSplitOptions.TrimEntries); + BaselineFileContent[splitEntry[0]] = long.Parse(splitEntry[1]); + } + } + else + { + Assert.False(true, $"Baseline file `{BaselineFilePath}' does not exist. Please create the baseline file then rerun the test."); + } + } + + [SkippableFact(Config.IncludeArtifactsSizeEnv, skipOnFalseEnv: true)] + public void CompareArtifactsToBaseline() + { + Utilities.ValidateNotNullOrWhiteSpace(Config.SourceBuiltArtifactsPath, Config.SourceBuiltArtifactsPathEnv); + Utilities.ValidateNotNullOrWhiteSpace(Config.SdkTarballPath, Config.SdkTarballPathEnv); + Utilities.ValidateNotNullOrWhiteSpace(Config.TargetRid, Config.TargetRidEnv); + + var tarEntries = ProcessSdkAndArtifactsTarballs(); + + foreach (var entry in tarEntries) + { + if (!BaselineFileContent.TryGetValue(entry.FilePath, out long baselineBytes)) + { + OutputHelper.LogWarningMessage($"{entry.FilePath} does not exist in baseline. Adding it to the baseline file"); + } + else + { + CompareFileSizes(entry.FilePath, entry.Bytes, baselineBytes); + } + } + + try + { + string actualFilePath = Path.Combine(LogsDirectory, $"UpdatedArtifactsSizes_{Config.TargetRid}.txt"); + File.WriteAllLines(actualFilePath, tarEntries.Select(entry => $"{entry.FilePath}: {entry.Bytes}")); + } + catch (IOException ex) + { + throw new InvalidOperationException($"An error occurred while copying the baselines file: {BaselineFilePath}", ex); + } + } + + private (string FilePath, long Bytes)[] ProcessSdkAndArtifactsTarballs() + { + string tempTarballDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + Directory.CreateDirectory(tempTarballDir); + + Utilities.ExtractTarball(Config.SdkTarballPath, tempTarballDir, OutputHelper); + Utilities.ExtractTarball(Config.SourceBuiltArtifactsPath, tempTarballDir, OutputHelper); + + (string FilePath, long Bytes)[] tarEntries = Directory.EnumerateFiles(tempTarballDir, "*", SearchOption.AllDirectories) + .Where(filepath => !filepath.Contains("SourceBuildReferencePackages")) + .Select(filePath => + { + string result = filePath.Substring(tempTarballDir.Length + 1); + result = ProcessFilePath(result); + return (FilePath: result, Bytes: new FileInfo(filePath).Length); + }) + .OrderBy(entry => entry.FilePath) + .ToArray(); + + Directory.Delete(tempTarballDir, true); + + return tarEntries; + } + + private string ProcessFilePath(string originalPath) + { + string result = BaselineHelper.RemoveRids(originalPath); + result = BaselineHelper.RemoveVersions(result); + + return AddDifferenciatingSuffix(result); + } + + // Because version numbers are abstracted, it is possible to have duplicate FilePath entries. + // This code adds a numeric suffix to differentiate duplicate FilePath entries. + private string AddDifferenciatingSuffix(string filePath) + { + string[] patterns = {@"x\.y\.z", @"x\.y(?!\.z)"}; + int matchIndex = -1; + string matchPattern = ""; + foreach (string pattern in patterns) + { + MatchCollection matches = Regex.Matches(filePath, pattern); + + if (matches.Count > 0) + { + if (matches[matches.Count - 1].Index > matchIndex) + { + matchIndex = matches[matches.Count - 1].Index; + matchPattern = matches[matches.Count - 1].Value; + } + } + } + + if (matchIndex != -1) + { + int count = FilePathCountMap.TryGetValue(filePath, out count) ? count : 0; + FilePathCountMap[filePath] = count + 1; + + if (count > 0) + { + return filePath.Substring(0, matchIndex) + $"{matchPattern}-{count}" + filePath.Substring(matchIndex + matchPattern.Length); + } + } + + return filePath; + } + + private void CompareFileSizes(string filePath, long fileSize, long baselineSize) + { + if (fileSize == 0 && baselineSize != 0) + { + OutputHelper.LogWarningMessage($"'{filePath}' is now 0 bytes. It was {baselineSize} bytes"); + } + else if (fileSize != 0 && baselineSize == 0) + { + OutputHelper.LogWarningMessage($"'{filePath}' is no longer 0 bytes. It is now {fileSize} bytes"); + } + else if (baselineSize != 0 && (((fileSize - baselineSize) / (double)baselineSize) * 100) >= SizeThresholdPercentage) + { + OutputHelper.LogWarningMessage($"'{filePath}' increased in size by more than {SizeThresholdPercentage}%. It was originally {baselineSize} bytes and is now {fileSize} bytes"); + } + else if (baselineSize != 0 && (((baselineSize - fileSize) / (double)baselineSize) * 100) >= SizeThresholdPercentage) + { + OutputHelper.LogWarningMessage($"'{filePath}' decreased in size by more than {SizeThresholdPercentage}%. It was originally {baselineSize} bytes and is now {fileSize} bytes"); + } + } +} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs index b8426c2a3922..6b7c6f71a50f 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs @@ -16,10 +16,10 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests { internal class BaselineHelper { - private const string VersionPlaceholder = "x.y.z"; - private const string VersionPlaceholderMatchingPattern = "*.*.*"; // wildcard pattern used to match on the version represented by the placeholder - private const string NetTfmPlaceholder = "netx.y"; - private const string NetTfmPlaceholderMatchingPattern = "net*.*"; // wildcard pattern used to match on the version represented by the placeholder + private const string SemanticVersionPlaceholder = "x.y.z"; + private const string SemanticVersionPlaceholderMatchingPattern = "*.*.*"; // wildcard pattern used to match on the version represented by the placeholder + private const string NonSemanticVersionPlaceholder = "x.y"; + private const string NonSemanticVersionPlaceholderMatchingPattern = "*.*"; // wildcard pattern used to match on the version represented by the placeholder public static void CompareEntries(string baselineFileName, IOrderedEnumerable actualEntries) { @@ -41,12 +41,12 @@ public static void CompareEntries(string baselineFileName, IOrderedEnumerable Path.Combine(Directory.GetCurrentDirectory(), "assets"); - public static string GetBaselineFilePath(string baselineFileName) => Path.Combine(GetAssetsDirectory(), "baselines", baselineFileName); - - public static string RemoveNetTfmPaths(string source) - { - string pathSeparator = Regex.Escape(Path.DirectorySeparatorChar.ToString()); - Regex netTfmRegex = new($"{pathSeparator}net[1-9]+\\.[0-9]+{pathSeparator}"); - return netTfmRegex.Replace(source, $"{Path.DirectorySeparatorChar}{NetTfmPlaceholder}{Path.DirectorySeparatorChar}"); - } + public static string GetBaselineFilePath(string baselineFileName, string baselineSubDir = "") => + Path.Combine(GetAssetsDirectory(), "baselines", baselineSubDir, baselineFileName); public static string RemoveRids(string diff, bool isPortable = false) => isPortable ? diff.Replace(Config.PortableRid, "portable-rid") : diff.Replace(Config.TargetRid, "banana-rid"); public static string RemoveVersions(string source) { + // Remove version numbers for examples like "roslyn4.1", "net8.0", and "netstandard2.1". + string pathSeparator = Regex.Escape(Path.DirectorySeparatorChar.ToString()); + string result = Regex.Replace(source, $@"{pathSeparator}(net|roslyn)[1-9]+\.[0-9]+{pathSeparator}", match => + { + string wordPart = match.Groups[1].Value; + return $"{Path.DirectorySeparatorChar}{wordPart}{NonSemanticVersionPlaceholder}{Path.DirectorySeparatorChar}"; + }); + // Remove semantic versions // Regex source: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string + // The regex from https://semver.org has been modified to account for the following: + // - The version should be preceded by a path separator, '.', '-', or '/' + // - The version should match a release identifier that begins with '.' or '-' + // - The version may have one or more release identifiers that begin with '.' or '-' + // - The version should end before a path separator, '.', '-', or '/' 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, VersionPlaceholder); - - return RemoveNetTfmPaths(result); + @"(?<=[./-])(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-]+)*))?(?=[/.-])"); + return semanticVersionRegex.Replace(result, SemanticVersionPlaceholder); } /// @@ -119,8 +125,8 @@ public static string RemoveVersions(string source) public static Matcher GetFileMatcherFromPath(string path) { path = path - .Replace(VersionPlaceholder, VersionPlaceholderMatchingPattern) - .Replace(NetTfmPlaceholder, NetTfmPlaceholderMatchingPattern); + .Replace(SemanticVersionPlaceholder, SemanticVersionPlaceholderMatchingPattern) + .Replace(NonSemanticVersionPlaceholder, NonSemanticVersionPlaceholderMatchingPattern); Matcher matcher = new(); matcher.AddInclude(path); return matcher; diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs index 4f1aafc68063..20a22af3cbff 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs @@ -15,7 +15,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; /// for related web scenarios. /// They are encapsulated in a separate testclass so that they can be run in parallel. /// -public class BasicScenarioTests : SmokeTests +public class BasicScenarioTests : SdkTests { public BasicScenarioTests(ITestOutputHelper outputHelper) : base(outputHelper) { } @@ -36,9 +36,10 @@ public static IEnumerable GetScenarios() // R2R is not supported on Mono (see https://github.com/dotnet/runtime/issues/88419#issuecomment-1623762676) DotNetActions.Build | DotNetActions.Run | (DotNetHelper.ShouldPublishComplex() ? DotNetActions.None : DotNetActions.PublishComplex) | (helper.IsMonoRuntime ? DotNetActions.None : DotNetActions.PublishR2R)); yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.ClassLib, DotNetActions.Build | DotNetActions.Publish); - yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.XUnit, DotNetActions.Test); - yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.NUnit, DotNetActions.Test); - yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.MSTest, DotNetActions.Test); + // TODO: Uncomment when test templates are updated to net9.0: https://github.com/dotnet/source-build/issues/3668 + // yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.XUnit, DotNetActions.Test); + // yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.NUnit, DotNetActions.Test); + // yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.MSTest, DotNetActions.Test); } } } diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs index 85dd0eae3a7d..6bc2393e89fa 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs @@ -11,6 +11,7 @@ internal static class Config { public const string DotNetDirectoryEnv = "SMOKE_TESTS_DOTNET_DIR"; public const string ExcludeOmniSharpEnv = "SMOKE_TESTS_EXCLUDE_OMNISHARP"; + public const string IncludeArtifactsSizeEnv = "SMOKE_TESTS_INCLUDE_ARTIFACTSSIZE"; public const string MsftSdkTarballPathEnv = "SMOKE_TESTS_MSFT_SDK_TARBALL_PATH"; public const string PoisonReportPathEnv = "SMOKE_TESTS_POISON_REPORT_PATH"; public const string PortableRidEnv = "SMOKE_TESTS_PORTABLE_RID"; @@ -20,7 +21,9 @@ internal static class Config public const string SourceBuiltArtifactsPathEnv = "SMOKE_TESTS_SOURCEBUILT_ARTIFACTS_PATH"; public const string TargetRidEnv = "SMOKE_TESTS_TARGET_RID"; public const string WarnSdkContentDiffsEnv = "SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS"; + public const string WarnLicenseScanDiffsEnv = "SMOKE_TESTS_WARN_LICENSE_SCAN_DIFFS"; public const string RunningInCIEnv = "SMOKE_TESTS_RUNNING_IN_CI"; + public const string LicenseScanPathEnv = "SMOKE_TESTS_LICENSE_SCAN_PATH"; public static string DotNetDirectory { get; } = Environment.GetEnvironmentVariable(DotNetDirectoryEnv) ?? Path.Combine(Directory.GetCurrentDirectory(), ".dotnet"); @@ -31,15 +34,18 @@ internal static class Config public static string? PrereqsPath { get; } = Environment.GetEnvironmentVariable(PrereqsPathEnv); public static string? CustomPackagesPath { get; } = Environment.GetEnvironmentVariable(CustomPackagesPathEnv); public static string? SdkTarballPath { get; } = Environment.GetEnvironmentVariable(SdkTarballPathEnv); - public static string SourceBuiltArtifactsPath { get; } = Environment.GetEnvironmentVariable(SourceBuiltArtifactsPathEnv) ?? - throw new InvalidOperationException($"'{Config.SourceBuiltArtifactsPathEnv}' must be specified"); + public static string? SourceBuiltArtifactsPath { get; } = Environment.GetEnvironmentVariable(SourceBuiltArtifactsPathEnv); public static string TargetRid { get; } = Environment.GetEnvironmentVariable(TargetRidEnv) ?? throw new InvalidOperationException($"'{Config.TargetRidEnv}' must be specified"); public static string TargetArchitecture { get; } = TargetRid.Split('-')[1]; public static bool WarnOnSdkContentDiffs { get; } = bool.TryParse(Environment.GetEnvironmentVariable(WarnSdkContentDiffsEnv), out bool warnOnSdkContentDiffs) && warnOnSdkContentDiffs; + public static bool WarnOnLicenseScanDiffs { get; } = + bool.TryParse(Environment.GetEnvironmentVariable(WarnLicenseScanDiffsEnv), out bool warnOnLicenseScanDiffs) && warnOnLicenseScanDiffs; // Indicates whether the tests are being run in the context of a CI pipeline public static bool RunningInCI { get; } = bool.TryParse(Environment.GetEnvironmentVariable(RunningInCIEnv), out bool runningInCI) && runningInCI; + + public static string? LicenseScanPath { get; } = Environment.GetEnvironmentVariable(LicenseScanPathEnv); } diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs index 939339207f62..c556b0e907eb 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs @@ -12,7 +12,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; -public class DebugTests : SmokeTests +public class DebugTests : SdkTests { private record ScanResult(string FileName, bool HasDebugInfo, bool HasDebugAbbrevs, bool HasFileSymbols, bool HasGnuDebugLink); diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs index 86c6f26505a3..bfd1a876654e 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs @@ -8,7 +8,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; -public class DotNetFormatTests : SmokeTests +public class DotNetFormatTests : SdkTests { private const string TestFileName = "FormatTest.cs"; private const string UnformattedFileName = "FormatTestUnformatted.cs"; @@ -22,12 +22,6 @@ public DotNetFormatTests(ITestOutputHelper outputHelper) : base(outputHelper) { [Fact] public void FormatProject() { - if (Config.TargetRid.Contains("alpine")) - { - // Skipping this test on Alpine due to https://github.com/dotnet/format/issues/1945 - return; - } - string unformattedCsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), UnformattedFileName); string projectDirectory = DotNetHelper.ExecuteNew("console", nameof(FormatProject), "C#"); diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs index 7c1a8673cf5f..f35440d4c2bd 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs @@ -3,14 +3,12 @@ // See the LICENSE file in the project root for more information. using System; -using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Sockets; -using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; @@ -21,7 +19,6 @@ internal class DotNetHelper private static readonly object s_lockObj = new(); public static string DotNetPath { get; } = Path.Combine(Config.DotNetDirectory, "dotnet"); - public static string LogsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "logs"); public static string PackagesDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "packages"); public static string ProjectsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), $"projects-{DateTime.Now:yyyyMMddHHmmssffff}"); @@ -56,11 +53,6 @@ public DotNetHelper(ITestOutputHelper outputHelper) { Directory.CreateDirectory(PackagesDirectory); } - - if (!Directory.Exists(LogsDirectory)) - { - Directory.CreateDirectory(LogsDirectory); - } } } @@ -261,7 +253,7 @@ private static string GetBinLogOption(string projectName, string command, string fileName += $"-{differentiator}"; } - return $"/bl:{Path.Combine(LogsDirectory, $"{fileName}.binlog")}"; + return $"/bl:{Path.Combine(TestBase.LogsDirectory, $"{fileName}.binlog")}"; } private static bool DetermineIsMonoRuntime(string dotnetRoot) diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs index 3fbc04899b90..e30909a9b334 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs @@ -9,7 +9,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; -public class DotNetWatchTests : SmokeTests +public class DotNetWatchTests : SdkTests { public DotNetWatchTests(ITestOutputHelper outputHelper) : base(outputHelper) { } @@ -20,7 +20,7 @@ public void WatchTests() bool outputChanged = false; DotNetHelper.ExecuteCmd( - "watch run", + "watch run --non-interactive", workingDirectory: projectDirectory, processConfigCallback: processConfigCallback, expectedExitCode: null, // The exit code does not reflect whether or not dotnet watch is working properly diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs new file mode 100644 index 000000000000..8a088ba4d271 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs @@ -0,0 +1,290 @@ +// 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.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.Json; +using System.Text.Json.Serialization; +using System.Text.RegularExpressions; +using Xunit; +using Xunit.Abstractions; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +/// +/// Scans the VMR for licenses and compares them to a baseline. This ensures that only open-source licenses are used for relevant files. +/// +/// +/// Each sub-repo of the VMR is scanned separately because of the amount of time it takes. +/// When scanning is run, the test provides a list of files for the scanner to ignore. These include binary file types. It also includes +/// .il/.ildump file types which are massive, causing the scanner to choke and don't include license references anyway. +/// Once the scanner returns the results, a filtering process occurs. First, any detected license that is in the allowed list of licenses +/// is filtered out. The test defines a list of such licenses that all represent open-source licenses. Next, a license exclusions file is +/// applied to the filtering. This file contains a set of paths for which certain detected licenses are to be ignored. Such a path can be +/// defined to ignore all detected licenses or specific ones. These exclusions are useful for ignoring false positives where the scanning +/// tool has detected something in the file that makes it think it's a license reference when that's not actually the intent. Other cases +/// that are excluded are when the license is meant as configuration or test data and not actually applying to the code. These exclusions +/// further filter down the set of the detected licenses for each file. Everything that's left at this point is reported. It gets compared +/// to a baseline file (which is defined for each sub-repo). If the filtered results differ from what's defined in the baseline, the test fails. +/// +/// Rules for determining how to resolve a detected license: +/// 1. If it's an allowed open-source license, add it to the list of allowed licenses in LicenseScanTests.cs. +/// 2. If the file shouldn't be scanned as a general rule because of its file type (e.g. image file), add it to the list of excluded file types in LicenseScanTests.cs. +/// 3. Add it to LicenseExclusions.txt if the referenced license is one of the following: +/// a. Not applicable (e.g. test data) +/// b. False positive +/// 4. If the license is not allowed for open-souce, the license needs to be fixed. Everything else should go in the baseline file. +/// +public class LicenseScanTests : TestBase +{ + private const string BaselineSubDir = "licenses"; + + private static readonly string[] s_allowedLicenseExpressions = new string[] + { + "apache-1.1", // https://opensource.org/license/apache-1-1/ + "apache-2.0", // https://opensource.org/license/apache-2-0/ + "apache-2.0 WITH apple-runtime-library-exception", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/apple-runtime-library-exception.LICENSE + "apache-2.0 WITH llvm-exception", // https://foundation.llvm.org/relicensing/LICENSE.txt + "apsl-2.0", // https://opensource.org/license/apsl-2-0-php/ + "boost-1.0", // https://opensource.org/license/bsl-1-0/ + "bsd-new", // https://opensource.org/license/BSD-3-clause/ + "bsd-original", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bsd-original.LICENSE + "bsd-original-uc", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bsd-original-uc.LICENSE + "bsd-simplified", // https://opensource.org/license/bsd-2-clause/ + "bytemark", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bytemark.LICENSE + "bzip2-libbzip-2010", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/bzip2-libbzip-2010.LICENSE + "cc0-1.0", // https://creativecommons.org/publicdomain/zero/1.0/legalcode + "cc-by-3.0", // https://creativecommons.org/licenses/by/3.0/legalcode + "cc-by-sa-3.0", // https://creativecommons.org/licenses/by-sa/3.0/legalcode + "cc-by-sa-4.0", // https://creativecommons.org/licenses/by-sa/4.0/legalcode + "cc-pd", // https://creativecommons.org/publicdomain/mark/1.0/ + "epl-1.0", // https://opensource.org/license/epl-1-0/ + "generic-cla", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/generic-cla.LICENSE + "gpl-1.0-plus", // https://opensource.org/license/gpl-1-0/ + "gpl-2.0", // https://opensource.org/license/gpl-2-0/ + "ietf", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ietf.LICENSE + "gpl-2.0-plus WITH autoconf-simple-exception-2.0", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/rules/gpl-2.0-plus_with_autoconf-simple-exception-2.0_8.RULE + "gpl-2.0 WITH gcc-linking-exception-2.0", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/rules/gpl-2.0_with_gcc-linking-exception-2.0_6.RULE + "isc", // https://opensource.org/license/isc-license-txt/ + "iso-8879", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/iso-8879.LICENSE + "lgpl-2.0-plus", // https://opensource.org/license/lgpl-2-0/ + "lgpl-2.1", // https://opensource.org/license/lgpl-2-1/ + "lgpl-2.1-plus", // https://opensource.org/license/lgpl-2-1/ + "lzma-sdk-9.22", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE + "mit", // https://opensource.org/license/mit/ + "mit-addition", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-addition.LICENSE + "ms-patent-promise", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-patent-promise.LICENSE + "ms-lpl", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-lpl.LICENSE + "ms-pl", // https://opensource.org/license/ms-pl-html/ + "ms-rl", // https://opensource.org/license/ms-rl-html/ + "newton-king-cla", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/newton-king-cla.LICENSE + "ngpl", // https://opensource.org/license/nethack-php/ + "object-form-exception-to-mit", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/object-form-exception-to-mit.LICENSE + "ofl-1.1", // https://opensource.org/license/ofl-1-1/ + "osf-1990", // https://fedoraproject.org/wiki/Licensing:MIT?rd=Licensing/MIT#HP_Variant + "public-domain", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/public-domain.LICENSE + "public-domain-disclaimer", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/public-domain-disclaimer.LICENSE + "python", // https://opensource.org/license/python-2-0/ + "rpl-1.5", // https://opensource.org/license/rpl-1-5/ + "sax-pd", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/sax-pd.LICENSE + "unicode", // https://opensource.org/license/unicode-inc-license-agreement-data-files-and-software/ + "unicode-mappings", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/unicode-mappings.LICENSE + "uoi-ncsa", // https://opensource.org/license/uoi-ncsa-php/ + "w3c-software-19980720", // https://opensource.org/license/w3c/ + "w3c-software-doc-20150513", // https://opensource.org/license/w3c/ + "warranty-disclaimer", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/warranty-disclaimer.LICENSE + "x11", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/x11.LICENSE + "zlib" // https://opensource.org/license/zlib/ + }; + + private static readonly string[] s_ignoredFilePatterns = new string[] + { + "*.bin", + "*.bmp", + "*.bson", + "*.db", + "*.dic", + "*.eot", + "*.gif", + "*.ico", + "*.jpg", + "*.il", + "*.ildump", + "*.lss", + "*.nlp", + "*.otf", + "*.pdf", + "*.pfx", + "*.png", + "*.snk", + "*.ttf", + "*.vsd", + "*.vsdx", + "*.winmd", + "*.woff", + "*.woff2", + "*.xlsx", + }; + + private readonly string _targetRepo; + + public LicenseScanTests(ITestOutputHelper outputHelper) : base(outputHelper) + { + Assert.NotNull(Config.LicenseScanPath); + _targetRepo = new DirectoryInfo(Config.LicenseScanPath).Name; + } + + [SkippableFact(Config.LicenseScanPathEnv, skipOnNullOrWhiteSpaceEnv: true)] + public void ScanForLicenses() + { + Assert.NotNull(Config.LicenseScanPath); + + string scancodeResultsPath = Path.Combine(LogsDirectory, "scancode-results.json"); + + // Scancode Doc: https://scancode-toolkit.readthedocs.io/en/latest/index.html + string ignoreOptions = string.Join(" ", s_ignoredFilePatterns.Select(pattern => $"--ignore {pattern}")); + ExecuteHelper.ExecuteProcessValidateExitCode( + "scancode", + $"--license --strip-root --only-findings {ignoreOptions} --json-pp {scancodeResultsPath} {Config.LicenseScanPath}", + OutputHelper); + + JsonDocument doc = JsonDocument.Parse(File.ReadAllText(scancodeResultsPath)); + ScancodeResults? scancodeResults = doc.Deserialize(); + Assert.NotNull(scancodeResults); + + FilterFiles(scancodeResults); + + JsonSerializerOptions options = new() + { + WriteIndented = true + }; + string json = JsonSerializer.Serialize(scancodeResults, options); + + string baselineName = $"Licenses.{_targetRepo}.json"; + + string baselinePath = BaselineHelper.GetBaselineFilePath(baselineName, BaselineSubDir); + if (!File.Exists(baselinePath)) + { + Assert.Fail($"No license baseline file exists for repo '{_targetRepo}'. Expected file: {baselinePath}"); + } + + BaselineHelper.CompareBaselineContents(baselineName, json, OutputHelper, Config.WarnOnLicenseScanDiffs, BaselineSubDir); + } + + private LicenseExclusion ParseLicenseExclusion(string rawExclusion) + { + string[] parts = rawExclusion.Split('|', StringSplitOptions.RemoveEmptyEntries); + + Match repoNameMatch = Regex.Match(parts[0], @"(?<=src/)[^/]+"); + + Assert.True(repoNameMatch.Success); + + // The path in the exclusion file is rooted from the VMR. But the path in the scancode results is rooted from the + // target repo within the VMR. So we need to strip off the beginning part of the path. + Match restOfPathMatch = Regex.Match(parts[0], @"(?<=src/[^/]+/).*"); + string path = restOfPathMatch.Value; + + if (parts.Length == 0 || parts.Length > 2) + { + throw new Exception($"Invalid license exclusion: '{rawExclusion}'"); + } + + if (parts.Length > 1) + { + string[] licenseExpressions = parts[1].Split(',', StringSplitOptions.RemoveEmptyEntries); + return new LicenseExclusion(repoNameMatch.Value, path, licenseExpressions); + } + else + { + return new LicenseExclusion(repoNameMatch.Value, path, Enumerable.Empty()); + } + } + + private void FilterFiles(ScancodeResults scancodeResults) + { + IEnumerable rawExclusions = Utilities.ParseExclusionsFile("LicenseExclusions.txt"); + IEnumerable exclusions = rawExclusions + .Select(exclusion => ParseLicenseExclusion(exclusion)) + .Where(exclusion => exclusion.Repo == _targetRepo) + .ToList(); + + // This will filter out files that we don't want to include in the baseline. + // Filtering can happen in two ways: + // 1. There are a set of allowed license expressions that apply to all files. If a file has a match on one of those licenses, + // that license will not be considered. + // 2. The LicenseExclusions.txt file contains a list of files and the licenses that should be excluded from those files. + // Once the license expression filtering has been applied, if a file has any licenses left, it will be included in the baseline. + // In that case, the baseline will list all of the licenses for that file, even if some were originally excluded during this processing. + // In other words, the baseline will be fully representative of the licenses that apply to the files that are listed there. + + for (int i = scancodeResults.Files.Count - 1; i >= 0; i--) + { + ScancodeFileResult file = scancodeResults.Files[i]; + + // A license expression can be a logical expression, e.g. "(MIT OR Apache-2.0)" + // For our purposes, we just care about the license involved, not the semantics of the expression. + // Parse out all the expression syntax to just get the license names. + string[] licenses = file.LicenseExpression? + .Replace("(", string.Empty) + .Replace(")", string.Empty) + .Replace(" AND ", ",") + .Replace(" OR ", ",") + .Split(",", StringSplitOptions.RemoveEmptyEntries) + .Select(license => license.Trim()) + .ToArray() + ?? Array.Empty(); + + // First check whether the file's licenses can all be matched with allowed expressions + IEnumerable disallowedLicenses = licenses + .Where(license => !s_allowedLicenseExpressions.Contains(license, StringComparer.OrdinalIgnoreCase)); + + if (!disallowedLicenses.Any()) + { + scancodeResults.Files.Remove(file); + } + else + { + // There are some licenses that are not allowed. Now check whether the file is excluded. + + IEnumerable matchingExclusions = + Utilities.GetMatchingFileExclusions(file.Path, exclusions, exclusion => exclusion.Path); + + IEnumerable excludedLicenses = matchingExclusions.SelectMany(exclusion => exclusion.LicenseExpressions); + // If no licenses are explicitly specified, it means they're all excluded. + if (matchingExclusions.Any() && !excludedLicenses.Any()) + { + scancodeResults.Files.Remove(file); + } + else + { + IEnumerable remainingLicenses = disallowedLicenses.Except(excludedLicenses); + + if (!remainingLicenses.Any()) + { + scancodeResults.Files.Remove(file); + } + } + } + } + } + + private record LicenseExclusion(string Repo, string Path, IEnumerable LicenseExpressions); + + private class ScancodeResults + { + [JsonPropertyName("files")] + public List Files { get; set; } = new(); + } + + private class ScancodeFileResult + { + [JsonPropertyName("path")] + public string Path { get; set; } = string.Empty; + + [JsonPropertyName("detected_license_expression")] + public string? LicenseExpression { get; set; } + } +} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj index c491778a80b0..ea6e53b207b2 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj @@ -1,7 +1,7 @@ - net8.0 + net9.0 enable false @@ -11,8 +11,8 @@ - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/OmniSharpTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/OmniSharpTests.cs index 48cdb1d500a8..416a1e1caaa4 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/OmniSharpTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/OmniSharpTests.cs @@ -16,10 +16,10 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; /// /// OmniSharp tests to ensure it works with a source-built sdk. /// -public class OmniSharpTests : SmokeTests +public class OmniSharpTests : SdkTests { // Update version as new releases become available: https://github.com/OmniSharp/omnisharp-roslyn/releases - private const string OmniSharpReleaseVersion = "1.39.8"; + private const string OmniSharpReleaseVersion = "1.39.10"; private string OmniSharpDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), nameof(OmniSharpTests)); diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs index 6eb8203f512e..10a794fc412e 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs @@ -9,10 +9,10 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests { - public class PoisonTests : SmokeTests + public class PoisonTests : SdkTests { public PoisonTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - + [SkippableFact(Config.PoisonReportPathEnv, skipOnNullOrWhiteSpaceEnv: true)] public void VerifyUsage() { diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs index d3b0c8a26f87..29bb7dbc55ca 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs @@ -17,7 +17,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; [Trait("Category", "SdkContent")] -public class SdkContentTests : SmokeTests +public class SdkContentTests : SdkTests { private const string MsftSdkType = "msft"; private const string SourceBuildSdkType = "sb"; @@ -98,7 +98,7 @@ private static void RemoveExcludedAssemblyVersionPaths(Dictionary= msftVersion && - IsFileExcluded(assemblyPath, assemblyVersionDiffFilters)) + Utilities.IsFileExcluded(assemblyPath, assemblyVersionDiffFilters)) { sbSdkAssemblyVersions.Remove(assemblyPath); msftSdkAssemblyVersions.Remove(assemblyPath); @@ -182,7 +182,7 @@ private string FindMatchingFilePath(string rootDir, Matcher matcher, string repr string relativePath = Path.GetRelativePath(sbSdkPath, file); string normalizedPath = BaselineHelper.RemoveVersions(relativePath); - if (!IsFileExcluded(normalizedPath, exclusionFilters)) + if (!Utilities.IsFileExcluded(normalizedPath, exclusionFilters)) { sbSdkAssemblyVersions.Add(normalizedPath, GetVersion(assemblyName)); } @@ -208,32 +208,13 @@ private void WriteTarballFileList(string? tarballPath, string outputFileName, bo } private static IEnumerable RemoveExclusions(IEnumerable files, IEnumerable exclusions) => - files.Where(item => !IsFileExcluded(item, exclusions)); - - private static bool IsFileExcluded(string filePath, IEnumerable exclusions) => - exclusions.Any(p => FileSystemName.MatchesSimpleExpression(p, filePath)); + files.Where(item => !Utilities.IsFileExcluded(item, exclusions)); private static IEnumerable GetSdkDiffExclusionFilters(string sdkType) => - ParseExclusionsFile("SdkFileDiffExclusions.txt", sdkType); + Utilities.ParseExclusionsFile("SdkFileDiffExclusions.txt", sdkType); private static IEnumerable GetSdkAssemblyVersionDiffExclusionFilters() => - ParseExclusionsFile("SdkAssemblyVersionDiffExclusions.txt"); - - private static IEnumerable ParseExclusionsFile(string exclusionsFileName, string? prefix = null) - { - string exclusionsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), exclusionsFileName); - int prefixSkip = prefix?.Length + 1 ?? 0; - return File.ReadAllLines(exclusionsFilePath) - // process only specific sdk exclusions if a prefix is provided - .Where(line => prefix is null || line.StartsWith(prefix + ",")) - .Select(line => - { - // Ignore comments - var index = line.IndexOf('#'); - return index >= 0 ? line[prefixSkip..index].TrimEnd() : line[prefixSkip..]; - }) - .ToList(); - } + Utilities.ParseExclusionsFile("SdkAssemblyVersionDiffExclusions.txt"); private static string RemoveDiffMarkers(string source) { diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SmokeTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkTests.cs similarity index 66% rename from src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SmokeTests.cs rename to src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkTests.cs index 3c197262b84f..ba3381360ffa 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SmokeTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkTests.cs @@ -7,16 +7,14 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; /// -/// Shared base class for all smoke tests. +/// Shared base class for all SDK-based smoke tests. /// -public abstract class SmokeTests +public abstract class SdkTests : TestBase { internal DotNetHelper DotNetHelper { get; } - internal ITestOutputHelper OutputHelper { get; } - protected SmokeTests(ITestOutputHelper outputHelper) + protected SdkTests(ITestOutputHelper outputHelper) : base(outputHelper) { DotNetHelper = new DotNetHelper(outputHelper); - OutputHelper = outputHelper; } } diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableFactAttribute.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableFactAttribute.cs index 47b31214a348..c1314e19e8b5 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableFactAttribute.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableFactAttribute.cs @@ -13,13 +13,13 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; /// internal class SkippableFactAttribute : FactAttribute { - public SkippableFactAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) => - EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envName); + public SkippableFactAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) => + EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envName); - public SkippableFactAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) => - EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envNames); + public SkippableFactAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) => + EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envNames); - public static void EvaluateSkips(bool skipOnNullOrWhiteSpaceEnv, bool skipOnTrueEnv, string[] skipArchitectures, Action setSkip, params string[] envNames) + public static void EvaluateSkips(bool skipOnNullOrWhiteSpaceEnv, bool skipOnTrueEnv, bool skipOnFalseEnv, string[] skipArchitectures, Action setSkip, params string[] envNames) { foreach (string envName in envNames) { @@ -35,6 +35,11 @@ public static void EvaluateSkips(bool skipOnNullOrWhiteSpaceEnv, bool skipOnTrue setSkip($"Skipping because `{envName}` is set to True"); break; } + else if (skipOnFalseEnv && (!bool.TryParse(envValue, out boolValue) || !boolValue)) + { + setSkip($"Skipping because `{envName}` is set to False or an invalid value"); + break; + } } if (skipArchitectures != null) { diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableTheoryAttribute.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableTheoryAttribute.cs index 6dd15c5e7926..a43228c0d2a6 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableTheoryAttribute.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SkippableTheoryAttribute.cs @@ -11,9 +11,9 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; /// internal class SkippableTheoryAttribute : TheoryAttribute { - public SkippableTheoryAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) => - SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envName); + public SkippableTheoryAttribute(string envName, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) => + SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envName); - public SkippableTheoryAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, string[] skipArchitectures = null) => - SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipArchitectures, (skip) => Skip = skip, envNames); + public SkippableTheoryAttribute(string[] envNames, bool skipOnNullOrWhiteSpaceEnv = false, bool skipOnTrueEnv = false, bool skipOnFalseEnv = false, string[] skipArchitectures = null) => + SkippableFactAttribute.EvaluateSkips(skipOnNullOrWhiteSpaceEnv, skipOnTrueEnv, skipOnFalseEnv, skipArchitectures, (skip) => Skip = skip, envNames); } diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourceBuiltArtifactsTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourceBuiltArtifactsTests.cs index 9fbbbc781f38..8ab1a9600031 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourceBuiltArtifactsTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourceBuiltArtifactsTests.cs @@ -13,13 +13,14 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; -public class SourceBuiltArtifactsTests : SmokeTests +public class SourceBuiltArtifactsTests : SdkTests { public SourceBuiltArtifactsTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - [Fact] + [SkippableFact(Config.SourceBuiltArtifactsPathEnv, skipOnNullOrWhiteSpaceEnv: true)] public void VerifyVersionFile() { + Assert.NotNull(Config.SourceBuiltArtifactsPath); string outputDir = Path.Combine(Directory.GetCurrentDirectory(), "sourcebuilt-artifacts"); Directory.CreateDirectory(outputDir); try diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourcelinkTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourcelinkTests.cs index f3a39242baad..80a475452a74 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourcelinkTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourcelinkTests.cs @@ -14,7 +14,16 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; -public class SourcelinkTests : SmokeTests +/// +/// Separate test collection for Sourcelink tests. This is needed due to intra-test parallelization, +/// which can cause less CPU time to be allocated to other tests. +/// This would make other tests run too long and fail due to timeouts. +/// +[CollectionDefinition(nameof(SourcelinkTestCollection), DisableParallelization = true)] +public class SourcelinkTestCollection { } + +[Collection(nameof(SourcelinkTestCollection))] +public class SourcelinkTests : SdkTests { private static string SourcelinkRoot { get; } = Path.Combine(Directory.GetCurrentDirectory(), nameof(SourcelinkTests)); @@ -26,24 +35,40 @@ public SourcelinkTests(ITestOutputHelper outputHelper) : base(outputHelper) { } [Fact] public void VerifySourcelinks() { - if (Directory.Exists(SourcelinkRoot)) + try { - Directory.Delete(SourcelinkRoot, true); - } - Directory.CreateDirectory(SourcelinkRoot); + if (Directory.Exists(SourcelinkRoot)) + { + Directory.Delete(SourcelinkRoot, true); + } + Directory.CreateDirectory(SourcelinkRoot); - IList failedFiles = ValidateSymbols(ExtractSymbolsPackages(GetAllSymbolsPackages()), InitializeSourcelinkTool()); + string symbolsRoot = Directory.CreateDirectory(Path.Combine(SourcelinkRoot, "symbols")).FullName; - if (failedFiles.Count > 0) - { - OutputHelper.WriteLine($"Sourcelink verification failed for the following files:"); - foreach (string file in failedFiles) + // We are validating dotnet-symbols-all-*.tar.gz which contains all source-built symbols, including + // SDK-specific symbols that are also packaged in dotnet-symbols-sdk-*.tar.gz. + Utilities.ExtractTarball( + Utilities.GetFile(Path.GetDirectoryName(Config.SourceBuiltArtifactsPath), "dotnet-symbols-all-*.tar.gz"), + symbolsRoot, + OutputHelper); + + IList failedFiles = ValidateSymbols(symbolsRoot, InitializeSourcelinkTool()); + + if (failedFiles.Count > 0) { - OutputHelper.WriteLine(file); + OutputHelper.WriteLine($"Sourcelink verification failed for the following files:"); + foreach (string file in failedFiles) + { + OutputHelper.WriteLine(file); + } } - } - Assert.True(failedFiles.Count == 0); + Assert.True(failedFiles.Count == 0); + } + finally + { + Directory.Delete(SourcelinkRoot, true); + } } /// @@ -53,6 +78,8 @@ public void VerifySourcelinks() /// Path to sourcelink tool binary. private string InitializeSourcelinkTool() { + Assert.NotNull(Config.SourceBuiltArtifactsPath); + const string SourcelinkToolPackageNamePattern = "dotnet-sourcelink*nupkg"; const string SourcelinkToolBinaryFilename = "dotnet-sourcelink.dll"; @@ -65,38 +92,6 @@ private string InitializeSourcelinkTool() return Utilities.GetFile(extractedToolPath, SourcelinkToolBinaryFilename); } - private IEnumerable GetAllSymbolsPackages() - { - /* - At the moment we validate sourcelinks from runtime symbols package. - The plan is to make symbols, from all repos, available in source-build artifacts. - Once that's available, this code will be modified to validate all available symbols. - Tracking issue: https://github.com/dotnet/source-build/issues/3612 - */ - - // Runtime symbols package lives in the same directory as PSB artifacts. - // i.e. /artifacts/x64/Release/runtime/dotnet-runtime-symbols-fedora.36-x64-8.0.0-preview.7.23355.7.tar.gz - yield return Utilities.GetFile(Path.GetDirectoryName(Config.SourceBuiltArtifactsPath), "dotnet-runtime-symbols-*.tar.gz"); - } - - /// - /// Extracts symbols packages to subdirectories of the common symbols root directory. - /// - /// Path to common symbols root directory. - private string ExtractSymbolsPackages(IEnumerable packages) - { - string symbolsRoot = Directory.CreateDirectory(Path.Combine(SourcelinkRoot, "symbols")).FullName; - - foreach (string package in packages) - { - Assert.True(package.EndsWith(".tar.gz"), $"Package extension is not supported: {package}"); - DirectoryInfo targetDirInfo = Directory.CreateDirectory(Path.Combine(symbolsRoot, Path.GetFileNameWithoutExtension(package))); - Utilities.ExtractTarball(package, targetDirInfo.FullName, OutputHelper); - } - - return symbolsRoot; - } - private IList ValidateSymbols(string path, string sourcelinkToolPath) { Assert.True(Directory.Exists(path), $"Path, with symbol files to validate, does not exist: {path}"); @@ -112,7 +107,7 @@ private IList ValidateSymbols(string path, string sourcelinkToolPath) OutputHelper, logOutput: false, excludeInfo: true, // Exclude info messages, as there can be 1,000+ processes - millisecondTimeout: 5000, + millisecondTimeout: 60000, configureCallback: (process) => DotNetHelper.ConfigureProcess(process, null)); if (executeResult.Process.ExitCode != 0) diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestBase.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestBase.cs new file mode 100644 index 000000000000..963f07109303 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestBase.cs @@ -0,0 +1,25 @@ +// 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.IO; +using Xunit.Abstractions; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +public abstract class TestBase +{ + public static string LogsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "logs"); + + public ITestOutputHelper OutputHelper { get; } + + public TestBase(ITestOutputHelper outputHelper) + { + OutputHelper = outputHelper; + + if (!Directory.Exists(LogsDirectory)) + { + Directory.CreateDirectory(LogsDirectory); + } + } +} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Utilities.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Utilities.cs index a701e730fd5e..228a65a61e94 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Utilities.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Utilities.cs @@ -8,6 +8,8 @@ using System.Formats.Tar; using System.IO; using System.IO.Compression; +using System.IO.Enumeration; +using System.Linq; using System.Threading; using System.Threading.Tasks; using Xunit; @@ -17,6 +19,37 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; public static class Utilities { + /// + /// Returns whether the given file path is excluded by the given exclusions using glob file matching. + /// + public static bool IsFileExcluded(string filePath, IEnumerable exclusions) => + GetMatchingFileExclusions(filePath, exclusions, exclusion => exclusion).Any(); + + public static IEnumerable GetMatchingFileExclusions(string filePath, IEnumerable exclusions, Func getExclusionExpression) => + exclusions.Where(exclusion => FileSystemName.MatchesSimpleExpression(getExclusionExpression(exclusion), filePath)); + + /// + /// Parses a common file format in the test suite for listing file exclusions. + /// + /// Name of the exclusions file. + /// When specified, filters the exclusions to those that begin with the prefix value. + public static IEnumerable ParseExclusionsFile(string exclusionsFileName, string? prefix = null) + { + string exclusionsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), exclusionsFileName); + int prefixSkip = prefix?.Length + 1 ?? 0; + return File.ReadAllLines(exclusionsFilePath) + // process only specific exclusions if a prefix is provided + .Where(line => prefix is null || line.StartsWith(prefix + ",")) + .Select(line => + { + // Ignore comments + var index = line.IndexOf('#'); + return index >= 0 ? line[prefixSkip..index].TrimEnd() : line[prefixSkip..]; + }) + .Where(line => !string.IsNullOrEmpty(line)) + .ToList(); + } + public static void ExtractTarball(string tarballPath, string outputDir, ITestOutputHelper outputHelper) { // TarFile doesn't properly handle hard links (https://github.com/dotnet/runtime/pull/85378#discussion_r1221817490), @@ -119,6 +152,22 @@ private static async Task RetryAsync(Func> executor, ITestOutpu } } + public static void LogWarningMessage(this ITestOutputHelper outputHelper, string message) + { + string prefix = "##vso[task.logissue type=warning;]"; + + outputHelper.WriteLine($"{Environment.NewLine}{prefix}{message}.{Environment.NewLine}"); + outputHelper.WriteLine("##vso[task.complete result=SucceededWithIssues;]"); + } + + public static void ValidateNotNullOrWhiteSpace(string? variable, string variableName) + { + if (string.IsNullOrWhiteSpace(variable)) + { + throw new ArgumentException($"{variableName} is null, empty, or whitespace."); + } + } + public static string GetFile(string path, string pattern) { string[] files = Directory.GetFiles(path, pattern, SearchOption.AllDirectories); diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/WebScenarioTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/WebScenarioTests.cs index 654fe9552e0a..3d6e9b23c434 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/WebScenarioTests.cs +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/WebScenarioTests.cs @@ -16,7 +16,7 @@ namespace Microsoft.DotNet.SourceBuild.SmokeTests; /// for related basic scenarios. /// They are encapsulated in a separate testclass so that they can be run in parallel. /// -public class WebScenarioTests : SmokeTests +public class WebScenarioTests : SdkTests { public WebScenarioTests(ITestOutputHelper outputHelper) : base(outputHelper) { } diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseExclusions.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseExclusions.txt new file mode 100644 index 000000000000..b429dd3e57f9 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseExclusions.txt @@ -0,0 +1,261 @@ +# Contains the list of files to be excluded from license scanning. +# +# This list is processed using FileSystemName.MatchesSimpleExpression +# +# Format: +# Exclude the file entirely from license scanning: +# +# Exclude a specific detected license expression from the scan results for the file: +# |[,...] + +# +# arcade +# + +# False positive +src/arcade/Documentation/UnifiedBuild/Foundational-Concepts.md +src/arcade/src/Microsoft.DotNet.Build.Tasks.Installers/src/BuildFPMToolPreReqs.cs|json +src/arcade/src/Microsoft.DotNet.Build.Tasks.Installers/build/rpm_templates/copyright|cecill-c +src/arcade/src/Microsoft.DotNet.XUnitAssert/src/README.md|free-unknown +src/arcade/src/SignCheck/SignCheck/THIRD-PARTY-NOTICES.TXT + +# Doesn't apply to code +src/arcade/src/Microsoft.DotNet.Arcade.Sdk/tools/Licenses/* + +# Applies to installer, not source +src/arcade/src/Microsoft.DotNet.Build.Tasks.Installers/build/wix/eula.rtf + +# +# aspnetcore +# + +# A generic statement about license applicability that is being detected as "unknown" +src/aspnetcore/src/Components/THIRD-PARTY-NOTICES.txt|unknown +src/aspnetcore/THIRD-PARTY-NOTICES.txt|unknown + +# Windows installer files that have a reference to a URL for license +src/aspnetcore/src/Installers/Windows/**/*.wxl|unknown-license-reference +src/aspnetcore/src/Installers/Windows/**/*.wxs|unknown-license-reference + +# License reference used in configuration, but not applying to code +src/aspnetcore/src/Mvc/Settings.StyleCop|unknown-license-reference +src/aspnetcore/src/submodules/MessagePack-CSharp/stylecop.json|unknown + +# +# command-line-api +# + +# False positive +src/command-line-api/System.CommandLine.sln|json + +# +# deployment-tools +# + +# False positive +src/deployment-tools/THIRD-PARTY-NOTICES.TXT|unknown-license-reference + +# +# diagnostics +# + +# False positive +src/diagnostics/THIRD-PARTY-NOTICES.TXT|codesourcery-2004 + +# +# format +# + +# False positive +src/format/THIRD-PARTY-NOTICES.TXT|unknown-license-reference + +# +# fsharp +# + +# False positive +src/fsharp/tests/EndToEndBuildTests/ProvidedTypes/ProvidedTypes.fs|unknown-license-reference +src/fsharp/tests/service/data/TestTP/ProvidedTypes.fs|unknown-license-reference +src/fsharp/vsintegration/tests/MockTypeProviders/DummyProviderForLanguageServiceTesting/ProvidedTypes.fs|unknown-license-reference + +# Applies to installer, not source +src/fsharp/setup/resources/eula/*.rtf + +# +# installer +# + +# False positive +src/installer/src/core-sdk-tasks/BuildFPMToolPreReqs.cs|json +src/installer/src/redist/targets/packaging/osx/clisdk/resources/en.lproj/welcome.html|cecill-c +src/installer/THIRD-PARTY-NOTICES|proprietary-license + +# Configuration, doesn't apply to source directly +src/installer/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt +src/installer/src/redist/targets/packaging/**/*.json + +# +# msbuild +# + +# License reference used in build configuration, but not applying to code +src/msbuild/src/Directory.Build.props|ms-net-library-2018-11 + +# False positive +src/msbuild/documentation/specs/proposed/interactive-package-references.md|unknown-license-reference +src/msbuild/src/Build/Instance/ProjectItemInstance.cs|generic-exception + +# +# nuget-client +# + +# False positive +src/nuget-client/build/NOTICES.txt|other-copyleft +src/nuget-client/README.md|unknown-license-reference +src/nuget-client/src/NuGet.Clients/NuGet.PackageManagement.UI/Resources.Designer.cs|unknown-license-reference +src/nuget-client/src/NuGet.Clients/NuGet.PackageManagement.UI/Actions/UIActionEngine.cs|unknown-license-reference +src/nuget-client/src/NuGet.Clients/NuGet.PackageManagement.VisualStudio/Services/NuGetPackageFileService.cs|proprietary-license +src/nuget-client/src/NuGet.Clients/NuGet.VisualStudio.Internal.Contracts/Formatters/LicenseMetadataFormatter.cs|proprietary-license +src/nuget-client/src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/LicenseMetadata.cs|unknown-license-reference +src/nuget-client/src/NuGet.Core/NuGet.Packaging/Rules/DefaultManifestValuesRule.cs|unknown-license-reference +src/nuget-client/test/TestExtensions/GenerateLicenseList/Program.cs|json + +# Test data +src/nuget-client/test/**/resources/*.json +src/nuget-client/test/**/resources/*.xml +src/nuget-client/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/PackageLicenseUtilitiesTests.cs +src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/DefaultManifestValuesRuleTests.cs +src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/LicensesTests/LicenseExpressionTokenizerTests.cs +src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/LicensesTests/NuGetLicenseExpressionParserTests.cs +src/nuget-client/test/NuGet.Core.Tests/NuGet.Packaging.Test/LicensesTests/NuGetLicenseTests.cs +src/nuget-client/test/TestUtilities/Test.Utility/JsonData.cs + +# +# roslyn-analyzers +# + +# Build asset, not applicable to source +src/roslyn-analyzers/assets/EULA.txt|ms-net-library + +# +# roslyn +# + +# Test data +src/roslyn/src/Analyzers/VisualBasic/Tests/FileHeaders/FileHeaderTests.vb|unknown-license-reference +src/roslyn/src/EditorFeatures/CSharpTest2/EmbeddedLanguages/RegularExpressions/Regex_RealWorldPatterns.json + +# False positive +src/roslyn/src/Compilers/**/Portable/Symbols/NonMissingModuleSymbol.*|proprietary-license +src/roslyn/src/NuGet/ThirdPartyNotices.rtf|json + +# Applicable to installer, not source +src/roslyn/src/Setup/Roslyn.ThirdPartyNotices/ThirdPartyNotices.rtf +src/roslyn/src/Setup/Roslyn.VsixLicense/EULA.rtf + +# +# runtime +# + +# Doc describing licenses, not applicable to source +src/runtime/docs/project/copyright.md +src/runtime/docs/project/glossary.md + +# Doc that references a license, not applicable to source +src/runtime/src/coreclr/nativeaot/docs/compiling.md|openssl-ssleay + +# Installer asset, not applicable to source +src/runtime/src/installer/pkg/LICENSE-MSFT.TXT +src/runtime/src/installer/pkg/THIRD-PARTY-NOTICES.TXT + +# False positive +src/runtime/src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/LicFileLicenseProvider.cs|proprietary-license +src/runtime/src/libraries/System.Configuration.ConfigurationManager/tests/Mono/LongValidatorTest.cs|embedthis-extension +src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/Connect.cs|other-permissive +src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/UdpClientTest.cs|other-permissive +src/runtime/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendReceive/SendReceive.cs|other-permissive +src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/README.md|unknown-license-reference +src/runtime/src/libraries/System.Runtime/tests/TestModule/README.md|unknown-license-reference +src/runtime/src/libraries/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/XmlLicenseTransform.cs|proprietary-license +src/runtime/src/libraries/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs|unknown-license-reference +src/runtime/src/mono/mono/mini/mini-posix.c|unknown-license-reference +src/runtime/src/mono/mono/mini/mini-windows.c|unknown-license-reference +src/runtime/src/native/external/libunwind/doc/libunwind-ia64.*|generic-exception +src/runtime/src/tests/JIT/Performance/CodeQuality/V8/Crypto/Crypto.cs|unknown-license-reference + +# Test data +src/runtime/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/InputSpace.cs|other-permissive +src/runtime/src/libraries/System.Private.Xml.Linq/tests/XDocument.Common/THIRD-PARTY-NOTICE|other-permissive +src/runtime/src/libraries/System.ServiceModel.Syndication/tests/TestFeeds/AtomFeeds/*.xml +src/runtime/src/libraries/System.Text.RegularExpressions/tests/FunctionalTests/AttRegexTests.cs|other-permissive + +# Reference to a license, not applicable to source +src/runtime/src/libraries/System.Text.Json/roadmap/images/core-components.txt|unknown-license-reference +src/runtime/src/libraries/System.Text.Json/roadmap/images/higher-level-components.txt + +# Sample data +src/runtime/src/mono/sample/wasm/browser-webpack/package-lock.json + +# +# source-build-externals +# + +# False positive +src/source-build-externals/src/abstractions-xunit/README.md|free-unknown +src/source-build-externals/src/application-insights/NETCORE/ThirdPartyNotices.txt|unknown +src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/benchmark/Microsoft.IdentityModel.Benchmarks/CreateTokenTests.cs|proprietary-license +src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.JsonWebTokens/JsonClaimValueTypes.cs|proprietary-license +src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.Tokens.Saml/Saml/ClaimProperties.cs|proprietary-license +src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.Tokens.Saml/Saml/SamlTokenUtilities.cs|proprietary-license +src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/Microsoft.IdentityModel.Tokens.Saml/Saml2/ClaimProperties.cs|proprietary-license +src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/src/System.IdentityModel.Tokens.Jwt/JsonClaimValueTypes.cs|proprietary-license +src/source-build-externals/src/humanizer/readme.md|free-unknown +src/source-build-externals/src/humanizer/NuSpecs/*.nuspec* +src/source-build-externals/src/xunit/README.md|free-unknown +src/source-build-externals/src/xunit/src/xunit.assert/Asserts/README.md|free-unknown +src/source-build-externals/src/xunit/xunit.sln|json + +# A patch which removes the license usage but contains references to the removed license as part of the patch reference lines +src/source-build-externals/patches/application-insights/0002-Remove-WebGrease-from-TPN-2816.patch + +# +# source-build-reference-packages +# + +# False positive +src/source-build-reference-packages/src/targetPacks/ILsrc/microsoft.netcore.app.ref/3.*/THIRD-PARTY-NOTICES.TXT|codesourcery-2004 +src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/1.6.1/ThirdPartyNotices.txt|unknown +src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/2.0.*/THIRD-PARTY-NOTICES.TXT|unknown +src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library.ref/2.1.0/THIRD-PARTY-NOTICES.TXT|codesourcery-2004 +src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.codeanalysis.collections/4.2.0-1.22102.8/ThirdPartyNotices.rtf|json +src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.netcore.*/1.*/ThirdPartyNotices.txt|unknown +src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.private.intellisense/8.0.*/IntellisenseFiles/*/1033/System.Security.Permissions.xml|unknown-license-reference + +# Contains references to licenses which are not applicable to the source +src/source-build-reference-packages/src/packageSourceGenerator/PackageSourceGeneratorTask/RewriteNuspec.cs|unknown-license-reference,ms-net-library-2018-11 +src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.private.intellisense/8.0.*/IntellisenseFiles/windowsdesktop/1033/PresentationCore.xml|proprietary-license + +# +# sourcelink +# + +# False positive +src/sourcelink/docs/GitSpec/GitSpec.md|unknown-license-reference + +# +# test-templates +# + +# Not applicable to source +src/test-templates/Templates/**/*.vstemplate + +# +# vstest +# + +# False positive +src/vstest/src/Microsoft.TestPlatform.Extensions.BlameDataCollector/ProcDumpArgsBuilder.cs|proprietary-license + +# Build asset, but not applying to code +src/vstest/src/package/Microsoft.CodeCoverage/ThirdPartyNoticesCodeCoverage.txt +src/vstest/src/package/Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI/License.rtf diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkFileDiffExclusions.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkFileDiffExclusions.txt index f9ecdcc6ae09..3000c80e8505 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkFileDiffExclusions.txt +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkFileDiffExclusions.txt @@ -45,6 +45,7 @@ sb,./sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/*? # missing workload manifests - https://github.com/dotnet/source-build/issues/3242 msft,./sdk-manifests/x.y.z/microsoft.net.sdk.android/* +msft,./sdk-manifests/x.y.z/microsoft.net.sdk.aspire/* msft,./sdk-manifests/x.y.z/microsoft.net.sdk.ios/* msft,./sdk-manifests/x.y.z/microsoft.net.sdk.maccatalyst/* msft,./sdk-manifests/x.y.z/microsoft.net.sdk.macos/* @@ -58,6 +59,11 @@ sb,./packs/Microsoft.NETCore.App.Runtime.*/* # netfx tooling - dumpminitool - https://github.com/dotnet/source-build/issues/3289 msft,./sdk/x.y.z/Extensions/dump/* +# https://github.com/dotnet/msbuild/issues/9213 +msft,./sdk/x.y.z/**/System.Windows.Extensions.dll +msft,./sdk/x.y.z/**/System.Security.Permissions.dll +msft,./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Diagnostics.EventLog.dll + # netfx runtimes for dotnet-watch - https://github.com/dotnet/source-build/issues/3285 msft,./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Elfie.dll msft,./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Win32.SystemEvents.dll diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/ArtifactsSizes/centos.8-x64.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/ArtifactsSizes/centos.8-x64.txt new file mode 100644 index 000000000000..5027108b6d6c --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/ArtifactsSizes/centos.8-x64.txt @@ -0,0 +1,4184 @@ +.version: 62 +dotnet: 688352 +dotnet-dev-certs.x.y.z.nupkg: 98759 +dotnet-format.x.y.z.nupkg: 15130523 +dotnet-sourcelink.x.y.z.nupkg: 205151 +dotnet-user-jwts.x.y.z.nupkg: 627361 +dotnet-user-secrets.x.y.z.nupkg: 435177 +FSharp.Compiler.Service.x.y.z-1.nupkg: 8387211 +FSharp.Compiler.Service.x.y.z.nupkg: 8387180 +FSharp.Core.x.y.z-1.nupkg: 2575809 +FSharp.Core.x.y.z.nupkg: 2575831 +FSharp.NET.Sdk.x.y.z.nupkg: 3628 +host/fxr/x.y.z/libhostfxr.so: 4200912 +Humanizer.Core.x.y.z.nupkg: 945032 +LICENSE.txt: 1116 +metadata/workloads/x.y.z/userlocal: 0 +Microsoft.ApplicationInsights.x.y.z.nupkg: 148570 +Microsoft.Arcade.Common.x.y.z.nupkg: 47782 +Microsoft.AspNetCore.Analyzers.x.y.z.nupkg: 21984 +Microsoft.AspNetCore.App.Ref.x.y.z.nupkg: 2834786 +Microsoft.AspNetCore.App.Runtime.banana-rid.x.y.z.nupkg: 10487687 +Microsoft.AspNetCore.Authorization.x.y.z.nupkg: 34939 +Microsoft.AspNetCore.Components.Analyzers.x.y.z.nupkg: 33643 +Microsoft.AspNetCore.Components.Authorization.x.y.z.nupkg: 27614 +Microsoft.AspNetCore.Components.Forms.x.y.z.nupkg: 34318 +Microsoft.AspNetCore.Components.SdkAnalyzers.x.y.z.nupkg: 24273 +Microsoft.AspNetCore.Components.Web.x.y.z.nupkg: 99233 +Microsoft.AspNetCore.Components.x.y.z.nupkg: 177055 +Microsoft.AspNetCore.Connections.Abstractions.x.y.z.nupkg: 29887 +Microsoft.AspNetCore.Cryptography.Internal.x.y.z.nupkg: 47178 +Microsoft.AspNetCore.Cryptography.KeyDerivation.x.y.z.nupkg: 26834 +Microsoft.AspNetCore.DataProtection.Abstractions.x.y.z.nupkg: 37582 +Microsoft.AspNetCore.DataProtection.Extensions.x.y.z.nupkg: 19686 +Microsoft.AspNetCore.DataProtection.x.y.z.nupkg: 97081 +Microsoft.AspNetCore.DeveloperCertificates.XPlat.x.y.z.nupkg: 29149 +Microsoft.AspNetCore.Http.Connections.Common.x.y.z.nupkg: 20135 +Microsoft.AspNetCore.Metadata.x.y.z.nupkg: 18112 +Microsoft.AspNetCore.Mvc.Analyzers.x.y.z.nupkg: 24304 +Microsoft.AspNetCore.Mvc.Api.Analyzers.x.y.z.nupkg: 32604 +Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal.x.y.z.nupkg: 38521 +Microsoft.AspNetCore.SignalR.Common.x.y.z.nupkg: 30060 +Microsoft.AspNetCore.SignalR.Protocols.Json.x.y.z.nupkg: 24015 +Microsoft.AspNetCore.WebUtilities.x.y.z.nupkg: 59278 +Microsoft.Bcl.AsyncInterfaces.x.y.z.nupkg: 38076 +Microsoft.Bcl.Cryptography.x.y.z.nupkg: 45348 +Microsoft.Bcl.TimeProvider.x.y.z.nupkg: 41096 +Microsoft.Build.Framework.x.y.z.nupkg: 673828 +Microsoft.Build.Localization.x.y.z.nupkg: 1367141 +Microsoft.Build.Locator.x.y.z.nupkg: 23940 +Microsoft.Build.NuGetSdkResolver.x.y.z.nupkg: 26050 +Microsoft.Build.Runtime.x.y.z.nupkg: 829737 +Microsoft.Build.StandardCI.x.y.z.nupkg: 8928 +Microsoft.Build.Tasks.Core.x.y.z.nupkg: 1872898 +Microsoft.Build.Tasks.Git.x.y.z.nupkg: 82019 +Microsoft.Build.Utilities.Core.x.y.z.nupkg: 696042 +Microsoft.Build.x.y.z.nupkg: 3412956 +Microsoft.CodeAnalysis.Analyzers.x.y.z-1.nupkg: 1285179 +Microsoft.CodeAnalysis.Analyzers.x.y.z-2.nupkg: 1285173 +Microsoft.CodeAnalysis.Analyzers.x.y.z.nupkg: 1285156 +Microsoft.CodeAnalysis.AnalyzerUtilities.x.y.z-1.nupkg: 288749 +Microsoft.CodeAnalysis.AnalyzerUtilities.x.y.z-2.nupkg: 288724 +Microsoft.CodeAnalysis.AnalyzerUtilities.x.y.z.nupkg: 288743 +Microsoft.CodeAnalysis.Build.Tasks.x.y.z.nupkg: 264050 +Microsoft.CodeAnalysis.Common.x.y.z.nupkg: 7401611 +Microsoft.CodeAnalysis.CSharp.CodeStyle.x.y.z.nupkg: 1682095 +Microsoft.CodeAnalysis.CSharp.Features.x.y.z.nupkg: 4801305 +Microsoft.CodeAnalysis.CSharp.Scripting.x.y.z.nupkg: 137994 +Microsoft.CodeAnalysis.CSharp.Workspaces.x.y.z.nupkg: 2070666 +Microsoft.CodeAnalysis.CSharp.x.y.z.nupkg: 17993577 +Microsoft.CodeAnalysis.ExternalAccess.AspNetCore.x.y.z.nupkg: 65739 +Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.x.y.z.nupkg: 24586 +Microsoft.CodeAnalysis.Features.x.y.z.nupkg: 10069377 +Microsoft.CodeAnalysis.NetAnalyzers.x.y.z-1.nupkg: 4434325 +Microsoft.CodeAnalysis.NetAnalyzers.x.y.z-2.nupkg: 4434318 +Microsoft.CodeAnalysis.NetAnalyzers.x.y.z.nupkg: 4434296 +Microsoft.CodeAnalysis.Razor.Tooling.Internal.x.y.z.nupkg: 532057 +Microsoft.CodeAnalysis.Scripting.Common.x.y.z.nupkg: 464236 +Microsoft.CodeAnalysis.VisualBasic.CodeStyle.x.y.z.nupkg: 1316414 +Microsoft.CodeAnalysis.VisualBasic.Features.x.y.z.nupkg: 3115504 +Microsoft.CodeAnalysis.VisualBasic.Workspaces.x.y.z.nupkg: 1848400 +Microsoft.CodeAnalysis.VisualBasic.x.y.z.nupkg: 14538374 +Microsoft.CodeAnalysis.Workspaces.Common.x.y.z.nupkg: 8301803 +Microsoft.CodeAnalysis.Workspaces.MSBuild.x.y.z.nupkg: 183216 +Microsoft.CodeAnalysis.x.y.z.nupkg: 9724 +Microsoft.Css.Parser.x.y.z.nupkg: 52961 +Microsoft.Deployment.DotNet.Releases.x.y.z.nupkg: 108986 +Microsoft.Diagnostics.NETCore.Client.x.y.z.nupkg: 65008 +Microsoft.DiaSymReader.x.y.z-1.nupkg: 124691 +Microsoft.DiaSymReader.x.y.z-2.nupkg: 124706 +Microsoft.DiaSymReader.x.y.z.nupkg: 124712 +Microsoft.DotNet.ApiCompat.Task.x.y.z.nupkg: 1670798 +Microsoft.DotNet.Arcade.Sdk.x.y.z.nupkg: 485559 +Microsoft.DotNet.ArcadeLogging.x.y.z.nupkg: 28150 +Microsoft.DotNet.Build.Tasks.Archives.x.y.z.nupkg: 15392 +Microsoft.DotNet.Build.Tasks.Installers.x.y.z.nupkg: 127926 +Microsoft.DotNet.Build.Tasks.Packaging.x.y.z.nupkg: 244014 +Microsoft.DotNet.Build.Tasks.TargetFramework.x.y.z.nupkg: 43813 +Microsoft.DotNet.Build.Tasks.Templating.x.y.z.nupkg: 28495 +Microsoft.DotNet.Build.Tasks.Workloads.x.y.z.nupkg: 231540 +Microsoft.DotNet.Cecil.x.y.z.nupkg: 647012 +Microsoft.DotNet.Cli.Sln.Internal.x.y.z.nupkg: 55329 +Microsoft.DotNet.Cli.Utils.x.y.z.nupkg: 97606 +Microsoft.DotNet.Cli.x.y.z.nupkg: 1080490 +Microsoft.DotNet.CMake.Sdk.x.y.z.nupkg: 18975 +Microsoft.DotNet.CodeAnalysis.x.y.z.nupkg: 108483 +Microsoft.DotNet.Common.ItemTemplates.x.y.z.nupkg: 145531 +Microsoft.DotNet.Common.ProjectTemplates.x.y.z.nupkg: 147056 +Microsoft.DotNet.Configurer.x.y.z.nupkg: 54357 +Microsoft.DotNet.GenFacades.x.y.z.nupkg: 4907088 +Microsoft.DotNet.ILCompiler.x.y.z.nupkg: 71159 +Microsoft.DotNet.InternalAbstractions.x.y.z.nupkg: 14796 +Microsoft.DotNet.MSBuildSdkResolver.x.y.z.nupkg: 116623 +Microsoft.DotNet.NuGetRepack.Tasks.x.y.z.nupkg: 97933 +Microsoft.DotNet.PackageTesting.x.y.z.nupkg: 51309 +Microsoft.DotNet.SharedFramework.Sdk.x.y.z.nupkg: 107583 +Microsoft.DotNet.SignTool.x.y.z.nupkg: 252005 +Microsoft.DotNet.SourceBuild.Tasks.x.y.z.nupkg: 66453 +microsoft.dotnet.templateLocator.x.y.z.nupkg: 107711 +Microsoft.DotNet.Test.ProjectTemplates.x.y.z-1.nupkg: 94057 +Microsoft.DotNet.Test.ProjectTemplates.x.y.z-2.nupkg: 94706 +Microsoft.DotNet.Test.ProjectTemplates.x.y.z-3.nupkg: 111590 +Microsoft.DotNet.Test.ProjectTemplates.x.y.z-4.nupkg: 94708 +Microsoft.DotNet.Test.ProjectTemplates.x.y.z.nupkg: 95871 +Microsoft.DotNet.Web.Client.ItemTemplates.x.y.z.nupkg: 25995 +Microsoft.DotNet.Web.ItemTemplates.x.y.z.nupkg: 63714 +Microsoft.DotNet.Web.ProjectTemplates.x.y.z.nupkg: 5782651 +Microsoft.DotNet.XliffTasks.x.y.z.nupkg: 89710 +Microsoft.Extensions.Caching.Abstractions.x.y.z.nupkg: 50761 +Microsoft.Extensions.Caching.Memory.x.y.z.nupkg: 61063 +Microsoft.Extensions.Configuration.Abstractions.x.y.z.nupkg: 47021 +Microsoft.Extensions.Configuration.Binder.x.y.z.nupkg: 151327 +Microsoft.Extensions.Configuration.CommandLine.x.y.z.nupkg: 43372 +Microsoft.Extensions.Configuration.EnvironmentVariables.x.y.z.nupkg: 36621 +Microsoft.Extensions.Configuration.FileExtensions.x.y.z.nupkg: 44887 +Microsoft.Extensions.Configuration.Ini.x.y.z.nupkg: 41865 +Microsoft.Extensions.Configuration.Json.x.y.z.nupkg: 54876 +Microsoft.Extensions.Configuration.KeyPerFile.x.y.z.nupkg: 17183 +Microsoft.Extensions.Configuration.UserSecrets.x.y.z.nupkg: 45199 +Microsoft.Extensions.Configuration.x.y.z.nupkg: 63121 +Microsoft.Extensions.Configuration.Xml.x.y.z.nupkg: 53055 +Microsoft.Extensions.DependencyInjection.Abstractions.x.y.z.nupkg: 113221 +Microsoft.Extensions.DependencyInjection.x.y.z.nupkg: 143117 +Microsoft.Extensions.DependencyModel.x.y.z.nupkg: 91212 +Microsoft.Extensions.Diagnostics.Abstractions.x.y.z.nupkg: 48455 +Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.x.y.z.nupkg: 19552 +Microsoft.Extensions.Diagnostics.HealthChecks.x.y.z.nupkg: 31683 +Microsoft.Extensions.Diagnostics.x.y.z.nupkg: 51765 +Microsoft.Extensions.Features.x.y.z.nupkg: 19268 +Microsoft.Extensions.FileProviders.Abstractions.x.y.z.nupkg: 38453 +Microsoft.Extensions.FileProviders.Composite.x.y.z.nupkg: 35865 +Microsoft.Extensions.FileProviders.Embedded.x.y.z.nupkg: 30789 +Microsoft.Extensions.FileProviders.Physical.x.y.z.nupkg: 65554 +Microsoft.Extensions.FileSystemGlobbing.x.y.z.nupkg: 63273 +Microsoft.Extensions.HostFactoryResolver.Sources.x.y.z.nupkg: 25391 +Microsoft.Extensions.Hosting.Abstractions.x.y.z.nupkg: 90066 +Microsoft.Extensions.Hosting.Systemd.x.y.z.nupkg: 43016 +Microsoft.Extensions.Hosting.WindowsServices.x.y.z.nupkg: 60941 +Microsoft.Extensions.Hosting.x.y.z.nupkg: 128350 +Microsoft.Extensions.Http.x.y.z.nupkg: 106559 +Microsoft.Extensions.Identity.Core.x.y.z.nupkg: 95530 +Microsoft.Extensions.Identity.Stores.x.y.z.nupkg: 31414 +Microsoft.Extensions.Localization.Abstractions.x.y.z.nupkg: 15789 +Microsoft.Extensions.Localization.x.y.z.nupkg: 23273 +Microsoft.Extensions.Logging.Abstractions.x.y.z.nupkg: 239207 +Microsoft.Extensions.Logging.Configuration.x.y.z.nupkg: 44620 +Microsoft.Extensions.Logging.Console.x.y.z.nupkg: 91383 +Microsoft.Extensions.Logging.Debug.x.y.z.nupkg: 35886 +Microsoft.Extensions.Logging.EventLog.x.y.z.nupkg: 43266 +Microsoft.Extensions.Logging.EventSource.x.y.z.nupkg: 55687 +Microsoft.Extensions.Logging.TraceSource.x.y.z.nupkg: 38119 +Microsoft.Extensions.Logging.x.y.z.nupkg: 89896 +Microsoft.Extensions.ObjectPool.x.y.z.nupkg: 27709 +Microsoft.Extensions.Options.ConfigurationExtensions.x.y.z.nupkg: 41175 +Microsoft.Extensions.Options.DataAnnotations.x.y.z.nupkg: 51204 +Microsoft.Extensions.Options.x.y.z.nupkg: 199345 +Microsoft.Extensions.Primitives.x.y.z.nupkg: 70360 +Microsoft.Extensions.WebEncoders.x.y.z.nupkg: 16730 +Microsoft.FSharp.Compiler.x.y.z-1.nupkg: 31228170 +Microsoft.FSharp.Compiler.x.y.z-2.nupkg: 31228186 +Microsoft.FSharp.Compiler.x.y.z.nupkg: 31228191 +Microsoft.IdentityModel.Abstractions.x.y.z.nupkg: 8423 +Microsoft.IdentityModel.JsonWebTokens.x.y.z.nupkg: 44487 +Microsoft.IdentityModel.Logging.x.y.z.nupkg: 17833 +Microsoft.IdentityModel.Tokens.x.y.z.nupkg: 422374 +Microsoft.Internal.Runtime.AspNetCore.Transport.x.y.z.nupkg: 1117353 +Microsoft.Internal.Runtime.DotNetApiDocs.Transport.x.y.z.nupkg: 1904398 +Microsoft.Internal.Runtime.WindowsDesktop.Transport.x.y.z.nupkg: 1354866 +Microsoft.JSInterop.x.y.z.nupkg: 41048 +Microsoft.NET.Build.Containers.x.y.z.nupkg: 1599597 +Microsoft.NET.Build.Extensions.x.y.z.nupkg: 895947 +Microsoft.Net.Compilers.Toolset.x.y.z.nupkg: 7788613 +Microsoft.NET.HostModel.x.y.z.nupkg: 58280 +Microsoft.Net.Http.Headers.x.y.z.nupkg: 54157 +Microsoft.NET.ILLink.Tasks.x.y.z.nupkg: 652153 +Microsoft.NET.ILLink.x.y.z.nupkg: 273462 +Microsoft.NET.Sdk.BlazorWebAssembly.x.y.z.nupkg: 61095 +Microsoft.NET.Sdk.IL.x.y.z.nupkg: 24908 +Microsoft.NET.Sdk.Publish.x.y.z.nupkg: 542202 +Microsoft.NET.Sdk.Razor.SourceGenerators.Transport.x.y.z.nupkg: 598037 +Microsoft.NET.Sdk.Razor.x.y.z.nupkg: 128088 +Microsoft.NET.Sdk.StaticWebAssets.x.y.z.nupkg: 262610 +Microsoft.NET.Sdk.Web.ProjectSystem.x.y.z.nupkg: 23307 +Microsoft.NET.Sdk.Web.x.y.z.nupkg: 90672 +Microsoft.NET.Sdk.WebAssembly.x.y.z.nupkg: 18577 +Microsoft.NET.Sdk.Worker.x.y.z.nupkg: 20758 +Microsoft.NET.Sdk.WorkloadManifestReader.x.y.z.nupkg: 94067 +Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.x.y.z.nupkg: 18247 +Microsoft.NET.Sdk.x.y.z.nupkg: 974407 +Microsoft.NET.StringTools.x.y.z.nupkg: 101677 +Microsoft.NET.WebAssembly.Threading.x.y.z.nupkg: 37806 +Microsoft.NET.Workload.Emscripten.Current.Manifest-x.y.z-1.nupkg: 10082 +Microsoft.NET.Workload.Emscripten.Current.Manifest-x.y.z.nupkg: 10106 +Microsoft.NET.Workload.Emscripten.net6.Manifest-x.y.z.nupkg: 9748 +Microsoft.NET.Workload.Emscripten.net7.Manifest-x.y.z.nupkg: 10060 +Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-x.y.z.nupkg: 30117 +Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-x.y.z.nupkg: 26589 +Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-x.y.z.nupkg: 26769 +Microsoft.NETCore.App.Crossgen2.banana-rid.x.y.z.nupkg: 137373545 +Microsoft.NETCore.App.Host.banana-rid.x.y.z.nupkg: 29495704 +Microsoft.NETCore.App.Ref.x.y.z.nupkg: 4852804 +Microsoft.NETCore.App.Runtime.banana-rid.x.y.z.nupkg: 65518794 +Microsoft.NETCore.DotNetAppHost.x.y.z.nupkg: 21043 +Microsoft.NETCore.DotNetHost.x.y.z.nupkg: 21041 +Microsoft.NETCore.DotNetHostPolicy.x.y.z.nupkg: 21127 +Microsoft.NETCore.DotNetHostResolver.x.y.z.nupkg: 21088 +Microsoft.NETCore.ILAsm.x.y.z.nupkg: 20909 +Microsoft.NETCore.ILDAsm.x.y.z.nupkg: 20919 +Microsoft.NETCore.Platforms.x.y.z.nupkg: 26866 +Microsoft.NETCore.TestHost.x.y.z.nupkg: 20938 +Microsoft.SourceLink.AzureDevOpsServer.Git.x.y.z.nupkg: 60343 +Microsoft.SourceLink.AzureRepos.Git.x.y.z.nupkg: 61533 +Microsoft.SourceLink.Bitbucket.Git.x.y.z.nupkg: 57307 +Microsoft.SourceLink.Common.x.y.z.nupkg: 51081 +Microsoft.SourceLink.Gitea.x.y.z.nupkg: 55242 +Microsoft.SourceLink.Gitee.x.y.z.nupkg: 55992 +Microsoft.SourceLink.GitHub.x.y.z.nupkg: 56113 +Microsoft.SourceLink.GitLab.x.y.z.nupkg: 56253 +Microsoft.SourceLink.GitWeb.x.y.z.nupkg: 57542 +Microsoft.SourceLink.Tools.x.y.z.nupkg: 10863 +Microsoft.TemplateEngine.Abstractions.x.y.z.nupkg: 114960 +Microsoft.TemplateEngine.Cli.x.y.z.nupkg: 402195 +Microsoft.TemplateEngine.Core.Contracts.x.y.z.nupkg: 28975 +Microsoft.TemplateEngine.Core.x.y.z.nupkg: 186858 +Microsoft.TemplateEngine.Edge.x.y.z.nupkg: 384785 +Microsoft.TemplateEngine.IDE.x.y.z.nupkg: 32826 +Microsoft.TemplateEngine.Orchestrator.RunnableProjects.x.y.z.nupkg: 386886 +Microsoft.TemplateEngine.Samples.x.y.z.nupkg: 45909 +Microsoft.TemplateEngine.Utils.x.y.z.nupkg: 146295 +Microsoft.TemplateSearch.Common.x.y.z.nupkg: 115510 +Microsoft.TestPlatform.Build.x.y.z.nupkg: 73955 +Microsoft.TestPlatform.CLI.x.y.z.nupkg: 3121793 +Microsoft.Web.Xdt.x.y.z.nupkg: 179597 +Microsoft.Win32.Registry.AccessControl.x.y.z.nupkg: 38141 +Microsoft.Win32.SystemEvents.x.y.z.nupkg: 67263 +Microsoft.XmlSerializer.Generator.x.y.z.nupkg: 143711 +Newtonsoft.Json.x.y.z.nupkg: 917136 +NuGet.Build.Tasks.Console.x.y.z.nupkg: 31307 +NuGet.Build.Tasks.Pack.x.y.z.nupkg: 2478453 +NuGet.Build.Tasks.x.y.z.nupkg: 62019 +NuGet.CommandLine.XPlat.x.y.z.nupkg: 106765 +NuGet.Commands.x.y.z.nupkg: 489096 +NuGet.Common.x.y.z.nupkg: 113730 +NuGet.Configuration.x.y.z.nupkg: 143422 +NuGet.Credentials.x.y.z.nupkg: 60081 +NuGet.DependencyResolver.Core.x.y.z.nupkg: 84418 +NuGet.Frameworks.x.y.z.nupkg: 112949 +NuGet.LibraryModel.x.y.z.nupkg: 48891 +NuGet.PackageManagement.x.y.z.nupkg: 368782 +NuGet.Packaging.Core.x.y.z.nupkg: 11857 +NuGet.Packaging.x.y.z.nupkg: 529932 +NuGet.ProjectModel.x.y.z.nupkg: 185876 +NuGet.Protocol.x.y.z.nupkg: 621655 +NuGet.Resolver.x.y.z.nupkg: 67979 +NuGet.Versioning.x.y.z.nupkg: 61986 +PackageVersions.props: 81505 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.AspNetCore.App.Analyzers.dll: 239104 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.AspNetCore.App.CodeFixes.dll: 29184 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.AspNetCore.Components.Analyzers.dll: 40448 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.AspNetCore.Http.RequestDelegateGenerator.dll: 194048 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll: 140800 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/Microsoft.Extensions.Logging.Generators.dll: 64000 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll: 12288 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll: 9728 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll: 9728 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/data/FrameworkList.xml: 33002 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/data/PackageOverrides.txt: 6616 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/data/PlatformManifest.txt: 12823 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Antiforgery.dll: 23552 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Antiforgery.xml: 29934 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.Abstractions.dll: 18432 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.Abstractions.xml: 64929 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.BearerToken.dll: 13824 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.BearerToken.xml: 14457 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.Cookies.dll: 18944 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.Cookies.xml: 47956 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.Core.dll: 12800 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.Core.xml: 18838 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.dll: 30208 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.OAuth.dll: 17920 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.OAuth.xml: 46651 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.xml: 88672 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authorization.dll: 20992 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authorization.Policy.dll: 13824 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authorization.Policy.xml: 24586 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authorization.xml: 77271 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Authorization.dll: 12288 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Authorization.xml: 11214 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.dll: 120832 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Endpoints.dll: 73216 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Endpoints.xml: 66422 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Forms.dll: 16384 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Forms.xml: 24314 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Server.dll: 95744 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Server.xml: 148357 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Web.dll: 72192 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Web.xml: 161232 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.xml: 388850 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Connections.Abstractions.dll: 23040 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Connections.Abstractions.xml: 60929 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.CookiePolicy.dll: 12288 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.CookiePolicy.xml: 14512 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Cors.dll: 18944 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Cors.xml: 39131 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Cryptography.Internal.dll: 30208 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Cryptography.Internal.xml: 8579 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll: 9216 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Cryptography.KeyDerivation.xml: 9066 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.Abstractions.dll: 12288 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.Abstractions.xml: 25942 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.dll: 68608 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.Extensions.dll: 10752 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.Extensions.xml: 15989 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.xml: 160186 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Diagnostics.Abstractions.dll: 9216 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Diagnostics.Abstractions.xml: 13683 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Diagnostics.dll: 41984 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll: 9728 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Diagnostics.HealthChecks.xml: 16557 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Diagnostics.xml: 63460 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.dll: 21504 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HostFiltering.dll: 9216 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HostFiltering.xml: 4921 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Hosting.Abstractions.dll: 13312 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Hosting.Abstractions.xml: 33762 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Hosting.dll: 66560 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll: 8192 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml: 6079 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Hosting.xml: 50736 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Html.Abstractions.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Html.Abstractions.xml: 18664 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Abstractions.dll: 74752 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Abstractions.xml: 214905 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Connections.Common.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Connections.Common.xml: 6095 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Connections.dll: 47616 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Connections.xml: 34697 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.dll: 54272 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Extensions.dll: 94208 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Extensions.xml: 90595 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Features.dll: 27136 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Features.xml: 87620 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Results.dll: 50176 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Results.xml: 232210 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.xml: 104030 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpLogging.dll: 30208 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpLogging.xml: 45701 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpOverrides.dll: 13824 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpOverrides.xml: 27310 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpsPolicy.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpsPolicy.xml: 9317 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Identity.dll: 78848 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Identity.xml: 76457 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Localization.dll: 14336 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Localization.Routing.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Localization.Routing.xml: 1347 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Localization.xml: 33384 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Metadata.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Metadata.xml: 1313 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Abstractions.dll: 73728 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Abstractions.xml: 340122 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.ApiExplorer.dll: 19456 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.ApiExplorer.xml: 12984 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Core.dll: 336384 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Core.xml: 1158226 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Cors.dll: 11776 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Cors.xml: 7225 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.DataAnnotations.dll: 19968 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.DataAnnotations.xml: 30212 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.dll: 10752 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Json.dll: 6144 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Json.xml: 157 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Xml.dll: 19968 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Xml.xml: 58716 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Localization.dll: 13312 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Localization.xml: 49986 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Razor.dll: 51712 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Razor.xml: 127037 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.RazorPages.dll: 85504 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.RazorPages.xml: 348225 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.TagHelpers.dll: 50176 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.TagHelpers.xml: 114387 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.ViewFeatures.dll: 115712 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.ViewFeatures.xml: 765229 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.xml: 18204 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.OutputCaching.dll: 40960 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.RateLimiting.dll: 18944 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.RateLimiting.xml: 19599 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Razor.dll: 16896 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Razor.Runtime.dll: 16384 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Razor.Runtime.xml: 28090 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Razor.xml: 70661 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.RequestDecompression.dll: 11776 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.RequestDecompression.xml: 7616 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.ResponseCaching.Abstractions.xml: 691 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.ResponseCaching.dll: 27648 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.ResponseCaching.xml: 16912 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.ResponseCompression.dll: 17920 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.ResponseCompression.xml: 20138 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Rewrite.dll: 35840 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Rewrite.xml: 35522 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Routing.Abstractions.dll: 14848 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Routing.Abstractions.xml: 37993 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Routing.dll: 119296 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Routing.xml: 409368 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.HttpSys.dll: 111104 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.HttpSys.xml: 65210 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.IIS.dll: 114176 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.IIS.xml: 47123 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.IISIntegration.dll: 12288 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.IISIntegration.xml: 7035 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Core.dll: 351232 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Core.xml: 254401 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll: 25088 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.xml: 11298 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll: 36864 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.xml: 16101 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll: 31744 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.xml: 20437 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.xml: 6425 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Session.dll: 15872 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Session.xml: 16482 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Common.dll: 18944 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Common.xml: 40379 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Core.dll: 72704 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Core.xml: 156018 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.dll: 9216 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Protocols.Json.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Protocols.Json.xml: 4973 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.xml: 7789 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.StaticFiles.dll: 20992 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.StaticFiles.xml: 42556 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.WebSockets.dll: 15872 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.WebSockets.xml: 10016 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.WebUtilities.dll: 33792 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.WebUtilities.xml: 88562 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.xml: 30739 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Caching.Abstractions.dll: 12288 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Caching.Abstractions.xml: 51424 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Caching.Memory.dll: 9216 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Caching.Memory.xml: 22928 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Abstractions.dll: 8704 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Abstractions.xml: 20602 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Binder.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Binder.xml: 12903 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.CommandLine.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.CommandLine.xml: 13143 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.dll: 11264 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.EnvironmentVariables.dll: 6144 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.EnvironmentVariables.xml: 5588 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.FileExtensions.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.FileExtensions.xml: 12434 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Ini.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Ini.xml: 12129 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Json.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Json.xml: 11106 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.KeyPerFile.dll: 8704 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.KeyPerFile.xml: 8324 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.UserSecrets.dll: 6144 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.UserSecrets.xml: 15321 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.xml: 32838 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Xml.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.Xml.xml: 14355 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 18944 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.xml: 176910 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.DependencyInjection.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.DependencyInjection.xml: 17342 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.Abstractions.dll: 9728 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.Abstractions.xml: 27966 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.dll: 6144 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll: 11264 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.xml: 28508 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.dll: 23552 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.xml: 35165 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Diagnostics.xml: 7733 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Features.dll: 11776 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Features.xml: 15244 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Abstractions.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Abstractions.xml: 10178 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Composite.dll: 6144 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Composite.xml: 6849 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Embedded.dll: 12800 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Embedded.xml: 11392 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Physical.dll: 8704 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Physical.xml: 25261 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileSystemGlobbing.dll: 12800 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileSystemGlobbing.xml: 59355 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Hosting.Abstractions.dll: 11776 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Hosting.Abstractions.xml: 45912 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Hosting.dll: 12288 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Hosting.xml: 62628 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Http.dll: 13312 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Http.xml: 127720 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Identity.Core.dll: 66048 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Identity.Core.xml: 259286 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Identity.Stores.dll: 23552 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Identity.Stores.xml: 84550 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Localization.Abstractions.dll: 9216 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Localization.Abstractions.xml: 10869 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Localization.dll: 13824 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Localization.xml: 20691 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Abstractions.dll: 14848 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Abstractions.xml: 78981 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Configuration.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Configuration.xml: 7008 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Console.dll: 12800 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Console.xml: 36466 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Debug.dll: 6144 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.Debug.xml: 6304 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.dll: 9728 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.EventLog.dll: 7168 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.EventLog.xml: 12057 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.EventSource.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.EventSource.xml: 16616 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.TraceSource.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.TraceSource.xml: 11385 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.xml: 35417 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.ObjectPool.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.ObjectPool.xml: 14072 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 7680 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Options.ConfigurationExtensions.xml: 13827 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Options.DataAnnotations.dll: 6656 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Options.DataAnnotations.xml: 3651 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Options.dll: 20992 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Options.xml: 122019 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Primitives.dll: 13824 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Primitives.xml: 80587 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.WebEncoders.dll: 9728 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.WebEncoders.xml: 8111 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.JSInterop.dll: 26624 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.JSInterop.xml: 65387 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.dll: 26112 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.xml: 115599 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.dll: 26112 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.xml: 181902 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.dll: 10240 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.xml: 38910 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.dll: 29696 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.xml: 223910 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Threading.RateLimiting.dll: 12800 +packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Threading.RateLimiting.xml: 56572 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/data/PlatformManifest.txt: 12823 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/data/RuntimeList.xml: 34694 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Antiforgery.dll: 100352 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.App.deps.json: 22049 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.App.runtimeconfig.json: 289 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.Abstractions.dll: 47104 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.BearerToken.dll: 48128 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.Cookies.dll: 93184 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.Core.dll: 70144 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.dll: 137728 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.OAuth.dll: 82944 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authorization.dll: 88064 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authorization.Policy.dll: 58880 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Authorization.dll: 37376 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.dll: 777728 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Endpoints.dll: 610304 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Forms.dll: 73728 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Server.dll: 800256 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Web.dll: 370176 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Connections.Abstractions.dll: 49152 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.CookiePolicy.dll: 35840 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Cors.dll: 73728 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Cryptography.Internal.dll: 85504 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll: 25088 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.DataProtection.Abstractions.dll: 28672 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.DataProtection.dll: 401408 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.DataProtection.Extensions.dll: 25600 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Diagnostics.Abstractions.dll: 12288 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Diagnostics.dll: 430592 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll: 31744 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.dll: 94208 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HostFiltering.dll: 24064 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Hosting.Abstractions.dll: 22528 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Hosting.dll: 440320 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll: 8704 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Html.Abstractions.dll: 19456 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Abstractions.dll: 303616 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Connections.Common.dll: 35840 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Connections.dll: 296448 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.dll: 278016 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Extensions.dll: 630784 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Features.dll: 50688 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Results.dll: 230400 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HttpLogging.dll: 162304 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HttpOverrides.dll: 56320 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HttpsPolicy.dll: 29696 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Identity.dll: 527872 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Localization.dll: 46080 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Localization.Routing.dll: 9728 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Metadata.dll: 7168 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Abstractions.dll: 242688 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.ApiExplorer.dll: 115712 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Core.dll: 1947648 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Cors.dll: 31744 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.DataAnnotations.dll: 84992 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.dll: 21504 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Json.dll: 6656 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Xml.dll: 99328 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Localization.dll: 30208 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Razor.dll: 220672 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.RazorPages.dll: 438272 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.TagHelpers.dll: 262144 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.ViewFeatures.dll: 706560 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.OutputCaching.dll: 238080 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.RateLimiting.dll: 77312 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Razor.dll: 49664 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Razor.Runtime.dll: 51712 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.RequestDecompression.dll: 30208 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll: 7168 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.ResponseCaching.dll: 131584 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.ResponseCompression.dll: 62464 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Rewrite.dll: 198144 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Routing.Abstractions.dll: 38400 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Routing.dll: 805888 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.HttpSys.dll: 593920 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.IIS.dll: 650752 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.IISIntegration.dll: 33792 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Core.dll: 2210304 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.dll: 13824 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll: 119296 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll: 222208 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll: 140288 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Session.dll: 70656 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.Common.dll: 66560 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.Core.dll: 479232 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.dll: 16896 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.Protocols.Json.dll: 64512 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.StaticFiles.dll: 144384 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.WebSockets.dll: 53248 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.WebUtilities.dll: 240128 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Caching.Abstractions.dll: 37376 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Caching.Memory.dll: 70656 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Abstractions.dll: 27136 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Binder.dll: 65536 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.CommandLine.dll: 24064 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.dll: 72704 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.EnvironmentVariables.dll: 16896 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.FileExtensions.dll: 29696 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Ini.dll: 24064 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Json.dll: 29184 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.KeyPerFile.dll: 19968 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.UserSecrets.dll: 24576 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Xml.dll: 45568 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 117760 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.DependencyInjection.dll: 195584 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.Abstractions.dll: 27136 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.dll: 48640 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll: 20992 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.dll: 93184 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Features.dll: 24064 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Abstractions.dll: 14848 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Composite.dll: 13824 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Embedded.dll: 53248 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Physical.dll: 72192 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileSystemGlobbing.dll: 80896 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Hosting.Abstractions.dll: 57856 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Hosting.dll: 136704 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Http.dll: 171008 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Identity.Core.dll: 436224 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Identity.Stores.dll: 67584 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Localization.Abstractions.dll: 11776 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Localization.dll: 39936 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Abstractions.dll: 124928 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Configuration.dll: 26624 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Console.dll: 128512 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Debug.dll: 12800 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.dll: 79360 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.EventLog.dll: 27136 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.EventSource.dll: 44032 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.TraceSource.dll: 19456 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.ObjectPool.dll: 19968 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 18944 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Options.DataAnnotations.dll: 17408 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Options.dll: 118272 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Primitives.dll: 64000 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.WebEncoders.dll: 18432 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.JSInterop.dll: 125440 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Net.Http.Headers.dll: 201216 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.EventLog.dll: 44032 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Pipelines.dll: 169984 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Pkcs.dll: 623104 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Xml.dll: 440320 +packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.RateLimiting.dll: 145408 +packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/apphost: 721408 +packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/coreclr_delegates.h: 3449 +packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/hostfxr.h: 13111 +packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/libnethost.a: 1312588 +packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/libnethost.so: 655376 +packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/nethost.h: 2843 +packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/singlefilehost: 83753896 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 66048 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Interop.LibraryImportGenerator.resources.dll: 66048 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Interop.SourceGeneration.resources.dll: 66048 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/System.Text.Json.SourceGeneration.resources.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 71680 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/Microsoft.Interop.LibraryImportGenerator.resources.dll: 71680 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/Microsoft.Interop.SourceGeneration.resources.dll: 71680 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/System.Text.Json.SourceGeneration.resources.dll: 11264 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 69120 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/Microsoft.Interop.LibraryImportGenerator.resources.dll: 69120 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/Microsoft.Interop.SourceGeneration.resources.dll: 69120 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/System.Text.Json.SourceGeneration.resources.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 71168 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/Microsoft.Interop.LibraryImportGenerator.resources.dll: 71168 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/Microsoft.Interop.SourceGeneration.resources.dll: 71168 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/System.Text.Json.SourceGeneration.resources.dll: 11264 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/System.Text.RegularExpressions.Generator.resources.dll: 12288 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 68608 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/Microsoft.Interop.LibraryImportGenerator.resources.dll: 68608 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/Microsoft.Interop.SourceGeneration.resources.dll: 68608 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/System.Text.Json.SourceGeneration.resources.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 77824 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/Microsoft.Interop.LibraryImportGenerator.resources.dll: 77824 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/Microsoft.Interop.SourceGeneration.resources.dll: 77824 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/System.Text.Json.SourceGeneration.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/System.Text.RegularExpressions.Generator.resources.dll: 12288 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 70144 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/Microsoft.Interop.LibraryImportGenerator.resources.dll: 70144 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/Microsoft.Interop.SourceGeneration.resources.dll: 70144 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/System.Text.Json.SourceGeneration.resources.dll: 11264 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll: 303104 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll: 126976 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll: 248320 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll: 436224 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 72192 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Interop.LibraryImportGenerator.resources.dll: 72192 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Interop.SourceGeneration.resources.dll: 72192 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/System.Text.Json.SourceGeneration.resources.dll: 11264 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 67584 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.LibraryImportGenerator.resources.dll: 67584 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.SourceGeneration.resources.dll: 67584 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 89600 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/Microsoft.Interop.LibraryImportGenerator.resources.dll: 89600 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/Microsoft.Interop.SourceGeneration.resources.dll: 89600 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/System.Text.Json.SourceGeneration.resources.dll: 12800 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/System.Text.RegularExpressions.Generator.resources.dll: 14336 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll: 176640 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll: 329216 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 68096 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Interop.LibraryImportGenerator.resources.dll: 68096 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Interop.SourceGeneration.resources.dll: 68096 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/System.Text.Json.SourceGeneration.resources.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/System.Text.RegularExpressions.Generator.resources.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 61440 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.LibraryImportGenerator.resources.dll: 61440 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.SourceGeneration.resources.dll: 61440 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll: 10240 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/System.Text.RegularExpressions.Generator.resources.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 60928 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.LibraryImportGenerator.resources.dll: 60928 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.SourceGeneration.resources.dll: 60928 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll: 10240 +packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/System.Text.RegularExpressions.Generator.resources.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/data/FrameworkList.xml: 34498 +packs/Microsoft.NETCore.App.Ref/x.y.z/data/PackageOverrides.txt: 7496 +packs/Microsoft.NETCore.App.Ref/x.y.z/data/PlatformManifest.txt: 29109 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.CSharp.dll: 8192 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.CSharp.xml: 17851 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.VisualBasic.Core.dll: 49152 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.VisualBasic.Core.xml: 537036 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.VisualBasic.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Win32.Primitives.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Win32.Primitives.xml: 4178 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Win32.Registry.dll: 11264 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Win32.Registry.xml: 93540 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/mscorlib.dll: 45568 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/netstandard.dll: 90624 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.AppContext.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Buffers.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.Concurrent.dll: 16384 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.Concurrent.xml: 138593 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.dll: 35840 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.Immutable.dll: 62976 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.Immutable.xml: 480243 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.NonGeneric.dll: 12800 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.NonGeneric.xml: 82028 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.Specialized.dll: 15872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.Specialized.xml: 120872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.xml: 362851 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.Annotations.dll: 21504 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.Annotations.xml: 104298 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.DataAnnotations.dll: 6656 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.EventBasedAsync.dll: 9216 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.EventBasedAsync.xml: 19414 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.Primitives.dll: 16384 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.Primitives.xml: 79028 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.TypeConverter.dll: 93184 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.TypeConverter.xml: 773499 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ComponentModel.xml: 3939 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Configuration.dll: 9216 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Console.dll: 15872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Console.xml: 77619 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Core.dll: 13312 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Data.Common.dll: 143872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Data.Common.xml: 1420454 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Data.DataSetExtensions.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Data.dll: 13824 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Contracts.dll: 9728 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Contracts.xml: 27620 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Debug.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.dll: 30208 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.xml: 141902 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.FileVersionInfo.dll: 6656 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.FileVersionInfo.xml: 11321 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Process.dll: 20992 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Process.xml: 107459 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.StackTrace.dll: 12800 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.StackTrace.xml: 58384 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.TextWriterTraceListener.dll: 7680 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.TextWriterTraceListener.xml: 25272 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Tools.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.TraceSource.dll: 17920 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.TraceSource.xml: 88580 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Tracing.dll: 18944 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.Tracing.xml: 72690 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.dll: 39424 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Drawing.dll: 10240 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Drawing.Primitives.dll: 25600 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Drawing.Primitives.xml: 172004 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Dynamic.Runtime.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.dll: 15872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.xml: 162814 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Tar.dll: 9728 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Tar.xml: 50999 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Globalization.Calendars.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Globalization.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Globalization.Extensions.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Compression.Brotli.dll: 7680 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Compression.Brotli.xml: 29033 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Compression.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Compression.FileSystem.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Compression.xml: 83223 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Compression.ZipFile.dll: 6656 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Compression.ZipFile.xml: 46632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.AccessControl.dll: 10240 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.AccessControl.xml: 64528 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.DriveInfo.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.DriveInfo.xml: 9726 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.Primitives.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.Watcher.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.FileSystem.Watcher.xml: 22395 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.IsolatedStorage.dll: 12288 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.IsolatedStorage.xml: 90492 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.MemoryMappedFiles.dll: 8192 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.MemoryMappedFiles.xml: 44269 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipes.AccessControl.dll: 8704 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipes.AccessControl.xml: 28948 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipes.dll: 11264 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipes.xml: 83045 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.IO.UnmanagedMemoryStream.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.dll: 22016 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.Expressions.dll: 52736 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.Expressions.xml: 670891 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.Parallel.dll: 20992 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.Parallel.xml: 268430 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.Queryable.dll: 20480 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.Queryable.xml: 163614 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Linq.xml: 211383 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Memory.dll: 43008 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Memory.xml: 279579 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Http.dll: 49664 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Http.Json.dll: 13312 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Http.Json.xml: 49256 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Http.xml: 300810 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.HttpListener.dll: 15360 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.HttpListener.xml: 64028 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Mail.dll: 21504 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Mail.xml: 117870 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.NameResolution.dll: 7680 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.NameResolution.xml: 25263 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.NetworkInformation.dll: 23552 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.NetworkInformation.xml: 141135 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Ping.dll: 10240 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Ping.xml: 67775 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Primitives.dll: 25600 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Primitives.xml: 147890 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Quic.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Quic.xml: 35993 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Requests.dll: 27136 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Requests.xml: 173603 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Security.dll: 42496 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Security.xml: 296265 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.ServicePoint.dll: 9728 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.ServicePoint.xml: 23442 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Sockets.dll: 37376 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Sockets.xml: 438502 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebClient.dll: 17408 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebClient.xml: 115005 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebHeaderCollection.dll: 9216 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebHeaderCollection.xml: 34276 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebProxy.dll: 7680 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebProxy.xml: 12952 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebSockets.Client.dll: 9216 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebSockets.Client.xml: 15240 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebSockets.dll: 12288 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.WebSockets.xml: 39021 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Numerics.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Numerics.Vectors.dll: 30720 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Numerics.Vectors.xml: 229132 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ObjectModel.dll: 13312 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ObjectModel.xml: 46113 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.DispatchProxy.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.DispatchProxy.xml: 1596 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Emit.dll: 32768 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Emit.ILGeneration.dll: 10240 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Emit.ILGeneration.xml: 57387 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Emit.Lightweight.dll: 9216 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Emit.Lightweight.xml: 41959 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Emit.xml: 284186 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Extensions.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Metadata.dll: 110080 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Metadata.xml: 640817 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Primitives.dll: 11776 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.Primitives.xml: 67880 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.TypeExtensions.dll: 9216 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Reflection.TypeExtensions.xml: 10380 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Resources.Reader.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Resources.ResourceManager.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Resources.Writer.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Resources.Writer.xml: 11521 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.CompilerServices.Unsafe.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.CompilerServices.VisualC.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.CompilerServices.VisualC.xml: 5609 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.dll: 818688 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Extensions.dll: 7680 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Handles.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.dll: 87040 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.JavaScript.dll: 15872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.JavaScript.xml: 18520 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.RuntimeInformation.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.xml: 640248 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Intrinsics.dll: 266240 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Intrinsics.xml: 1954945 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Loader.dll: 9216 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Loader.xml: 22800 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Numerics.dll: 26112 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Numerics.xml: 153769 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Formatters.dll: 13312 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Formatters.xml: 67742 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Json.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Json.xml: 40020 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Primitives.dll: 9728 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Primitives.xml: 21345 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Xml.dll: 29696 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.Xml.xml: 219219 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.xml: 6759123 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.dll: 27136 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.xml: 229443 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Claims.dll: 22016 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Claims.xml: 64719 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Algorithms.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Cng.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Csp.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.dll: 123392 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Encoding.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.OpenSsl.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Primitives.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.X509Certificates.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.xml: 1339737 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.dll: 8192 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Principal.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Principal.Windows.dll: 16896 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Principal.Windows.xml: 90077 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.SecureString.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ServiceModel.Web.dll: 6656 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ServiceProcess.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encoding.CodePages.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encoding.CodePages.xml: 2047 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encoding.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encoding.Extensions.dll: 10752 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encoding.Extensions.xml: 116648 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.dll: 15872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.xml: 62242 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.dll: 63488 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.xml: 487357 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.RegularExpressions.dll: 25600 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.RegularExpressions.xml: 172596 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Channels.dll: 8704 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Channels.xml: 18087 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.dll: 22016 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Overlapped.dll: 8704 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Overlapped.xml: 22600 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Tasks.Dataflow.dll: 21504 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Tasks.Dataflow.xml: 200181 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Tasks.dll: 6656 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Tasks.Extensions.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Tasks.Parallel.dll: 9728 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Tasks.Parallel.xml: 71839 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Thread.dll: 13312 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Thread.xml: 58268 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.ThreadPool.dll: 8192 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.ThreadPool.xml: 29644 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.Timer.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Threading.xml: 248056 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Transactions.dll: 6656 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Transactions.Local.dll: 15872 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Transactions.Local.xml: 76586 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.ValueTuple.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Web.dll: 5120 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Web.HttpUtility.dll: 7168 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Web.HttpUtility.xml: 14097 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Windows.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.dll: 13312 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.Linq.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.ReaderWriter.dll: 105472 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.ReaderWriter.xml: 1084524 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.Serialization.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XDocument.dll: 24064 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XDocument.xml: 182930 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XmlDocument.dll: 5632 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XmlSerializer.dll: 40448 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XmlSerializer.xml: 262527 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XPath.dll: 6656 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XPath.XDocument.dll: 6144 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XPath.XDocument.xml: 6502 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Xml.XPath.xml: 8267 +packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/WindowsBase.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/data/RuntimeList.xml: 39500 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.CSharp.dll: 752128 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.NETCore.App.deps.json: 25834 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.NETCore.App.runtimeconfig.json: 49 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.VisualBasic.Core.dll: 1206272 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.VisualBasic.dll: 7168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Win32.Primitives.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Win32.Registry.dll: 22528 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/mscorlib.dll: 49152 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/netstandard.dll: 90624 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.AppContext.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Buffers.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.Concurrent.dll: 175104 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.dll: 235008 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.Immutable.dll: 715776 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.NonGeneric.dll: 82944 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.Specialized.dll: 83456 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.Annotations.dll: 180736 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.DataAnnotations.dll: 6656 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.dll: 7168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.EventBasedAsync.dll: 26112 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.Primitives.dll: 60416 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.TypeConverter.dll: 732160 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Configuration.dll: 9216 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Console.dll: 186880 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Core.dll: 13312 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Data.Common.dll: 2886144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Data.DataSetExtensions.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Data.dll: 15360 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Contracts.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Debug.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.DiagnosticSource.dll: 389120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.FileVersionInfo.dll: 32256 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Process.dll: 251904 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.StackTrace.dll: 20480 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.TextWriterTraceListener.dll: 49664 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Tools.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.TraceSource.dll: 123904 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Tracing.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.dll: 39936 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Drawing.dll: 10240 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Drawing.Primitives.dll: 114688 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Dynamic.Runtime.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Formats.Asn1.dll: 207872 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Formats.Tar.dll: 267264 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Globalization.Calendars.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Globalization.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Globalization.Extensions.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.Brotli.dll: 61952 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.dll: 239616 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.FileSystem.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.ZipFile.dll: 45056 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.AccessControl.dll: 21504 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.DriveInfo.dll: 68096 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.Primitives.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.Watcher.dll: 89600 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.IsolatedStorage.dll: 67072 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.MemoryMappedFiles.dll: 68096 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Pipes.AccessControl.dll: 13312 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Pipes.dll: 114688 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.UnmanagedMemoryStream.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.dll: 412672 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.Expressions.dll: 3681280 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.Parallel.dll: 787968 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.Queryable.dll: 157696 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Memory.dll: 131584 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.dll: 7168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Http.dll: 1658880 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Http.Json.dll: 109568 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.HttpListener.dll: 286208 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Mail.dll: 412672 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.NameResolution.dll: 71168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.NetworkInformation.dll: 157184 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Ping.dll: 90624 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Primitives.dll: 216064 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Quic.dll: 268800 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Requests.dll: 330240 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Security.dll: 766976 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.ServicePoint.dll: 25088 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Sockets.dll: 556032 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebClient.dll: 153088 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebHeaderCollection.dll: 47104 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebProxy.dll: 23040 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebSockets.Client.dll: 79872 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebSockets.dll: 170496 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Numerics.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Numerics.Vectors.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ObjectModel.dll: 57344 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.CoreLib.dll: 11714048 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.DataContractSerialization.dll: 2083328 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.Uri.dll: 223744 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.Xml.dll: 8077824 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.Xml.Linq.dll: 381440 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.DispatchProxy.dll: 55296 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Emit.dll: 108544 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Emit.ILGeneration.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Emit.Lightweight.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Extensions.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Metadata.dll: 1060352 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Primitives.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.TypeExtensions.dll: 22016 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Resources.Reader.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Resources.ResourceManager.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Resources.Writer.dll: 32768 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.CompilerServices.Unsafe.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.CompilerServices.VisualC.dll: 9216 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.dll: 33792 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Extensions.dll: 7680 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Handles.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.InteropServices.dll: 75776 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.InteropServices.JavaScript.dll: 28672 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.InteropServices.RuntimeInformation.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Intrinsics.dll: 6656 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Loader.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Numerics.dll: 293888 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.dll: 7168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Formatters.dll: 294912 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Json.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Primitives.dll: 18432 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Xml.dll: 6656 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.AccessControl.dll: 48128 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Claims.dll: 80384 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Algorithms.dll: 7168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Cng.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Csp.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.dll: 2121728 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Encoding.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.OpenSsl.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Primitives.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.X509Certificates.dll: 7168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.dll: 8192 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Principal.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Principal.Windows.dll: 27136 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.SecureString.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ServiceModel.Web.dll: 6656 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ServiceProcess.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encoding.CodePages.dll: 839680 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encoding.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encoding.Extensions.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encodings.Web.dll: 105472 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Json.dll: 1400832 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.RegularExpressions.dll: 971264 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Channels.dll: 111616 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.dll: 63488 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Overlapped.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.Dataflow.dll: 474624 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.dll: 6656 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.Extensions.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.Parallel.dll: 109056 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Thread.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.ThreadPool.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Timer.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Transactions.dll: 6656 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Transactions.Local.dll: 354304 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ValueTuple.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Web.dll: 5120 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Web.HttpUtility.dll: 39424 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Windows.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.dll: 13312 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.Linq.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.ReaderWriter.dll: 11776 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.Serialization.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XDocument.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XmlDocument.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XmlSerializer.dll: 7680 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XPath.dll: 5632 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XPath.XDocument.dll: 7168 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/WindowsBase.dll: 6144 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/createdump: 990104 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libclrgc.so: 4942768 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libclrjit.so: 20432544 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libcoreclr.so: 54941032 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libcoreclrtraceptprovider.so: 2203304 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libhostfxr.so: 4200912 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libhostpolicy.so: 4896160 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libmscordaccore.so: 20231944 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libmscordbi.so: 11562200 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Globalization.Native.so: 268920 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.IO.Compression.Native.so: 2663400 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Native.so: 387712 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Net.Security.Native.so: 43584 +packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Security.Cryptography.Native.OpenSsl.so: 413872 +packs/NETStandard.Library.Ref/x.y.z/data/FrameworkList.xml: 25681 +packs/NETStandard.Library.Ref/x.y.z/data/PackageOverrides.txt: 3177 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/Microsoft.Win32.Primitives.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/mscorlib.dll: 37888 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/netstandard.dll: 1597440 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/netstandard.xml: 16615788 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.AppContext.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Buffers.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.Concurrent.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.NonGeneric.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Collections.Specialized.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.Composition.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.EventBasedAsync.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.Primitives.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ComponentModel.TypeConverter.dll: 5120 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Console.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Core.dll: 8192 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Data.Common.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Data.dll: 7680 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Contracts.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Debug.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.FileVersionInfo.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Process.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.StackTrace.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.TextWriterTraceListener.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Tools.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.TraceSource.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Diagnostics.Tracing.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.dll: 30208 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Drawing.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Drawing.Primitives.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Dynamic.Runtime.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Globalization.Calendars.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Globalization.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Globalization.Extensions.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Compression.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Compression.FileSystem.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Compression.ZipFile.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.DriveInfo.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.Primitives.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.FileSystem.Watcher.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.IsolatedStorage.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.MemoryMappedFiles.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.Pipes.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.IO.UnmanagedMemoryStream.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.Expressions.dll: 4608 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.Parallel.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Linq.Queryable.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Memory.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.dll: 4608 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Http.dll: 4608 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.NameResolution.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.NetworkInformation.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Ping.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Primitives.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Requests.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Security.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.Sockets.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.WebHeaderCollection.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.WebSockets.Client.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Net.WebSockets.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Numerics.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Numerics.Vectors.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ObjectModel.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.DispatchProxy.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Emit.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Emit.ILGeneration.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Emit.Lightweight.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Extensions.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Reflection.Primitives.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Resources.Reader.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Resources.ResourceManager.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Resources.Writer.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.CompilerServices.VisualC.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.dll: 11264 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Extensions.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Handles.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.InteropServices.dll: 6144 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.InteropServices.RuntimeInformation.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Numerics.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.dll: 4608 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Formatters.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Json.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Primitives.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Runtime.Serialization.Xml.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Claims.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Algorithms.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Csp.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Encoding.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.Primitives.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Cryptography.X509Certificates.dll: 4608 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.Principal.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Security.SecureString.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ServiceModel.Web.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Text.Encoding.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Text.Encoding.Extensions.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Text.RegularExpressions.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Overlapped.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Tasks.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Tasks.Extensions.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Tasks.Parallel.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Thread.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.ThreadPool.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Threading.Timer.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Transactions.dll: 4096 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.ValueTuple.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Web.dll: 3072 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Windows.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.dll: 11264 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.Linq.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.ReaderWriter.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.Serialization.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XDocument.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XmlDocument.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XmlSerializer.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XPath.dll: 3584 +packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XPath.XDocument.dll: 3072 +Roslyn.Diagnostics.Analyzers.x.y.z-1.nupkg: 787880 +Roslyn.Diagnostics.Analyzers.x.y.z-2.nupkg: 787881 +Roslyn.Diagnostics.Analyzers.x.y.z.nupkg: 787868 +runtime.banana-rid.Microsoft.DotNet.ILCompiler.x.y.z.nupkg: 83886014 +runtime.banana-rid.Microsoft.NETCore.DotNetAppHost.x.y.z.nupkg: 31323347 +runtime.banana-rid.Microsoft.NETCore.DotNetHost.x.y.z.nupkg: 237805 +runtime.banana-rid.Microsoft.NETCore.DotNetHostPolicy.x.y.z.nupkg: 1379346 +runtime.banana-rid.Microsoft.NETCore.DotNetHostResolver.x.y.z.nupkg: 1238205 +runtime.banana-rid.Microsoft.NETCore.ILAsm.x.y.z.nupkg: 3005281 +runtime.banana-rid.Microsoft.NETCore.ILDAsm.x.y.z.nupkg: 3046864 +runtime.banana-rid.Microsoft.NETCore.TestHost.x.y.z.nupkg: 254026 +runtime.native.System.IO.Ports.x.y.z.nupkg: 20799 +sdk-manifests/x.y.z/microsoft.net.workload.emscripten.current/x.y.z/WorkloadManifest.json: 2818 +sdk-manifests/x.y.z/microsoft.net.workload.emscripten.current/x.y.z/WorkloadManifest.targets: 2156 +sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net6/x.y.z/WorkloadManifest.json: 1956 +sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net6/x.y.z/WorkloadManifest.targets: 576 +sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net7/x.y.z/WorkloadManifest.json: 2531 +sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net7/x.y.z/WorkloadManifest.targets: 2118 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.cs.json: 88 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.de.json: 74 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.en.json: 234 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.es.json: 98 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.fr.json: 86 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.it.json: 89 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.ja.json: 85 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.ko.json: 77 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.pl.json: 103 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.pt-BR.json: 87 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.ru.json: 93 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.tr.json: 82 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.zh-Hans.json: 76 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/localize/WorkloadManifest.zh-Hant.json: 76 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadManifest.json: 16122 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadManifest.targets: 16701 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadManifest.Wasi.targets: 674 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadTelemetry.targets: 3640 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.cs.json: 93 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.de.json: 79 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.en.json: 174 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.es.json: 103 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.fr.json: 91 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.it.json: 94 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.ja.json: 90 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.ko.json: 82 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.pl.json: 108 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.pt-BR.json: 92 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.ru.json: 98 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.tr.json: 87 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.zh-Hans.json: 81 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/localize/WorkloadManifest.zh-Hant.json: 81 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/WorkloadManifest.json: 17508 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net6/x.y.z/WorkloadManifest.targets: 5764 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.cs.json: 94 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.de.json: 80 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.en.json: 276 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.es.json: 104 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.fr.json: 92 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.it.json: 95 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.ja.json: 91 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.ko.json: 83 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.pl.json: 109 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.pt-BR.json: 93 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.ru.json: 93 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.tr.json: 88 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.zh-Hans.json: 82 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/localize/WorkloadManifest.zh-Hant.json: 82 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/WorkloadManifest.json: 18613 +sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/WorkloadManifest.targets: 5900 +sdk/x.y.z/.toolsetversion: 73 +sdk/x.y.z/.version: 102 +sdk/x.y.z/AppHostTemplate/apphost: 721408 +sdk/x.y.z/Containers/build/Microsoft.NET.Build.Containers.props: 1587 +sdk/x.y.z/Containers/build/Microsoft.NET.Build.Containers.targets: 19195 +sdk/x.y.z/Containers/tasks/netx.y/cs/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/cs/Microsoft.NET.Build.Containers.resources.dll: 15360 +sdk/x.y.z/Containers/tasks/netx.y/cs/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/Containers/tasks/netx.y/de/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/de/Microsoft.NET.Build.Containers.resources.dll: 16384 +sdk/x.y.z/Containers/tasks/netx.y/de/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/Containers/tasks/netx.y/es/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/es/Microsoft.NET.Build.Containers.resources.dll: 15872 +sdk/x.y.z/Containers/tasks/netx.y/es/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/Containers/tasks/netx.y/fr/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/fr/Microsoft.NET.Build.Containers.resources.dll: 15872 +sdk/x.y.z/Containers/tasks/netx.y/fr/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/Containers/tasks/netx.y/it/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/it/Microsoft.NET.Build.Containers.resources.dll: 15872 +sdk/x.y.z/Containers/tasks/netx.y/it/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/Containers/tasks/netx.y/ja/Microsoft.DotNet.Cli.Utils.resources.dll: 8192 +sdk/x.y.z/Containers/tasks/netx.y/ja/Microsoft.NET.Build.Containers.resources.dll: 16896 +sdk/x.y.z/Containers/tasks/netx.y/ja/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/Containers/tasks/netx.y/ko/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/ko/Microsoft.NET.Build.Containers.resources.dll: 16384 +sdk/x.y.z/Containers/tasks/netx.y/ko/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Build.dll: 4930048 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Build.Framework.dll: 717312 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.DotNet.Cli.Utils.dll: 234496 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 117760 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.DependencyInjection.dll: 195584 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.DependencyModel.dll: 159744 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.Logging.Abstractions.dll: 124928 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.Logging.dll: 79360 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.Options.dll: 118272 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.Primitives.dll: 64000 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.NET.Build.Containers.deps.json: 38303 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.NET.Build.Containers.dll: 528896 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.NET.StringTools.dll: 39936 +sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Win32.SystemEvents.dll: 13824 +sdk/x.y.z/Containers/tasks/netx.y/MSBuild.dll: 753664 +sdk/x.y.z/Containers/tasks/netx.y/Newtonsoft.Json.dll: 1836544 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.Common.dll: 358400 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.Configuration.dll: 576000 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.DependencyResolver.Core.dll: 290816 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.Frameworks.dll: 451072 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.LibraryModel.dll: 136192 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.Packaging.Core.dll: 7168 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.Packaging.dll: 2321920 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.ProjectModel.dll: 772608 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.Protocol.dll: 2803712 +sdk/x.y.z/Containers/tasks/netx.y/NuGet.Versioning.dll: 204800 +sdk/x.y.z/Containers/tasks/netx.y/pl/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/pl/Microsoft.NET.Build.Containers.resources.dll: 15872 +sdk/x.y.z/Containers/tasks/netx.y/pl/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/Containers/tasks/netx.y/pt-BR/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/pt-BR/Microsoft.NET.Build.Containers.resources.dll: 15360 +sdk/x.y.z/Containers/tasks/netx.y/pt-BR/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/Containers/tasks/netx.y/ru/Microsoft.DotNet.Cli.Utils.resources.dll: 8704 +sdk/x.y.z/Containers/tasks/netx.y/ru/Microsoft.NET.Build.Containers.resources.dll: 18432 +sdk/x.y.z/Containers/tasks/netx.y/ru/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/Containers/tasks/netx.y/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll: 367104 +sdk/x.y.z/Containers/tasks/netx.y/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll: 791552 +sdk/x.y.z/Containers/tasks/netx.y/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll: 736768 +sdk/x.y.z/Containers/tasks/netx.y/System.CommandLine.dll: 340480 +sdk/x.y.z/Containers/tasks/netx.y/System.Configuration.ConfigurationManager.dll: 1062400 +sdk/x.y.z/Containers/tasks/netx.y/System.Diagnostics.EventLog.dll: 44032 +sdk/x.y.z/Containers/tasks/netx.y/System.Drawing.Common.dll: 155136 +sdk/x.y.z/Containers/tasks/netx.y/System.Reflection.MetadataLoadContext.dll: 567808 +sdk/x.y.z/Containers/tasks/netx.y/System.Security.Cryptography.Pkcs.dll: 623104 +sdk/x.y.z/Containers/tasks/netx.y/System.Security.Cryptography.ProtectedData.dll: 33280 +sdk/x.y.z/Containers/tasks/netx.y/System.Security.Permissions.dll: 82944 +sdk/x.y.z/Containers/tasks/netx.y/System.Windows.Extensions.dll: 12800 +sdk/x.y.z/Containers/tasks/netx.y/tr/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/Containers/tasks/netx.y/tr/Microsoft.NET.Build.Containers.resources.dll: 15872 +sdk/x.y.z/Containers/tasks/netx.y/tr/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/Containers/tasks/netx.y/Valleysoft.DockerCredsProvider.dll: 39424 +sdk/x.y.z/Containers/tasks/netx.y/zh-Hans/Microsoft.DotNet.Cli.Utils.resources.dll: 7168 +sdk/x.y.z/Containers/tasks/netx.y/zh-Hans/Microsoft.NET.Build.Containers.resources.dll: 14848 +sdk/x.y.z/Containers/tasks/netx.y/zh-Hans/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/Containers/tasks/netx.y/zh-Hant/Microsoft.DotNet.Cli.Utils.resources.dll: 7168 +sdk/x.y.z/Containers/tasks/netx.y/zh-Hant/Microsoft.NET.Build.Containers.resources.dll: 14848 +sdk/x.y.z/Containers/tasks/netx.y/zh-Hant/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/cs/dotnet.resources.dll: 182784 +sdk/x.y.z/cs/Microsoft.Build.resources.dll: 98304 +sdk/x.y.z/cs/Microsoft.Build.Tasks.Core.resources.dll: 154112 +sdk/x.y.z/cs/Microsoft.Build.Utilities.Core.resources.dll: 25600 +sdk/x.y.z/cs/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/cs/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/cs/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/cs/Microsoft.DotNet.Configurer.resources.dll: 7168 +sdk/x.y.z/cs/Microsoft.DotNet.TemplateLocator.resources.dll: 8704 +sdk/x.y.z/cs/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 8704 +sdk/x.y.z/cs/Microsoft.TemplateEngine.Cli.resources.dll: 48640 +sdk/x.y.z/cs/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/cs/Microsoft.TemplateEngine.Edge.resources.dll: 22016 +sdk/x.y.z/cs/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 16896 +sdk/x.y.z/cs/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/cs/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/cs/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 10752 +sdk/x.y.z/cs/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/cs/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/cs/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10240 +sdk/x.y.z/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 +sdk/x.y.z/cs/MSBuild.resources.dll: 59904 +sdk/x.y.z/cs/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/cs/vstest.console.resources.dll: 40448 +sdk/x.y.z/Current/Microsoft.Common.CrossTargeting.targets/ImportAfter/Microsoft.TestPlatform.CrossTargeting.targets: 3753 +sdk/x.y.z/Current/Microsoft.Common.props: 11168 +sdk/x.y.z/Current/Microsoft.Common.targets/ImportAfter/Microsoft.NET.Build.Extensions.targets: 1024 +sdk/x.y.z/Current/Microsoft.Common.targets/ImportAfter/Microsoft.TestPlatform.ImportAfter.targets: 1033 +sdk/x.y.z/Current/SolutionFile/ImportAfter/Microsoft.NET.Sdk.Solution.targets: 1527 +sdk/x.y.z/Current/SolutionFile/ImportAfter/Microsoft.NuGet.ImportAfter.targets: 921 +sdk/x.y.z/datacollector.deps.json: 29471 +sdk/x.y.z/datacollector.dll: 55296 +sdk/x.y.z/datacollector.dll.config: 1361 +sdk/x.y.z/datacollector.runtimeconfig.json: 369 +sdk/x.y.z/de/dotnet.resources.dll: 190976 +sdk/x.y.z/de/Microsoft.Build.resources.dll: 103936 +sdk/x.y.z/de/Microsoft.Build.Tasks.Core.resources.dll: 160256 +sdk/x.y.z/de/Microsoft.Build.Utilities.Core.resources.dll: 26624 +sdk/x.y.z/de/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/de/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/de/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/de/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/de/Microsoft.DotNet.TemplateLocator.resources.dll: 8704 +sdk/x.y.z/de/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 8704 +sdk/x.y.z/de/Microsoft.TemplateEngine.Cli.resources.dll: 50176 +sdk/x.y.z/de/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/de/Microsoft.TemplateEngine.Edge.resources.dll: 23040 +sdk/x.y.z/de/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 17920 +sdk/x.y.z/de/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/de/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/de/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/de/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 10752 +sdk/x.y.z/de/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/de/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/de/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10752 +sdk/x.y.z/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 +sdk/x.y.z/de/MSBuild.resources.dll: 61440 +sdk/x.y.z/de/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/de/vstest.console.resources.dll: 41472 +sdk/x.y.z/dotnet.deps.json: 82454 +sdk/x.y.z/dotnet.dll: 2316800 +sdk/x.y.z/dotnet.runtimeconfig.json: 341 +sdk/x.y.z/DotnetTools/dotnet-dev-certs/x.y.z/tools/netx.y/any/dotnet-dev-certs.deps.json: 446 +sdk/x.y.z/DotnetTools/dotnet-dev-certs/x.y.z/tools/netx.y/any/dotnet-dev-certs.dll: 94208 +sdk/x.y.z/DotnetTools/dotnet-dev-certs/x.y.z/tools/netx.y/any/dotnet-dev-certs.runtimeconfig.json: 390 +sdk/x.y.z/DotnetTools/dotnet-dev-certs/x.y.z/tools/netx.y/any/DotnetToolSettings.xml: 203 +sdk/x.y.z/DotnetTools/dotnet-format/cs/dotnet-format.resources.dll: 19456 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.CSharp.resources.dll: 409600 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.Features.resources.dll: 178688 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.resources.dll: 36352 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 89600 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 290304 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 +sdk/x.y.z/DotnetTools/dotnet-format/cs/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-format/de/dotnet-format.resources.dll: 19968 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36352 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.CSharp.resources.dll: 438272 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.Features.resources.dll: 189440 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 93184 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 306176 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15872 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 +sdk/x.y.z/DotnetTools/dotnet-format/de/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.deps.json: 57865 +sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.dll: 159232 +sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.dll.config: 35647 +sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.runtimeconfig.json: 407 +sdk/x.y.z/DotnetTools/dotnet-format/es/dotnet-format.resources.dll: 19456 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36864 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.CSharp.resources.dll: 428544 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.Features.resources.dll: 186368 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 92672 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 301056 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/es/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 +sdk/x.y.z/DotnetTools/dotnet-format/es/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-format/fr/dotnet-format.resources.dll: 19968 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 37376 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.CSharp.resources.dll: 438784 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.Features.resources.dll: 193024 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 93184 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 308224 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 40448 +sdk/x.y.z/DotnetTools/dotnet-format/fr/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-format/Humanizer.dll: 509952 +sdk/x.y.z/DotnetTools/dotnet-format/it/dotnet-format.resources.dll: 19968 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36864 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.CSharp.resources.dll: 434688 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.Features.resources.dll: 188416 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 92160 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 305664 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 +sdk/x.y.z/DotnetTools/dotnet-format/it/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-format/ja/dotnet-format.resources.dll: 20480 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 38400 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.CSharp.resources.dll: 479744 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.Features.resources.dll: 198656 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.resources.dll: 41984 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 96768 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 341504 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15872 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll: 43008 +sdk/x.y.z/DotnetTools/dotnet-format/ja/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-format/ko/dotnet-format.resources.dll: 19968 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.CSharp.resources.dll: 439808 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.Features.resources.dll: 183808 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.resources.dll: 38912 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 91136 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 310784 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 +sdk/x.y.z/DotnetTools/dotnet-format/ko/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Bcl.AsyncInterfaces.dll: 6656 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Build.Locator.dll: 23040 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.AnalyzerUtilities.dll: 660992 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.CSharp.dll: 6467584 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.CSharp.Features.dll: 1947648 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.CSharp.Workspaces.dll: 868864 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.dll: 2876416 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Features.dll: 4838912 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Scripting.dll: 126464 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.VisualBasic.dll: 4949504 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.VisualBasic.Features.dll: 1136128 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll: 780800 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Workspaces.dll: 3779072 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll: 114176 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.DiaSymReader.dll: 76800 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.DependencyInjection.dll: 8704 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.FileSystemGlobbing.dll: 13824 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Logging.Abstractions.dll: 16384 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Logging.dll: 10752 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Options.dll: 20480 +sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Primitives.dll: 14848 +sdk/x.y.z/DotnetTools/dotnet-format/pl/dotnet-format.resources.dll: 19456 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36864 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.CSharp.resources.dll: 440832 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.Features.resources.dll: 185856 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 91648 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 315904 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15872 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 +sdk/x.y.z/DotnetTools/dotnet-format/pl/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/dotnet-format.resources.dll: 19456 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36352 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll: 420864 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.Features.resources.dll: 184320 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.resources.dll: 37376 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 91648 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 295424 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll: 38912 +sdk/x.y.z/DotnetTools/dotnet-format/pt-BR/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-format/ru/dotnet-format.resources.dll: 21504 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 44544 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.CSharp.resources.dll: 574464 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.Features.resources.dll: 248320 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.resources.dll: 48640 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.Scripting.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 111104 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 397824 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 17408 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-format/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll: 47104 +sdk/x.y.z/DotnetTools/dotnet-format/ru/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-format/System.CommandLine.dll: 137728 +sdk/x.y.z/DotnetTools/dotnet-format/System.CommandLine.Rendering.dll: 74752 +sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.AttributedModel.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.Convention.dll: 43520 +sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.Hosting.dll: 44544 +sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.Runtime.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.TypedParts.dll: 54784 +sdk/x.y.z/DotnetTools/dotnet-format/System.IO.Pipelines.dll: 11776 +sdk/x.y.z/DotnetTools/dotnet-format/tr/dotnet-format.resources.dll: 19456 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.CSharp.resources.dll: 417280 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.Features.resources.dll: 180224 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.resources.dll: 36864 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 91648 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 291840 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-format/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 +sdk/x.y.z/DotnetTools/dotnet-format/tr/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/dotnet-format.resources.dll: 18944 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 33792 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll: 371200 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.Features.resources.dll: 159744 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.resources.dll: 33792 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 84480 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 265728 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 14848 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hans/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/dotnet-format.resources.dll: 18944 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 33792 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll: 370688 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.Features.resources.dll: 161792 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.resources.dll: 33792 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.Features.resources.dll: 84992 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 264704 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll: 14848 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-format/zh-Hant/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/assets/SecretManager.targets: 164 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/dotnet-user-jwts.deps.json: 19484 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/dotnet-user-jwts.dll: 95744 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/dotnet-user-jwts.runtimeconfig.json: 390 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/DotnetToolSettings.xml: 203 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.Abstractions.dll: 17408 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.Binder.dll: 32256 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.dll: 33280 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.FileExtensions.dll: 17408 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.Json.dll: 16384 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.UserSecrets.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.FileProviders.Abstractions.dll: 11776 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.FileProviders.Physical.dll: 34304 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.FileSystemGlobbing.dll: 35328 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.Extensions.Primitives.dll: 33280 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.IdentityModel.Abstractions.dll: 8704 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.IdentityModel.JsonWebTokens.dll: 101376 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.IdentityModel.Logging.dll: 27136 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.IdentityModel.Tokens.dll: 971264 +sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/System.IdentityModel.Tokens.Jwt.dll: 67584 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/assets/SecretManager.targets: 164 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/dotnet-user-secrets.deps.json: 10184 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/dotnet-user-secrets.dll: 58368 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/dotnet-user-secrets.runtimeconfig.json: 390 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/DotnetToolSettings.xml: 209 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.Abstractions.dll: 17408 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.dll: 33280 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.FileExtensions.dll: 17408 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.Json.dll: 16384 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.Configuration.UserSecrets.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.FileProviders.Abstractions.dll: 11776 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.FileProviders.Physical.dll: 34304 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.FileSystemGlobbing.dll: 35328 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Microsoft.Extensions.Primitives.dll: 33280 +sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/Newtonsoft.Json.dll: 687616 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/Microsoft.CodeAnalysis.Features.resources.dll: 178688 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36352 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/Microsoft.CodeAnalysis.Features.resources.dll: 189440 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.deps.json: 41560 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.dll: 180736 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.dll.config: 34617 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.runtimeconfig.json: 501 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/DotNetWatch.targets: 4381 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/DotNetWatchTasks.dll: 12288 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36864 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/Microsoft.CodeAnalysis.Features.resources.dll: 186368 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/es/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 37376 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/Microsoft.CodeAnalysis.Features.resources.dll: 193024 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 40448 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/hotreload/Microsoft.Extensions.DotNetDeltaApplier.dll: 26624 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Humanizer.dll: 509952 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36864 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/Microsoft.CodeAnalysis.Features.resources.dll: 188416 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 38400 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/Microsoft.CodeAnalysis.Features.resources.dll: 198656 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll: 43008 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/Microsoft.CodeAnalysis.Features.resources.dll: 183808 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Bcl.AsyncInterfaces.dll: 6656 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Build.Locator.dll: 23040 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.AnalyzerUtilities.dll: 660992 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.CSharp.Features.dll: 1947648 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.CSharp.Workspaces.dll: 868864 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Features.dll: 4838912 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Scripting.dll: 126464 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.dll: 3779072 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll: 114176 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.DiaSymReader.dll: 76800 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/middleware/Microsoft.AspNetCore.Watch.BrowserRefresh.dll: 41472 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36864 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.Features.resources.dll: 185856 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36352 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/Microsoft.CodeAnalysis.Features.resources.dll: 184320 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll: 38912 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/dotnet-watch.resources.dll: 6144 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 44544 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/Microsoft.CodeAnalysis.Features.resources.dll: 248320 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/Microsoft.CodeAnalysis.Scripting.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 8192 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll: 47104 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CommandLine.dll: 137728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.AttributedModel.dll: 9728 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.Convention.dll: 43520 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.Hosting.dll: 44544 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.Runtime.dll: 15360 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.TypedParts.dll: 54784 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/Microsoft.CodeAnalysis.Features.resources.dll: 180224 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 33792 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/Microsoft.CodeAnalysis.Features.resources.dll: 159744 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/dotnet-watch.resources.dll: 5632 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 33792 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/Microsoft.CodeAnalysis.Features.resources.dll: 161792 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/Microsoft.CodeAnalysis.Scripting.resources.dll: 7680 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 +sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/es/dotnet.resources.dll: 189440 +sdk/x.y.z/es/Microsoft.Build.resources.dll: 101888 +sdk/x.y.z/es/Microsoft.Build.Tasks.Core.resources.dll: 156672 +sdk/x.y.z/es/Microsoft.Build.Utilities.Core.resources.dll: 26112 +sdk/x.y.z/es/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/es/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/es/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/es/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/es/Microsoft.DotNet.TemplateLocator.resources.dll: 9216 +sdk/x.y.z/es/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9216 +sdk/x.y.z/es/Microsoft.TemplateEngine.Cli.resources.dll: 49152 +sdk/x.y.z/es/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/es/Microsoft.TemplateEngine.Edge.resources.dll: 22528 +sdk/x.y.z/es/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 17408 +sdk/x.y.z/es/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/es/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/es/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/es/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 11264 +sdk/x.y.z/es/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/es/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/es/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10752 +sdk/x.y.z/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 +sdk/x.y.z/es/MSBuild.resources.dll: 60416 +sdk/x.y.z/es/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/es/vstest.console.resources.dll: 41984 +sdk/x.y.z/Extensions/cs/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/cs/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/cs/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/de/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/de/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/de/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/es/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/es/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/es/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/fr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7680 +sdk/x.y.z/Extensions/fr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/fr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/it/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7680 +sdk/x.y.z/Extensions/it/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/it/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/ja/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7680 +sdk/x.y.z/Extensions/ja/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/ja/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8704 +sdk/x.y.z/Extensions/ko/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7680 +sdk/x.y.z/Extensions/ko/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/ko/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/Microsoft.Diagnostics.NETCore.Client.dll: 339968 +sdk/x.y.z/Extensions/Microsoft.TestPlatform.Extensions.BlameDataCollector.dll: 248832 +sdk/x.y.z/Extensions/Microsoft.TestPlatform.Extensions.EventLogCollector.dll: 57344 +sdk/x.y.z/Extensions/Microsoft.TestPlatform.TestHostRuntimeProvider.dll: 123904 +sdk/x.y.z/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.dll: 76288 +sdk/x.y.z/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.dll: 294912 +sdk/x.y.z/Extensions/pl/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/pl/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/pl/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/pt-BR/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/ru/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 8192 +sdk/x.y.z/Extensions/ru/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/ru/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5632 +sdk/x.y.z/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 9216 +sdk/x.y.z/Extensions/tr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/tr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/tr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 +sdk/x.y.z/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/zh-Hans/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 7680 +sdk/x.y.z/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll: 7168 +sdk/x.y.z/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 +sdk/x.y.z/Extensions/zh-Hant/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 +sdk/x.y.z/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 +sdk/x.y.z/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 7680 +sdk/x.y.z/fr/dotnet.resources.dll: 189952 +sdk/x.y.z/fr/Microsoft.Build.resources.dll: 103424 +sdk/x.y.z/fr/Microsoft.Build.Tasks.Core.resources.dll: 160256 +sdk/x.y.z/fr/Microsoft.Build.Utilities.Core.resources.dll: 26624 +sdk/x.y.z/fr/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/fr/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/fr/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/fr/Microsoft.DotNet.Configurer.resources.dll: 7168 +sdk/x.y.z/fr/Microsoft.DotNet.TemplateLocator.resources.dll: 9216 +sdk/x.y.z/fr/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9216 +sdk/x.y.z/fr/Microsoft.TemplateEngine.Cli.resources.dll: 50176 +sdk/x.y.z/fr/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/fr/Microsoft.TemplateEngine.Edge.resources.dll: 23040 +sdk/x.y.z/fr/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 17920 +sdk/x.y.z/fr/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/fr/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/fr/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 11264 +sdk/x.y.z/fr/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/fr/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/fr/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 11264 +sdk/x.y.z/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 +sdk/x.y.z/fr/MSBuild.resources.dll: 59392 +sdk/x.y.z/fr/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/fr/vstest.console.resources.dll: 41984 +sdk/x.y.z/FSharp/cs/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/cs/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/cs/FSharp.Compiler.Service.resources.dll: 346112 +sdk/x.y.z/FSharp/cs/FSharp.Core.resources.dll: 24064 +sdk/x.y.z/FSharp/cs/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/de/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/de/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/de/FSharp.Compiler.Service.resources.dll: 369152 +sdk/x.y.z/FSharp/de/FSharp.Core.resources.dll: 25088 +sdk/x.y.z/FSharp/de/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/default.win32manifest: 479 +sdk/x.y.z/FSharp/es/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/es/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/es/FSharp.Compiler.Service.resources.dll: 360960 +sdk/x.y.z/FSharp/es/FSharp.Core.resources.dll: 24064 +sdk/x.y.z/FSharp/es/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/fr/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/fr/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/fr/FSharp.Compiler.Service.resources.dll: 368128 +sdk/x.y.z/FSharp/fr/FSharp.Core.resources.dll: 24576 +sdk/x.y.z/FSharp/fr/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/fsc.deps.json: 22739 +sdk/x.y.z/FSharp/fsc.dll: 87040 +sdk/x.y.z/FSharp/fsc.runtimeconfig.json: 373 +sdk/x.y.z/FSharp/FSharp.Build.dll: 179712 +sdk/x.y.z/FSharp/FSharp.Compiler.Interactive.Settings.dll: 46080 +sdk/x.y.z/FSharp/FSharp.Compiler.Service.dll: 35448320 +sdk/x.y.z/FSharp/FSharp.Core.dll: 4585984 +sdk/x.y.z/FSharp/FSharp.Core.xml: 1211108 +sdk/x.y.z/FSharp/FSharp.DependencyManager.Nuget.dll: 233984 +sdk/x.y.z/FSharp/fsi.deps.json: 22739 +sdk/x.y.z/FSharp/fsi.dll: 204800 +sdk/x.y.z/FSharp/fsi.runtimeconfig.json: 373 +sdk/x.y.z/FSharp/it/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/it/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/it/FSharp.Compiler.Service.resources.dll: 361984 +sdk/x.y.z/FSharp/it/FSharp.Core.resources.dll: 24576 +sdk/x.y.z/FSharp/it/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/ja/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/ja/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/ja/FSharp.Compiler.Service.resources.dll: 402432 +sdk/x.y.z/FSharp/ja/FSharp.Core.resources.dll: 26624 +sdk/x.y.z/FSharp/ja/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/ko/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/ko/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/ko/FSharp.Compiler.Service.resources.dll: 374272 +sdk/x.y.z/FSharp/ko/FSharp.Core.resources.dll: 25600 +sdk/x.y.z/FSharp/ko/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/library-packs/FSharp.Core.x.y.z.nupkg: 2575799 +sdk/x.y.z/FSharp/Microsoft.Build.Framework.dll: 717312 +sdk/x.y.z/FSharp/Microsoft.Build.Tasks.Core.dll: 2522624 +sdk/x.y.z/FSharp/Microsoft.Build.Utilities.Core.dll: 712192 +sdk/x.y.z/FSharp/Microsoft.FSharp.Core.NetSdk.props: 1422 +sdk/x.y.z/FSharp/Microsoft.FSharp.NetSdk.props: 7209 +sdk/x.y.z/FSharp/Microsoft.FSharp.NetSdk.targets: 11007 +sdk/x.y.z/FSharp/Microsoft.FSharp.Overrides.NetSdk.targets: 1732 +sdk/x.y.z/FSharp/Microsoft.FSharp.Targets: 28745 +sdk/x.y.z/FSharp/Microsoft.NET.StringTools.dll: 39936 +sdk/x.y.z/FSharp/Microsoft.Portable.FSharp.Targets: 2053 +sdk/x.y.z/FSharp/Microsoft.Win32.SystemEvents.dll: 13824 +sdk/x.y.z/FSharp/pl/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/pl/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/pl/FSharp.Compiler.Service.resources.dll: 368128 +sdk/x.y.z/FSharp/pl/FSharp.Core.resources.dll: 25088 +sdk/x.y.z/FSharp/pl/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/pt-BR/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/pt-BR/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/pt-BR/FSharp.Compiler.Service.resources.dll: 353792 +sdk/x.y.z/FSharp/pt-BR/FSharp.Core.resources.dll: 23552 +sdk/x.y.z/FSharp/pt-BR/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/ru/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/ru/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/ru/FSharp.Compiler.Service.resources.dll: 488448 +sdk/x.y.z/FSharp/ru/FSharp.Core.resources.dll: 31232 +sdk/x.y.z/FSharp/ru/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll: 367104 +sdk/x.y.z/FSharp/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll: 791552 +sdk/x.y.z/FSharp/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll: 736768 +sdk/x.y.z/FSharp/System.CodeDom.dll: 77824 +sdk/x.y.z/FSharp/System.Configuration.ConfigurationManager.dll: 1062400 +sdk/x.y.z/FSharp/System.Diagnostics.EventLog.dll: 44032 +sdk/x.y.z/FSharp/System.Drawing.Common.dll: 155136 +sdk/x.y.z/FSharp/System.Resources.Extensions.dll: 9216 +sdk/x.y.z/FSharp/System.Security.Cryptography.Pkcs.dll: 623104 +sdk/x.y.z/FSharp/System.Security.Cryptography.ProtectedData.dll: 33280 +sdk/x.y.z/FSharp/System.Security.Cryptography.Xml.dll: 45056 +sdk/x.y.z/FSharp/System.Security.Permissions.dll: 82944 +sdk/x.y.z/FSharp/System.Windows.Extensions.dll: 12800 +sdk/x.y.z/FSharp/tr/FSharp.Build.resources.dll: 6144 +sdk/x.y.z/FSharp/tr/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/tr/FSharp.Compiler.Service.resources.dll: 354304 +sdk/x.y.z/FSharp/tr/FSharp.Core.resources.dll: 23552 +sdk/x.y.z/FSharp/tr/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/zh-Hans/FSharp.Build.resources.dll: 5632 +sdk/x.y.z/FSharp/zh-Hans/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/zh-Hans/FSharp.Compiler.Service.resources.dll: 313856 +sdk/x.y.z/FSharp/zh-Hans/FSharp.Core.resources.dll: 22016 +sdk/x.y.z/FSharp/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/FSharp/zh-Hant/FSharp.Build.resources.dll: 5632 +sdk/x.y.z/FSharp/zh-Hant/FSharp.Compiler.Interactive.Settings.resources.dll: 4608 +sdk/x.y.z/FSharp/zh-Hant/FSharp.Compiler.Service.resources.dll: 312320 +sdk/x.y.z/FSharp/zh-Hant/FSharp.Core.resources.dll: 21504 +sdk/x.y.z/FSharp/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll: 6144 +sdk/x.y.z/it/dotnet.resources.dll: 185344 +sdk/x.y.z/it/Microsoft.Build.resources.dll: 102912 +sdk/x.y.z/it/Microsoft.Build.Tasks.Core.resources.dll: 158208 +sdk/x.y.z/it/Microsoft.Build.Utilities.Core.resources.dll: 26112 +sdk/x.y.z/it/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/it/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/it/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/it/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/it/Microsoft.DotNet.TemplateLocator.resources.dll: 9216 +sdk/x.y.z/it/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9216 +sdk/x.y.z/it/Microsoft.TemplateEngine.Cli.resources.dll: 49152 +sdk/x.y.z/it/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/it/Microsoft.TemplateEngine.Edge.resources.dll: 22528 +sdk/x.y.z/it/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 17408 +sdk/x.y.z/it/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/it/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/it/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/it/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 10752 +sdk/x.y.z/it/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/it/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/it/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10752 +sdk/x.y.z/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 +sdk/x.y.z/it/MSBuild.resources.dll: 60416 +sdk/x.y.z/it/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/it/vstest.console.resources.dll: 41472 +sdk/x.y.z/ja/dotnet.resources.dll: 201728 +sdk/x.y.z/ja/Microsoft.Build.resources.dll: 115712 +sdk/x.y.z/ja/Microsoft.Build.Tasks.Core.resources.dll: 178688 +sdk/x.y.z/ja/Microsoft.Build.Utilities.Core.resources.dll: 28672 +sdk/x.y.z/ja/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/ja/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/ja/Microsoft.DotNet.Cli.Utils.resources.dll: 8192 +sdk/x.y.z/ja/Microsoft.DotNet.Configurer.resources.dll: 7168 +sdk/x.y.z/ja/Microsoft.DotNet.TemplateLocator.resources.dll: 9728 +sdk/x.y.z/ja/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9728 +sdk/x.y.z/ja/Microsoft.TemplateEngine.Cli.resources.dll: 54784 +sdk/x.y.z/ja/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/ja/Microsoft.TemplateEngine.Edge.resources.dll: 24576 +sdk/x.y.z/ja/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 18944 +sdk/x.y.z/ja/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/ja/Microsoft.TemplateSearch.Common.resources.dll: 6144 +sdk/x.y.z/ja/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll: 7168 +sdk/x.y.z/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 12288 +sdk/x.y.z/ja/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/ja/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6656 +sdk/x.y.z/ja/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 11264 +sdk/x.y.z/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 14336 +sdk/x.y.z/ja/MSBuild.resources.dll: 66560 +sdk/x.y.z/ja/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/ja/vstest.console.resources.dll: 45056 +sdk/x.y.z/KnownWorkloadManifests.txt: 274 +sdk/x.y.z/ko/dotnet.resources.dll: 192512 +sdk/x.y.z/ko/Microsoft.Build.resources.dll: 103936 +sdk/x.y.z/ko/Microsoft.Build.Tasks.Core.resources.dll: 163328 +sdk/x.y.z/ko/Microsoft.Build.Utilities.Core.resources.dll: 26624 +sdk/x.y.z/ko/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/ko/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/ko/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/ko/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/ko/Microsoft.DotNet.TemplateLocator.resources.dll: 9216 +sdk/x.y.z/ko/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9216 +sdk/x.y.z/ko/Microsoft.TemplateEngine.Cli.resources.dll: 50176 +sdk/x.y.z/ko/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/ko/Microsoft.TemplateEngine.Edge.resources.dll: 23040 +sdk/x.y.z/ko/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 17920 +sdk/x.y.z/ko/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/ko/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/ko/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 11264 +sdk/x.y.z/ko/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/ko/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/ko/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10752 +sdk/x.y.z/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 +sdk/x.y.z/ko/MSBuild.resources.dll: 61440 +sdk/x.y.z/ko/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/ko/vstest.console.resources.dll: 41984 +sdk/x.y.z/Microsoft.ApplicationInsights.dll: 928768 +sdk/x.y.z/Microsoft.AspNetCore.DeveloperCertificates.XPlat.dll: 105984 +sdk/x.y.z/Microsoft.Build.dll: 4930048 +sdk/x.y.z/Microsoft.Build.Framework.dll: 717312 +sdk/x.y.z/Microsoft.Build.NuGetSdkResolver.dll: 115712 +sdk/x.y.z/Microsoft.Build.Tasks.Core.dll: 2522624 +sdk/x.y.z/Microsoft.Build.Utilities.Core.dll: 712192 +sdk/x.y.z/Microsoft.Common.CrossTargeting.targets: 13506 +sdk/x.y.z/Microsoft.Common.CurrentVersion.targets: 362881 +sdk/x.y.z/Microsoft.Common.overridetasks: 6403 +sdk/x.y.z/Microsoft.Common.targets: 3322 +sdk/x.y.z/Microsoft.Common.tasks: 18714 +sdk/x.y.z/Microsoft.CSharp.CrossTargeting.targets: 1264 +sdk/x.y.z/Microsoft.CSharp.CurrentVersion.targets: 21185 +sdk/x.y.z/Microsoft.CSharp.targets: 1457 +sdk/x.y.z/Microsoft.Deployment.DotNet.Releases.dll: 107008 +sdk/x.y.z/Microsoft.DotNet.Cli.Sln.Internal.dll: 73216 +sdk/x.y.z/Microsoft.DotNet.Cli.Utils.dll: 234496 +sdk/x.y.z/Microsoft.DotNet.Configurer.dll: 32768 +sdk/x.y.z/Microsoft.DotNet.InternalAbstractions.dll: 26624 +sdk/x.y.z/Microsoft.DotNet.NativeWrapper.dll: 29696 +sdk/x.y.z/Microsoft.DotNet.SdkResolver.dll: 17920 +sdk/x.y.z/Microsoft.DotNet.TemplateLocator.dll: 251904 +sdk/x.y.z/Microsoft.Extensions.Configuration.Abstractions.dll: 27136 +sdk/x.y.z/Microsoft.Extensions.Configuration.Binder.dll: 65536 +sdk/x.y.z/Microsoft.Extensions.Configuration.dll: 72704 +sdk/x.y.z/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 117760 +sdk/x.y.z/Microsoft.Extensions.DependencyInjection.dll: 195584 +sdk/x.y.z/Microsoft.Extensions.DependencyModel.dll: 159744 +sdk/x.y.z/Microsoft.Extensions.FileProviders.Abstractions.dll: 14848 +sdk/x.y.z/Microsoft.Extensions.FileSystemGlobbing.dll: 80896 +sdk/x.y.z/Microsoft.Extensions.Logging.Abstractions.dll: 124928 +sdk/x.y.z/Microsoft.Extensions.Logging.Configuration.dll: 26624 +sdk/x.y.z/Microsoft.Extensions.Logging.Console.dll: 128512 +sdk/x.y.z/Microsoft.Extensions.Logging.dll: 79360 +sdk/x.y.z/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 18944 +sdk/x.y.z/Microsoft.Extensions.Options.dll: 118272 +sdk/x.y.z/Microsoft.Extensions.Primitives.dll: 64000 +sdk/x.y.z/Microsoft.Managed.After.targets: 7435 +sdk/x.y.z/Microsoft.Managed.Before.targets: 1145 +sdk/x.y.z/Microsoft.Managed.targets: 951 +sdk/x.y.z/Microsoft.NET.HostModel.dll: 175616 +sdk/x.y.z/Microsoft.NET.props: 2102 +sdk/x.y.z/Microsoft.NET.Sdk.WorkloadManifestReader.dll: 245248 +sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll: 48128 +sdk/x.y.z/Microsoft.NET.StringTools.dll: 39936 +sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props: 599 +sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props: 51150 +sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props: 11741 +sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets: 9313 +sdk/x.y.z/Microsoft.NETFramework.props: 1048 +sdk/x.y.z/Microsoft.NETFramework.targets: 1064 +sdk/x.y.z/Microsoft.TemplateEngine.Abstractions.dll: 70656 +sdk/x.y.z/Microsoft.TemplateEngine.Cli.dll: 1192448 +sdk/x.y.z/Microsoft.TemplateEngine.Cli.xml: 167166 +sdk/x.y.z/Microsoft.TemplateEngine.Core.Contracts.dll: 14336 +sdk/x.y.z/Microsoft.TemplateEngine.Core.dll: 366080 +sdk/x.y.z/Microsoft.TemplateEngine.Edge.dll: 746496 +sdk/x.y.z/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll: 638464 +sdk/x.y.z/Microsoft.TemplateEngine.Utils.dll: 233984 +sdk/x.y.z/Microsoft.TemplateSearch.Common.dll: 160768 +sdk/x.y.z/Microsoft.TestPlatform.Build.dll: 56320 +sdk/x.y.z/Microsoft.TestPlatform.CommunicationUtilities.dll: 296960 +sdk/x.y.z/Microsoft.TestPlatform.CoreUtilities.dll: 178688 +sdk/x.y.z/Microsoft.TestPlatform.CrossPlatEngine.dll: 833536 +sdk/x.y.z/Microsoft.TestPlatform.PlatformAbstractions.dll: 106496 +sdk/x.y.z/Microsoft.TestPlatform.targets: 6039 +sdk/x.y.z/Microsoft.TestPlatform.Utilities.dll: 125440 +sdk/x.y.z/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.dll: 282112 +sdk/x.y.z/Microsoft.VisualBasic.CrossTargeting.targets: 1304 +sdk/x.y.z/Microsoft.VisualBasic.CurrentVersion.targets: 21960 +sdk/x.y.z/Microsoft.VisualBasic.targets: 1497 +sdk/x.y.z/Microsoft.VisualStudio.TestPlatform.Client.dll: 165888 +sdk/x.y.z/Microsoft.VisualStudio.TestPlatform.Common.dll: 611840 +sdk/x.y.z/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll: 544768 +sdk/x.y.z/Microsoft.VisualStudioVersion.v11.Common.props: 786 +sdk/x.y.z/Microsoft.VisualStudioVersion.v12.Common.props: 786 +sdk/x.y.z/Microsoft.VisualStudioVersion.v14.Common.props: 786 +sdk/x.y.z/Microsoft.Win32.Msi.dll: 27648 +sdk/x.y.z/Microsoft.Win32.SystemEvents.dll: 13824 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets: 3125 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets: 9876 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets: 1981 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.DefaultPackageConflictOverrides.targets: 10626 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/Microsoft.Win32.Primitives.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netfx.force.conflicts.dll: 7680 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netstandard.dll: 83456 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.AppContext.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Concurrent.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.NonGeneric.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Specialized.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.EventBasedAsync.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.Primitives.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.TypeConverter.dll: 5120 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Console.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Data.Common.dll: 88064 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Contracts.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Debug.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.FileVersionInfo.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Process.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.StackTrace.dll: 4608 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TextWriterTraceListener.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tools.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TraceSource.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tracing.dll: 12800 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Drawing.Primitives.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Dynamic.Runtime.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Calendars.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Extensions.dll: 6656 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.dll: 87040 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.ZipFile.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.DriveInfo.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Primitives.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Watcher.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.IsolatedStorage.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.MemoryMappedFiles.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Pipes.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.UnmanagedMemoryStream.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Expressions.dll: 4608 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Parallel.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Queryable.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Http.dll: 175616 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NameResolution.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NetworkInformation.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Ping.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Primitives.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Requests.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Security.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Sockets.dll: 11264 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebHeaderCollection.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.Client.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ObjectModel.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Extensions.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Primitives.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Reader.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.ResourceManager.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Writer.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.CompilerServices.VisualC.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.dll: 11264 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Extensions.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Handles.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.dll: 6656 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.RuntimeInformation.dll: 10240 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Numerics.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Formatters.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Json.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Primitives.dll: 5632 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Xml.dll: 6144 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Claims.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Algorithms.dll: 19968 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Csp.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Encoding.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Primitives.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.X509Certificates.dll: 4608 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Principal.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.SecureString.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.Extensions.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.RegularExpressions.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Overlapped.dll: 17408 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.Parallel.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Thread.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.ThreadPool.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Timer.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ValueTuple.dll: 60928 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.ReaderWriter.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XDocument.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlDocument.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlSerializer.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.XDocument.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net462/lib/System.Runtime.InteropServices.RuntimeInformation.dll: 10240 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Runtime.InteropServices.RuntimeInformation.dll: 10240 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Security.Cryptography.Algorithms.dll: 19968 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.ValueTuple.dll: 5120 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/_._: 0 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/netfx.force.conflicts.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Data.Common.dll: 80384 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.StackTrace.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.Tracing.dll: 12800 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Globalization.Extensions.dll: 5120 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.IO.Compression.dll: 87040 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Http.dll: 175616 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Sockets.dll: 4096 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Runtime.Serialization.Primitives.dll: 5632 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.Cryptography.Algorithms.dll: 17408 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.SecureString.dll: 3072 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Threading.Overlapped.dll: 6144 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Xml.XPath.XDocument.dll: 3584 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/cs/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 50176 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/de/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 52736 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/es/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 52224 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/fr/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 52736 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/it/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 48128 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/ja/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 48640 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/ko/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 53760 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/Microsoft.NET.Build.Extensions.Tasks.dll: 210432 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/pl/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 54272 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/pt-BR/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 51200 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/ru/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 66048 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/tr/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 50688 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/zh-Hans/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 46080 +sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/zh-Hant/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 46080 +sdk/x.y.z/minimumMSBuildVersion: 7 +sdk/x.y.z/MSBuild.deps.json: 112182 +sdk/x.y.z/MSBuild.dll: 753664 +sdk/x.y.z/MSBuild.runtimeconfig.json: 341 +sdk/x.y.z/NETCoreSdkRuntimeIdentifierChain.txt: 38 +sdk/x.y.z/Newtonsoft.Json.dll: 1836544 +sdk/x.y.z/NuGet.Build.Tasks.Console.dll: 138240 +sdk/x.y.z/NuGet.Build.Tasks.Console.runtimeconfig.json: 407 +sdk/x.y.z/NuGet.Build.Tasks.dll: 321536 +sdk/x.y.z/NuGet.CommandLine.XPlat.deps.json: 112214 +sdk/x.y.z/NuGet.CommandLine.XPlat.dll: 789504 +sdk/x.y.z/NuGet.CommandLine.XPlat.runtimeconfig.json: 341 +sdk/x.y.z/NuGet.Commands.dll: 2056192 +sdk/x.y.z/NuGet.Common.dll: 358400 +sdk/x.y.z/NuGet.Configuration.dll: 576000 +sdk/x.y.z/NuGet.Credentials.dll: 169984 +sdk/x.y.z/NuGet.DependencyResolver.Core.dll: 290816 +sdk/x.y.z/NuGet.Frameworks.dll: 451072 +sdk/x.y.z/NuGet.LibraryModel.dll: 136192 +sdk/x.y.z/NuGet.Packaging.Core.dll: 7168 +sdk/x.y.z/NuGet.Packaging.dll: 2321920 +sdk/x.y.z/NuGet.ProjectModel.dll: 772608 +sdk/x.y.z/NuGet.props: 2523 +sdk/x.y.z/NuGet.Protocol.dll: 2803712 +sdk/x.y.z/NuGet.RestoreEx.targets: 2846 +sdk/x.y.z/NuGet.targets: 68395 +sdk/x.y.z/NuGet.Versioning.dll: 204800 +sdk/x.y.z/pl/dotnet.resources.dll: 192512 +sdk/x.y.z/pl/Microsoft.Build.resources.dll: 105472 +sdk/x.y.z/pl/Microsoft.Build.Tasks.Core.resources.dll: 161280 +sdk/x.y.z/pl/Microsoft.Build.Utilities.Core.resources.dll: 26624 +sdk/x.y.z/pl/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/pl/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/pl/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/pl/Microsoft.DotNet.Configurer.resources.dll: 7168 +sdk/x.y.z/pl/Microsoft.DotNet.TemplateLocator.resources.dll: 9216 +sdk/x.y.z/pl/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9216 +sdk/x.y.z/pl/Microsoft.TemplateEngine.Cli.resources.dll: 49664 +sdk/x.y.z/pl/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/pl/Microsoft.TemplateEngine.Edge.resources.dll: 22528 +sdk/x.y.z/pl/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 17920 +sdk/x.y.z/pl/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/pl/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/pl/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 11264 +sdk/x.y.z/pl/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/pl/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/pl/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10752 +sdk/x.y.z/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 14336 +sdk/x.y.z/pl/MSBuild.resources.dll: 61440 +sdk/x.y.z/pl/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/pl/vstest.console.resources.dll: 41472 +sdk/x.y.z/PortableRuntimeIdentifierGraph.json: 7012 +sdk/x.y.z/pt-BR/dotnet.resources.dll: 186368 +sdk/x.y.z/pt-BR/Microsoft.Build.resources.dll: 99328 +sdk/x.y.z/pt-BR/Microsoft.Build.Tasks.Core.resources.dll: 155136 +sdk/x.y.z/pt-BR/Microsoft.Build.Utilities.Core.resources.dll: 25600 +sdk/x.y.z/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/pt-BR/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/pt-BR/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/pt-BR/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/pt-BR/Microsoft.DotNet.TemplateLocator.resources.dll: 9216 +sdk/x.y.z/pt-BR/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9216 +sdk/x.y.z/pt-BR/Microsoft.TemplateEngine.Cli.resources.dll: 48128 +sdk/x.y.z/pt-BR/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/pt-BR/Microsoft.TemplateEngine.Edge.resources.dll: 22016 +sdk/x.y.z/pt-BR/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 16896 +sdk/x.y.z/pt-BR/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/pt-BR/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/pt-BR/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 10752 +sdk/x.y.z/pt-BR/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/pt-BR/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/pt-BR/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10752 +sdk/x.y.z/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 +sdk/x.y.z/pt-BR/MSBuild.resources.dll: 58880 +sdk/x.y.z/pt-BR/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/pt-BR/vstest.console.resources.dll: 40448 +sdk/x.y.z/ref/Microsoft.Build.Framework.dll: 159232 +sdk/x.y.z/ref/Microsoft.Build.Utilities.Core.dll: 79872 +sdk/x.y.z/ref/mscorlib.dll: 37888 +sdk/x.y.z/ref/netstandard.dll: 1449984 +sdk/x.y.z/Roslyn/bincore/cs/Microsoft.CodeAnalysis.CSharp.resources.dll: 409600 +sdk/x.y.z/Roslyn/bincore/cs/Microsoft.CodeAnalysis.resources.dll: 36352 +sdk/x.y.z/Roslyn/bincore/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 290304 +sdk/x.y.z/Roslyn/bincore/csc.deps.json: 7552 +sdk/x.y.z/Roslyn/bincore/csc.dll: 124928 +sdk/x.y.z/Roslyn/bincore/csc.runtimeconfig.json: 401 +sdk/x.y.z/Roslyn/bincore/de/Microsoft.CodeAnalysis.CSharp.resources.dll: 438272 +sdk/x.y.z/Roslyn/bincore/de/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/Roslyn/bincore/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 306176 +sdk/x.y.z/Roslyn/bincore/es/Microsoft.CodeAnalysis.CSharp.resources.dll: 428544 +sdk/x.y.z/Roslyn/bincore/es/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/Roslyn/bincore/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 301056 +sdk/x.y.z/Roslyn/bincore/fr/Microsoft.CodeAnalysis.CSharp.resources.dll: 438784 +sdk/x.y.z/Roslyn/bincore/fr/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/Roslyn/bincore/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 308224 +sdk/x.y.z/Roslyn/bincore/it/Microsoft.CodeAnalysis.CSharp.resources.dll: 434688 +sdk/x.y.z/Roslyn/bincore/it/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/Roslyn/bincore/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 305664 +sdk/x.y.z/Roslyn/bincore/ja/Microsoft.CodeAnalysis.CSharp.resources.dll: 479744 +sdk/x.y.z/Roslyn/bincore/ja/Microsoft.CodeAnalysis.resources.dll: 41984 +sdk/x.y.z/Roslyn/bincore/ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 341504 +sdk/x.y.z/Roslyn/bincore/ko/Microsoft.CodeAnalysis.CSharp.resources.dll: 439808 +sdk/x.y.z/Roslyn/bincore/ko/Microsoft.CodeAnalysis.resources.dll: 38912 +sdk/x.y.z/Roslyn/bincore/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 310784 +sdk/x.y.z/Roslyn/bincore/Microsoft.CodeAnalysis.CSharp.dll: 18430464 +sdk/x.y.z/Roslyn/bincore/Microsoft.CodeAnalysis.dll: 7611904 +sdk/x.y.z/Roslyn/bincore/Microsoft.CodeAnalysis.VisualBasic.dll: 14136832 +sdk/x.y.z/Roslyn/bincore/pl/Microsoft.CodeAnalysis.CSharp.resources.dll: 440832 +sdk/x.y.z/Roslyn/bincore/pl/Microsoft.CodeAnalysis.resources.dll: 38400 +sdk/x.y.z/Roslyn/bincore/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 315904 +sdk/x.y.z/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll: 420864 +sdk/x.y.z/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.resources.dll: 37376 +sdk/x.y.z/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 295424 +sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.CSharp.resources.dll: 574464 +sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.resources.dll: 48640 +sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 397824 +sdk/x.y.z/Roslyn/bincore/tr/Microsoft.CodeAnalysis.CSharp.resources.dll: 417280 +sdk/x.y.z/Roslyn/bincore/tr/Microsoft.CodeAnalysis.resources.dll: 36864 +sdk/x.y.z/Roslyn/bincore/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 291840 +sdk/x.y.z/Roslyn/bincore/vbc.deps.json: 7637 +sdk/x.y.z/Roslyn/bincore/vbc.dll: 124928 +sdk/x.y.z/Roslyn/bincore/vbc.runtimeconfig.json: 401 +sdk/x.y.z/Roslyn/bincore/VBCSCompiler.deps.json: 9490 +sdk/x.y.z/Roslyn/bincore/VBCSCompiler.dll: 210432 +sdk/x.y.z/Roslyn/bincore/VBCSCompiler.runtimeconfig.json: 401 +sdk/x.y.z/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll: 371200 +sdk/x.y.z/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.resources.dll: 33792 +sdk/x.y.z/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 265728 +sdk/x.y.z/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll: 370688 +sdk/x.y.z/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.resources.dll: 33792 +sdk/x.y.z/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 264704 +sdk/x.y.z/Roslyn/cs/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 9728 +sdk/x.y.z/Roslyn/de/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/es/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/fr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/it/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/ja/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10752 +sdk/x.y.z/Roslyn/ko/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.deps.json: 24346 +sdk/x.y.z/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll: 323072 +sdk/x.y.z/Roslyn/Microsoft.CSharp.Core.targets: 11427 +sdk/x.y.z/Roslyn/Microsoft.Managed.Core.CurrentVersions.targets: 113 +sdk/x.y.z/Roslyn/Microsoft.Managed.Core.targets: 18722 +sdk/x.y.z/Roslyn/Microsoft.VisualBasic.Core.targets: 8562 +sdk/x.y.z/Roslyn/pl/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/pt-BR/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/ru/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 11776 +sdk/x.y.z/Roslyn/tr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 10240 +sdk/x.y.z/Roslyn/zh-Hans/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 9216 +sdk/x.y.z/Roslyn/zh-Hant/Microsoft.Build.Tasks.CodeAnalysis.resources.dll: 9216 +sdk/x.y.z/ru/dotnet.resources.dll: 236032 +sdk/x.y.z/ru/Microsoft.Build.resources.dll: 131072 +sdk/x.y.z/ru/Microsoft.Build.Tasks.Core.resources.dll: 201728 +sdk/x.y.z/ru/Microsoft.Build.Utilities.Core.resources.dll: 32768 +sdk/x.y.z/ru/Microsoft.Deployment.DotNet.Releases.resources.dll: 7168 +sdk/x.y.z/ru/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/ru/Microsoft.DotNet.Cli.Utils.resources.dll: 8704 +sdk/x.y.z/ru/Microsoft.DotNet.Configurer.resources.dll: 7680 +sdk/x.y.z/ru/Microsoft.DotNet.TemplateLocator.resources.dll: 10240 +sdk/x.y.z/ru/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 10240 +sdk/x.y.z/ru/Microsoft.TemplateEngine.Cli.resources.dll: 59392 +sdk/x.y.z/ru/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/ru/Microsoft.TemplateEngine.Edge.resources.dll: 26624 +sdk/x.y.z/ru/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 20992 +sdk/x.y.z/ru/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/ru/Microsoft.TemplateSearch.Common.resources.dll: 6144 +sdk/x.y.z/ru/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 7168 +sdk/x.y.z/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll: 7168 +sdk/x.y.z/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 12800 +sdk/x.y.z/ru/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/ru/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6656 +sdk/x.y.z/ru/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 13312 +sdk/x.y.z/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 15872 +sdk/x.y.z/ru/MSBuild.resources.dll: 77312 +sdk/x.y.z/ru/System.CommandLine.resources.dll: 9728 +sdk/x.y.z/ru/vstest.console.resources.dll: 53248 +sdk/x.y.z/RuntimeIdentifierGraph.json: 76310 +sdk/x.y.z/runtimes/any/native/Microsoft.TestPlatform.targets: 6039 +sdk/x.y.z/runtimes/any/native/NuGet.props: 2523 +sdk/x.y.z/runtimes/any/native/NuGet.RestoreEx.targets: 2846 +sdk/x.y.z/runtimes/any/native/NuGet.targets: 68395 +sdk/x.y.z/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll: 367104 +sdk/x.y.z/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll: 791552 +sdk/x.y.z/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll: 736768 +sdk/x.y.z/runtimes/win/lib/netx.y/System.ServiceProcess.ServiceController.dll: 131072 +sdk/x.y.z/SDKPrecomputedAssemblyReferences.cache: 1704612 +sdk/x.y.z/SdkResolvers/Microsoft.Build.NuGetSdkResolver/Microsoft.Build.NuGetSdkResolver.xml: 279 +sdk/x.y.z/SdkResolvers/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.xml: 97 +sdk/x.y.z/Sdks/FSharp.NET.Sdk/Sdk/Sdk.OnRestore.targets: 896 +sdk/x.y.z/Sdks/FSharp.NET.Sdk/Sdk/Sdk.props: 552 +sdk/x.y.z/Sdks/FSharp.NET.Sdk/Sdk/Sdk.targets: 1838 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.props: 658 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.targets: 3202 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.props: 291 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.targets: 293 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/cs/Microsoft.Build.Tasks.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/de/Microsoft.Build.Tasks.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/es/Microsoft.Build.Tasks.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/fr/Microsoft.Build.Tasks.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/it/Microsoft.Build.Tasks.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/ja/Microsoft.Build.Tasks.Git.resources.dll: 8704 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/ko/Microsoft.Build.Tasks.Git.resources.dll: 8704 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/Microsoft.Build.Tasks.Git.dll: 63488 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/pl/Microsoft.Build.Tasks.Git.resources.dll: 8704 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/pt-BR/Microsoft.Build.Tasks.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/ru/Microsoft.Build.Tasks.Git.resources.dll: 9216 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/tr/Microsoft.Build.Tasks.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hans/Microsoft.Build.Tasks.Git.resources.dll: 7680 +sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll: 7680 +sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.props: 1916 +sdk/x.y.z/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.targets: 1222 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.props: 1288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.targets: 864 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/BlazorWasm.web.config: 1782 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.5_0.targets: 37521 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.6_0.targets: 9663 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.props: 2062 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets: 3411 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.5_0.targets: 9260 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.targets: 12247 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/netx.y/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll: 56320 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/netx.y/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.deps.json: 3582 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/netx.y/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.dll: 14336 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/netx.y/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.runtimeconfig.json: 378 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/netx.y/System.CommandLine.dll: 340480 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.props: 919 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.targets: 819 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/ComputeTargets/Microsoft.NET.Sdk.Publish.ComputeFiles.targets: 3242 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.CopyFiles.targets: 6594 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.FilterFiles.targets: 1671 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/DotNetCLIToolTargets/Microsoft.NET.Sdk.DotNetCLITool.targets: 3848 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.props: 1054 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.targets: 12481 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/Default.pubxml: 617 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultContainer.pubxml: 227 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeploy.pubxml: 512 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeployPackage.pubxml: 504 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultZipDeploy.pubxml: 484 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Container.targets: 692 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Docker.targets: 1816 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.FileSystem.targets: 3899 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Kudu.targets: 2163 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets: 16447 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeployPackage.targets: 14499 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.ZipDeploy.targets: 2718 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Microsoft.NET.Sdk.Publish.TransformFiles.targets: 14612 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentNoLocation.transform: 299 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentWithLocation.transform: 329 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 68096 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 70144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 68608 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 69632 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 68608 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 74240 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 69632 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.NET.Sdk.Publish.Tasks.dll: 584192 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.Web.XmlTransform.dll: 184320 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 69120 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 67584 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 81920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/System.Security.Cryptography.ProtectedData.dll: 33280 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 67072 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 62976 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll: 62976 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.props: 1572 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.targets: 1113 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Mvc.Razor.Extensions.dll: 76800 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Language.dll: 1081856 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.dll: 55296 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.xml: 31698 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.dll: 94208 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.Extensions.ObjectPool.dll: 14848 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.NET.Sdk.Razor.SourceGenerators.deps.json: 17197 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.NET.Sdk.Razor.SourceGenerators.dll: 55808 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/RazorSourceGenerator.razorencconfig: 70 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/System.Collections.Immutable.dll: 242176 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.BeforeCommon.targets: 1444 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.CodeGeneration.targets: 6868 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Compilation.targets: 18055 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Component.targets: 13310 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Configuration.targets: 5217 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.DesignTime.targets: 4657 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.GenerateAssemblyInfo.targets: 10704 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.MvcApplicationPartsDiscovery.targets: 5203 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.props: 862 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.SourceGenerators.targets: 4238 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorComponentWithTargetPath.xaml: 787 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorConfiguration.xaml: 702 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorExtension.xaml: 934 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGeneral.xaml: 871 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGenerateWithTargetPath.xaml: 776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.props: 4077 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.targets: 42907 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/Microsoft.Extensions.FileSystemGlobbing.dll: 80896 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/netx.y/Microsoft.NET.Sdk.Razor.Tasks.dll: 123904 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.AspNetCore.Mvc.Razor.Extensions.dll: 172032 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.AspNetCore.Razor.Language.dll: 2970112 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.AspNetCore.Razor.Utilities.Shared.dll: 98816 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.CodeAnalysis.Razor.dll: 224256 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Css.Parser.dll: 330240 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Extensions.ObjectPool.dll: 25600 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Newtonsoft.Json.dll: 1836544 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.deps.json: 10202 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.dll: 333824 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.runtimeconfig.json: 378 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.props: 1346 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.StaticWebAssets.StaticAssets.ProjectSystem.props: 4890 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.targets: 1024 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.5_0.targets: 33577 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets: 7466 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.CrossTargeting.targets: 4439 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.EmbeddedAssets.targets: 18113 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets: 11399 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.CrossTargeting.targets: 5801 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.targets: 11356 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.props: 930 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Publish.targets: 10699 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets: 10427 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.5_0.targets: 25080 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.targets: 21337 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.SingleTargeting.targets: 822 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.targets: 34808 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.props: 1582 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.targets: 8038 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/netx.y/Microsoft.Css.Parser.dll: 129024 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/netx.y/Microsoft.Extensions.FileSystemGlobbing.dll: 35328 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/netx.y/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll: 135168 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/Microsoft.NET.Sdk.StaticWebAssets.Tool.deps.json: 3576 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/Microsoft.NET.Sdk.StaticWebAssets.Tool.dll: 9216 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/Microsoft.NET.Sdk.StaticWebAssets.Tool.runtimeconfig.json: 378 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/System.CommandLine.dll: 137728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.props: 949 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.targets: 831 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.BeforeCommon.targets: 1022 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.DefaultItems.props: 2101 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.props: 1707 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.targets: 6630 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/netx.y/Microsoft.NET.Sdk.Web.ProjectSystem.Tasks.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll: 32256 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Components.SdkAnalyzers.dll: 34816 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Analyzers.dll: 42496 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Api.Analyzers.dll: 59904 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.props: 1098 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.targets: 1104 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.props: 693 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.targets: 697 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.props: 3729 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.targets: 1563 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/tools/netx.y/Microsoft.NET.Sdk.Web.Tasks.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.props: 1738 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.targets: 935 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/netx.y/Microsoft.NET.Sdk.WebAssembly.Tasks.dll: 5632 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.props: 1258 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.targets: 869 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.props: 3391 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.targets: 1676 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/tools/netx.y/Microsoft.NET.Sdk.Worker.Tasks.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_all_warnaserror.globalconfig: 29104 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_all.globalconfig: 28493 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_default_warnaserror.globalconfig: 7058 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_default.globalconfig: 6001 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_minimum_warnaserror.globalconfig: 11691 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_minimum.globalconfig: 10728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_none_warnaserror.globalconfig: 16105 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_none.globalconfig: 15938 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_recommended_warnaserror.globalconfig: 16222 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_recommended.globalconfig: 15355 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_all_warnaserror.globalconfig: 29028 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_all.globalconfig: 27639 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_default_warnaserror.globalconfig: 5397 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_default.globalconfig: 3428 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_minimum_warnaserror.globalconfig: 11366 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_minimum.globalconfig: 9619 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_none_warnaserror.globalconfig: 16105 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_none.globalconfig: 15938 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_recommended_warnaserror.globalconfig: 16146 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_recommended.globalconfig: 14501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_all_warnaserror.globalconfig: 29443 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_all.globalconfig: 27709 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_default_warnaserror.globalconfig: 4507 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_default.globalconfig: 2167 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_minimum_warnaserror.globalconfig: 11207 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_minimum.globalconfig: 9103 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_none_warnaserror.globalconfig: 16105 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_none.globalconfig: 15938 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_recommended_warnaserror.globalconfig: 16159 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_recommended.globalconfig: 14161 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all_warnaserror.globalconfig: 29434 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all.globalconfig: 27485 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_default_warnaserror.globalconfig: 3001 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_default.globalconfig: 313 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_minimum_warnaserror.globalconfig: 11052 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_minimum.globalconfig: 8729 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_none_warnaserror.globalconfig: 16105 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_none.globalconfig: 15938 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_recommended_warnaserror.globalconfig: 16079 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_recommended.globalconfig: 13864 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_all_warnaserror.globalconfig: 4397 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_all.globalconfig: 4314 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_default_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_default.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_minimum_warnaserror.globalconfig: 1434 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_minimum.globalconfig: 1287 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_none_warnaserror.globalconfig: 1900 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_none.globalconfig: 1733 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_recommended_warnaserror.globalconfig: 1929 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_recommended.globalconfig: 1792 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_all_warnaserror.globalconfig: 4397 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_all.globalconfig: 4314 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_default_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_default.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_minimum_warnaserror.globalconfig: 1434 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_minimum.globalconfig: 1287 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_none_warnaserror.globalconfig: 1900 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_none.globalconfig: 1733 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_recommended_warnaserror.globalconfig: 1929 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_recommended.globalconfig: 1792 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_all_warnaserror.globalconfig: 4397 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_all.globalconfig: 4314 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_default_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_default.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_minimum_warnaserror.globalconfig: 1434 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_minimum.globalconfig: 1287 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_none_warnaserror.globalconfig: 1900 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_none.globalconfig: 1733 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_recommended_warnaserror.globalconfig: 1929 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_recommended.globalconfig: 1792 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_all_warnaserror.globalconfig: 4397 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_all.globalconfig: 4314 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_default_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_default.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_minimum_warnaserror.globalconfig: 1434 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_minimum.globalconfig: 1287 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_none_warnaserror.globalconfig: 1900 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_none.globalconfig: 1733 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_recommended_warnaserror.globalconfig: 1929 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_recommended.globalconfig: 1792 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_all_warnaserror.globalconfig: 592 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_all.globalconfig: 427 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_default_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_default.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_minimum_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_minimum.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_none_warnaserror.globalconfig: 593 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_none.globalconfig: 426 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_recommended_warnaserror.globalconfig: 608 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_recommended.globalconfig: 443 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_all_warnaserror.globalconfig: 592 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_all.globalconfig: 427 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_default_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_default.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_minimum_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_minimum.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_none_warnaserror.globalconfig: 593 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_none.globalconfig: 426 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_recommended_warnaserror.globalconfig: 608 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_recommended.globalconfig: 443 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_all_warnaserror.globalconfig: 592 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_all.globalconfig: 427 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_default_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_default.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_minimum_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_minimum.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_none_warnaserror.globalconfig: 593 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_none.globalconfig: 426 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended_warnaserror.globalconfig: 608 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended.globalconfig: 443 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_all_warnaserror.globalconfig: 592 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_all.globalconfig: 427 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_default_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_default.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_minimum_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_minimum.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_none_warnaserror.globalconfig: 593 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_none.globalconfig: 426 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_recommended_warnaserror.globalconfig: 608 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_8_recommended.globalconfig: 443 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_all_warnaserror.globalconfig: 1302 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_all.globalconfig: 1151 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_default_warnaserror.globalconfig: 609 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_default.globalconfig: 442 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_minimum_warnaserror.globalconfig: 711 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_minimum.globalconfig: 546 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_none_warnaserror.globalconfig: 1027 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_none.globalconfig: 860 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_recommended_warnaserror.globalconfig: 1046 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_recommended.globalconfig: 889 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_all_warnaserror.globalconfig: 1302 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_all.globalconfig: 1151 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_default_warnaserror.globalconfig: 609 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_default.globalconfig: 442 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_minimum_warnaserror.globalconfig: 711 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_minimum.globalconfig: 546 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_none_warnaserror.globalconfig: 1027 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_none.globalconfig: 860 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_recommended_warnaserror.globalconfig: 1046 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_recommended.globalconfig: 889 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_all_warnaserror.globalconfig: 1303 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_all.globalconfig: 1154 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_default_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_default.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_minimum_warnaserror.globalconfig: 613 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_minimum.globalconfig: 448 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_none_warnaserror.globalconfig: 1027 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_none.globalconfig: 860 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_recommended_warnaserror.globalconfig: 1047 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_recommended.globalconfig: 892 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_all_warnaserror.globalconfig: 1303 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_all.globalconfig: 1154 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_default_warnaserror.globalconfig: 511 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_default.globalconfig: 344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum_warnaserror.globalconfig: 613 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum.globalconfig: 448 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_none_warnaserror.globalconfig: 1027 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_none.globalconfig: 860 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_recommended_warnaserror.globalconfig: 1047 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_recommended.globalconfig: 892 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_all_warnaserror.globalconfig: 1422 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_all.globalconfig: 1058 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_default_warnaserror.globalconfig: 1345 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_default.globalconfig: 979 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_minimum_warnaserror.globalconfig: 1430 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_minimum.globalconfig: 1066 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_none_warnaserror.globalconfig: 1421 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_none.globalconfig: 1254 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_recommended_warnaserror.globalconfig: 1438 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_recommended.globalconfig: 1074 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_all_warnaserror.globalconfig: 1424 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_all.globalconfig: 983 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_default_warnaserror.globalconfig: 1140 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_default.globalconfig: 695 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_minimum_warnaserror.globalconfig: 1432 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_minimum.globalconfig: 991 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_none_warnaserror.globalconfig: 1421 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_none.globalconfig: 1254 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_recommended_warnaserror.globalconfig: 1440 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_recommended.globalconfig: 999 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_all_warnaserror.globalconfig: 1427 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_all.globalconfig: 792 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_default_warnaserror.globalconfig: 991 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_default.globalconfig: 350 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_minimum_warnaserror.globalconfig: 1435 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_minimum.globalconfig: 800 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_none_warnaserror.globalconfig: 1421 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_none.globalconfig: 1254 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_recommended_warnaserror.globalconfig: 1443 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_recommended.globalconfig: 808 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_all_warnaserror.globalconfig: 1427 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_all.globalconfig: 792 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_default_warnaserror.globalconfig: 991 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_default.globalconfig: 350 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_minimum_warnaserror.globalconfig: 1435 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_minimum.globalconfig: 800 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_none_warnaserror.globalconfig: 1421 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_none.globalconfig: 1254 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_recommended_warnaserror.globalconfig: 1443 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_recommended.globalconfig: 808 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_all_warnaserror.globalconfig: 1044 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_all.globalconfig: 881 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_default_warnaserror.globalconfig: 883 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_default.globalconfig: 716 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_minimum_warnaserror.globalconfig: 971 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_minimum.globalconfig: 806 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_none_warnaserror.globalconfig: 964 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_none.globalconfig: 797 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_recommended_warnaserror.globalconfig: 979 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_recommended.globalconfig: 814 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_all_warnaserror.globalconfig: 1044 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_all.globalconfig: 881 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_default_warnaserror.globalconfig: 883 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_default.globalconfig: 716 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_minimum_warnaserror.globalconfig: 971 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_minimum.globalconfig: 806 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_none_warnaserror.globalconfig: 964 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_none.globalconfig: 797 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_recommended_warnaserror.globalconfig: 979 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_recommended.globalconfig: 814 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_all_warnaserror.globalconfig: 1044 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_all.globalconfig: 881 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_default_warnaserror.globalconfig: 883 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_default.globalconfig: 716 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_minimum_warnaserror.globalconfig: 971 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_minimum.globalconfig: 806 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_none_warnaserror.globalconfig: 964 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_none.globalconfig: 797 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_recommended_warnaserror.globalconfig: 979 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_recommended.globalconfig: 814 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_all_warnaserror.globalconfig: 1048 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_all.globalconfig: 893 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_default_warnaserror.globalconfig: 515 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_default.globalconfig: 348 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_minimum_warnaserror.globalconfig: 975 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_minimum.globalconfig: 818 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none_warnaserror.globalconfig: 964 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none.globalconfig: 797 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_recommended_warnaserror.globalconfig: 983 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_recommended.globalconfig: 826 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_all_warnaserror.globalconfig: 1801 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_all.globalconfig: 1660 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_default_warnaserror.globalconfig: 587 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_default.globalconfig: 420 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_minimum_warnaserror.globalconfig: 587 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_minimum.globalconfig: 420 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_none_warnaserror.globalconfig: 1414 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_none.globalconfig: 1247 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_recommended_warnaserror.globalconfig: 1437 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_recommended.globalconfig: 1288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_all_warnaserror.globalconfig: 1802 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_all.globalconfig: 1663 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_default_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_default.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_minimum_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_minimum.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_none_warnaserror.globalconfig: 1414 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_none.globalconfig: 1247 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_recommended_warnaserror.globalconfig: 1438 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_recommended.globalconfig: 1291 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_all_warnaserror.globalconfig: 1802 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_all.globalconfig: 1663 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_default_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_default.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_minimum_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_minimum.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_none_warnaserror.globalconfig: 1414 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_none.globalconfig: 1247 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_recommended_warnaserror.globalconfig: 1438 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_recommended.globalconfig: 1291 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_all_warnaserror.globalconfig: 1802 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_all.globalconfig: 1663 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_default_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_default.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_minimum_warnaserror.globalconfig: 497 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_minimum.globalconfig: 330 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_none_warnaserror.globalconfig: 1414 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_none.globalconfig: 1247 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_recommended_warnaserror.globalconfig: 1438 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_recommended.globalconfig: 1291 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_all_warnaserror.globalconfig: 5916 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_all.globalconfig: 5678 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_default_warnaserror.globalconfig: 3259 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_default.globalconfig: 2967 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_minimum_warnaserror.globalconfig: 4919 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_minimum.globalconfig: 4659 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_none_warnaserror.globalconfig: 5079 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_none.globalconfig: 4912 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_recommended_warnaserror.globalconfig: 5112 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_recommended.globalconfig: 4856 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_all_warnaserror.globalconfig: 5926 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_all.globalconfig: 5708 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_default_warnaserror.globalconfig: 2336 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_default.globalconfig: 2044 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_minimum_warnaserror.globalconfig: 4844 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_minimum.globalconfig: 4602 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_none_warnaserror.globalconfig: 5079 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_none.globalconfig: 4912 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_recommended_warnaserror.globalconfig: 5122 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_recommended.globalconfig: 4886 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_all_warnaserror.globalconfig: 6139 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_all.globalconfig: 5935 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_default_warnaserror.globalconfig: 1866 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_default.globalconfig: 1574 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_minimum_warnaserror.globalconfig: 4776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_minimum.globalconfig: 4542 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_none_warnaserror.globalconfig: 5079 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_none.globalconfig: 4912 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_recommended_warnaserror.globalconfig: 5127 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_recommended.globalconfig: 4901 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_all_warnaserror.globalconfig: 6124 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_all.globalconfig: 5951 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_default_warnaserror.globalconfig: 726 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_default.globalconfig: 340 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_minimum_warnaserror.globalconfig: 4615 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_minimum.globalconfig: 4408 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_none_warnaserror.globalconfig: 5079 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_none.globalconfig: 4912 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_recommended_warnaserror.globalconfig: 5041 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_recommended.globalconfig: 4844 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_all_warnaserror.globalconfig: 2093 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_all.globalconfig: 1643 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_default_warnaserror.globalconfig: 1326 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_default.globalconfig: 860 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_minimum_warnaserror.globalconfig: 1707 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_minimum.globalconfig: 1249 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_none_warnaserror.globalconfig: 1694 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_none.globalconfig: 1527 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_recommended_warnaserror.globalconfig: 1715 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_recommended.globalconfig: 1257 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_all_warnaserror.globalconfig: 2095 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_all.globalconfig: 1429 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_default_warnaserror.globalconfig: 1328 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_default.globalconfig: 646 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_minimum_warnaserror.globalconfig: 1709 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_minimum.globalconfig: 1035 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_none_warnaserror.globalconfig: 1694 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_none.globalconfig: 1527 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_recommended_warnaserror.globalconfig: 1717 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_recommended.globalconfig: 1043 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_all_warnaserror.globalconfig: 2097 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_all.globalconfig: 1435 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_default_warnaserror.globalconfig: 1153 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_default.globalconfig: 471 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_minimum_warnaserror.globalconfig: 1711 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_minimum.globalconfig: 1041 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_none_warnaserror.globalconfig: 1694 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_none.globalconfig: 1527 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_recommended_warnaserror.globalconfig: 1719 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_recommended.globalconfig: 1049 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_all_warnaserror.globalconfig: 2098 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_all.globalconfig: 1304 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_default_warnaserror.globalconfig: 1154 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_default.globalconfig: 340 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_minimum_warnaserror.globalconfig: 1712 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_minimum.globalconfig: 910 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_none_warnaserror.globalconfig: 1694 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_none.globalconfig: 1527 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_recommended_warnaserror.globalconfig: 1720 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_recommended.globalconfig: 918 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_all_warnaserror.globalconfig: 10133 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_all.globalconfig: 10150 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_default_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_default.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_minimum_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_minimum.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_none_warnaserror.globalconfig: 2783 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_none.globalconfig: 2616 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_recommended_warnaserror.globalconfig: 2821 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_recommended.globalconfig: 2702 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_all_warnaserror.globalconfig: 10133 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_all.globalconfig: 10150 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_default_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_default.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_minimum_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_minimum.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none_warnaserror.globalconfig: 2783 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none.globalconfig: 2616 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_recommended_warnaserror.globalconfig: 2821 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_recommended.globalconfig: 2702 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_all_warnaserror.globalconfig: 10327 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_all.globalconfig: 10348 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_default_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_default.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_minimum_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_minimum.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_none_warnaserror.globalconfig: 2783 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_none.globalconfig: 2616 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended_warnaserror.globalconfig: 2821 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended.globalconfig: 2702 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all_warnaserror.globalconfig: 10327 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all.globalconfig: 10348 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_default_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_default.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_minimum_warnaserror.globalconfig: 501 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_minimum.globalconfig: 334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_none_warnaserror.globalconfig: 2783 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_none.globalconfig: 2616 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_recommended_warnaserror.globalconfig: 2821 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_recommended.globalconfig: 2702 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all_warnaserror.globalconfig: 4910 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all.globalconfig: 4534 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_default_warnaserror.globalconfig: 2118 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_default.globalconfig: 1684 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_minimum_warnaserror.globalconfig: 3498 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_minimum.globalconfig: 3092 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_none_warnaserror.globalconfig: 3754 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_none.globalconfig: 3587 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_recommended_warnaserror.globalconfig: 3787 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_recommended.globalconfig: 3387 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_all_warnaserror.globalconfig: 4819 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_all.globalconfig: 3936 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_default_warnaserror.globalconfig: 1673 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_default.globalconfig: 622 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_minimum_warnaserror.globalconfig: 3334 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_minimum.globalconfig: 2419 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_none_warnaserror.globalconfig: 3754 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_none.globalconfig: 3587 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_recommended_warnaserror.globalconfig: 3696 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_recommended.globalconfig: 2789 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_all_warnaserror.globalconfig: 4821 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_all.globalconfig: 3763 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_default_warnaserror.globalconfig: 1675 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_default.globalconfig: 449 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_minimum_warnaserror.globalconfig: 3336 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_minimum.globalconfig: 2246 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_none_warnaserror.globalconfig: 3754 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_none.globalconfig: 3587 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_recommended_warnaserror.globalconfig: 3698 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_recommended.globalconfig: 2616 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_all_warnaserror.globalconfig: 4822 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_all.globalconfig: 3642 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_default_warnaserror.globalconfig: 1676 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_default.globalconfig: 328 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_minimum_warnaserror.globalconfig: 3337 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_minimum.globalconfig: 2125 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_none_warnaserror.globalconfig: 3754 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_none.globalconfig: 3587 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_recommended_warnaserror.globalconfig: 3699 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_recommended.globalconfig: 2495 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.props: 3590 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.targets: 90712 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/cs/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 259584 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/de/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 276992 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/es/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 266240 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/fr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 276480 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/it/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 267776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/ja/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 304128 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/ko/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 273408 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll: 104960 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll: 2411520 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers.dll: 84480 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/pl/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 276480 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/pt-BR/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 261632 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/ru/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 360960 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/tr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 268800 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hans/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 231424 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hant/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 233472 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_all.editorconfig: 8922 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_default.editorconfig: 125 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_minimum.editorconfig: 1845 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_none.editorconfig: 9147 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_recommended.editorconfig: 6902 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/Microsoft.CodeAnalysis.CSharp.CodeStyle.targets: 4509 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 30208 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31744 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 18432 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12800 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 33280 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 10240 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 18944 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.dll: 1654784 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll: 614400 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.dll: 576000 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.dll: 707584 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 30720 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17920 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 13824 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 38400 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 10752 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 21504 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 30208 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9728 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 17408 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 28160 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9216 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 16896 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 28160 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll: 9216 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll: 16896 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_all.editorconfig: 3834 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_default.editorconfig: 125 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_minimum.editorconfig: 1269 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_none.editorconfig: 4155 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_recommended.editorconfig: 3069 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.targets: 4664 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 30208 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31744 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12800 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 33280 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.dll: 1654784 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll: 614400 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.dll: 272896 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.dll: 212992 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 12288 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 30720 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 13824 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 38400 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 30208 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 28160 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 5632 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll: 11776 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll: 28160 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll: 5632 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.AfterCommon.targets: 610 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.BeforeCommon.targets: 624 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.NuGet.targets: 1167 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props: 5440 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.targets: 3734 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/GenerateDeps/GenerateDeps.proj: 3374 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.Common.targets: 3286 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.targets: 1697 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.ValidatePackage.targets: 5430 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ClickOnce.targets: 3180 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ComposeStore.targets: 20592 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ConflictResolution.targets: 5917 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.CrossGen.targets: 29305 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultArtifactsPath.props: 2691 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultAssemblyInfo.targets: 1283 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultOutputPaths.targets: 11060 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultPackageConflictOverrides.targets: 10626 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DesignerSupport.targets: 6539 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DisableStandardFrameworkResolution.targets: 1881 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.EolTargetFrameworks.targets: 2198 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateAssemblyInfo.targets: 16217 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateGlobalUsings.targets: 2598 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateSupportedRuntime.targets: 2798 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.NuGetOfflineCache.targets: 2197 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ObsoleteReferences.targets: 1703 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.props: 811 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.targets: 946 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackStubs.targets: 984 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.props: 786 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.targets: 11912 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PreserveCompilationContext.targets: 4736 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Publish.targets: 66064 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets: 20798 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Analyzers.targets: 11476 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommon.targets: 19745 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommonCrossTargeting.targets: 1393 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Common.targets: 3429 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CrossTargeting.targets: 5174 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.props: 1569 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.targets: 2986 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.props: 6755 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.Shared.targets: 13914 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets: 12657 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets: 28363 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.props: 2243 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.targets: 2321 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharpTargetsShim.targets: 4784 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.GetRequiredWorkloads.CrossTargeting.targets: 1291 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportPublishProfile.targets: 2894 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props: 754 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.targets: 3343 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.props: 11144 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Shared.targets: 5470 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.props: 1820 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.targets: 2021 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets: 77863 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.props: 1712 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.targets: 8067 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Workloads.CrossTargeting.targets: 1291 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedPlatforms.props: 897 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedTargetFrameworks.props: 6316 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets: 17116 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.props: 1195 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.targets: 5050 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.WindowsSdkSupportedTargetPlatforms.props: 1768 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets: 27829 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolutionStubs.targets: 1201 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/cs/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/cs/Microsoft.NET.Build.Tasks.resources.dll: 54272 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/de/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/de/Microsoft.NET.Build.Tasks.resources.dll: 57344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/es/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/es/Microsoft.NET.Build.Tasks.resources.dll: 56832 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/fr/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/fr/Microsoft.NET.Build.Tasks.resources.dll: 57344 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/it/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/it/Microsoft.NET.Build.Tasks.resources.dll: 52736 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ja/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ja/Microsoft.NET.Build.Tasks.resources.dll: 53760 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ko/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ko/Microsoft.NET.Build.Tasks.resources.dll: 58368 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.Deployment.DotNet.Releases.dll: 107008 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.DotNet.ApiCompat.Task.dll: 68096 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.DotNet.ApiCompatibility.dll: 103424 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.DotNet.ApiSymbolExtensions.dll: 39424 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.DotNet.PackageValidation.dll: 49152 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.NET.Build.Tasks.dll: 1134592 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pl/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pl/Microsoft.NET.Build.Tasks.resources.dll: 58880 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pt-BR/Microsoft.NET.Build.Tasks.resources.dll: 55296 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.Deployment.DotNet.Releases.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.NET.Build.Tasks.resources.dll: 71680 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/tr/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/tr/Microsoft.NET.Build.Tasks.resources.dll: 55296 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hans/Microsoft.NET.Build.Tasks.resources.dll: 49664 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hant/Microsoft.NET.Build.Tasks.resources.dll: 50176 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.props: 437 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.targets: 3583 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.props: 291 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.targets: 293 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/cs/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/de/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/es/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/fr/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/it/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ja/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7680 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ko/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/Microsoft.SourceLink.AzureRepos.Git.dll: 31232 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7680 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pt-BR/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ru/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 8192 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/tr/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hans/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hant/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.props: 344 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.targets: 3975 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.props: 291 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.targets: 293 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/cs/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/de/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/es/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/fr/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/it/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ja/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/Microsoft.SourceLink.Bitbucket.Git.dll: 26624 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pt-BR/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ru/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 7168 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/tr/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hans/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hant/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/build/InitializeSourceControlInformation.targets: 2550 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.props: 1408 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.targets: 4236 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.props: 291 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.targets: 679 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/cs/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/de/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/es/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/fr/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/it/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/ja/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/ko/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/Microsoft.SourceLink.Common.dll: 15360 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/pl/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/pt-BR/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/ru/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/tr/Microsoft.SourceLink.Common.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hans/Microsoft.SourceLink.Common.resources.dll: 5632 +sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hant/Microsoft.SourceLink.Common.resources.dll: 5632 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.props: 356 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.targets: 3781 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.props: 291 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.targets: 293 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/cs/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/de/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/es/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/fr/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/it/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/ja/Microsoft.SourceLink.GitHub.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/ko/Microsoft.SourceLink.GitHub.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/Microsoft.SourceLink.GitHub.dll: 25088 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/pl/Microsoft.SourceLink.GitHub.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/pt-BR/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/ru/Microsoft.SourceLink.GitHub.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/tr/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hans/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hant/Microsoft.SourceLink.GitHub.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.props: 310 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.targets: 3828 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.props: 291 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.targets: 293 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/cs/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/de/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/es/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/fr/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/it/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/ja/Microsoft.SourceLink.GitLab.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/ko/Microsoft.SourceLink.GitLab.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/Microsoft.SourceLink.GitLab.dll: 25088 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/pl/Microsoft.SourceLink.GitLab.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/pt-BR/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/ru/Microsoft.SourceLink.GitLab.resources.dll: 6656 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/tr/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hans/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hant/Microsoft.SourceLink.GitLab.resources.dll: 6144 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets: 27578 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/buildCrossTargeting/NuGet.Build.Tasks.Pack.targets: 27578 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Build.Tasks.Pack.dll: 244224 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Commands.dll: 2047488 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Common.dll: 364032 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Configuration.dll: 581120 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Credentials.dll: 174592 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.DependencyResolver.Core.dll: 296960 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Frameworks.dll: 456704 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.LibraryModel.dll: 142336 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Packaging.dll: 2077184 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.ProjectModel.dll: 777728 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Protocol.dll: 2803200 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Versioning.dll: 210944 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NOTICES.txt: 52230 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Build.Tasks.Pack.dll: 82432 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Commands.dll: 657408 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Common.dll: 116224 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Configuration.dll: 165888 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Credentials.dll: 58880 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.DependencyResolver.Core.dll: 86528 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Frameworks.dll: 127488 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.LibraryModel.dll: 45568 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Packaging.dll: 738816 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.ProjectModel.dll: 218624 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Protocol.dll: 859648 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Versioning.dll: 59392 +sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/README.md: 41 +sdk/x.y.z/System.CodeDom.dll: 476672 +sdk/x.y.z/System.CommandLine.dll: 340480 +sdk/x.y.z/System.ComponentModel.Composition.dll: 45056 +sdk/x.y.z/System.Configuration.ConfigurationManager.dll: 1062400 +sdk/x.y.z/System.Diagnostics.EventLog.dll: 44032 +sdk/x.y.z/System.Drawing.Common.dll: 155136 +sdk/x.y.z/System.Reflection.MetadataLoadContext.dll: 567808 +sdk/x.y.z/System.Resources.Extensions.dll: 119296 +sdk/x.y.z/System.Security.Cryptography.Pkcs.dll: 623104 +sdk/x.y.z/System.Security.Cryptography.ProtectedData.dll: 33280 +sdk/x.y.z/System.Security.Cryptography.Xml.dll: 440320 +sdk/x.y.z/System.Security.Permissions.dll: 82944 +sdk/x.y.z/System.ServiceProcess.ServiceController.dll: 24064 +sdk/x.y.z/System.Windows.Extensions.dll: 12800 +sdk/x.y.z/testhost-1.0.runtimeconfig.json: 159 +sdk/x.y.z/testhost-1.1.runtimeconfig.json: 159 +sdk/x.y.z/testhost-2.0.runtimeconfig.json: 159 +sdk/x.y.z/testhost-2.1.runtimeconfig.json: 159 +sdk/x.y.z/testhost-3.0.runtimeconfig.json: 159 +sdk/x.y.z/testhost-3.1.runtimeconfig.json: 159 +sdk/x.y.z/testhost-5.0.runtimeconfig.json: 152 +sdk/x.y.z/testhost-6.0.runtimeconfig.json: 152 +sdk/x.y.z/testhost-7.0.runtimeconfig.json: 152 +sdk/x.y.z/testhost-latest.runtimeconfig.json: 193 +sdk/x.y.z/testhost.deps.json: 29456 +sdk/x.y.z/testhost.dll: 77312 +sdk/x.y.z/tr/dotnet.resources.dll: 182272 +sdk/x.y.z/tr/Microsoft.Build.resources.dll: 98816 +sdk/x.y.z/tr/Microsoft.Build.Tasks.Core.resources.dll: 153600 +sdk/x.y.z/tr/Microsoft.Build.Utilities.Core.resources.dll: 25600 +sdk/x.y.z/tr/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/tr/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/tr/Microsoft.DotNet.Cli.Utils.resources.dll: 7680 +sdk/x.y.z/tr/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/tr/Microsoft.DotNet.TemplateLocator.resources.dll: 8704 +sdk/x.y.z/tr/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 8704 +sdk/x.y.z/tr/Microsoft.TemplateEngine.Cli.resources.dll: 48128 +sdk/x.y.z/tr/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/tr/Microsoft.TemplateEngine.Edge.resources.dll: 22016 +sdk/x.y.z/tr/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 16896 +sdk/x.y.z/tr/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/tr/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/tr/Microsoft.TestPlatform.Build.resources.dll: 5632 +sdk/x.y.z/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6656 +sdk/x.y.z/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 10752 +sdk/x.y.z/tr/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/tr/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/tr/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5632 +sdk/x.y.z/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 10240 +sdk/x.y.z/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13312 +sdk/x.y.z/tr/MSBuild.resources.dll: 59392 +sdk/x.y.z/tr/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/tr/vstest.console.resources.dll: 40960 +sdk/x.y.z/trustedroots/codesignctl.pem: 506445 +sdk/x.y.z/trustedroots/timestampctl.pem: 540607 +sdk/x.y.z/vstest.console.deps.json: 40683 +sdk/x.y.z/vstest.console.dll: 767488 +sdk/x.y.z/vstest.console.dll.config: 3391 +sdk/x.y.z/vstest.console.runtimeconfig.json: 369 +sdk/x.y.z/zh-Hans/dotnet.resources.dll: 165888 +sdk/x.y.z/zh-Hans/Microsoft.Build.resources.dll: 90112 +sdk/x.y.z/zh-Hans/Microsoft.Build.Tasks.Core.resources.dll: 141312 +sdk/x.y.z/zh-Hans/Microsoft.Build.Utilities.Core.resources.dll: 23552 +sdk/x.y.z/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/zh-Hans/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 5632 +sdk/x.y.z/zh-Hans/Microsoft.DotNet.Cli.Utils.resources.dll: 7168 +sdk/x.y.z/zh-Hans/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/zh-Hans/Microsoft.DotNet.TemplateLocator.resources.dll: 8192 +sdk/x.y.z/zh-Hans/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 8704 +sdk/x.y.z/zh-Hans/Microsoft.TemplateEngine.Cli.resources.dll: 44544 +sdk/x.y.z/zh-Hans/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/zh-Hans/Microsoft.TemplateEngine.Edge.resources.dll: 19968 +sdk/x.y.z/zh-Hans/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 15872 +sdk/x.y.z/zh-Hans/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/zh-Hans/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.Build.resources.dll: 5120 +sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6144 +sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 9728 +sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/zh-Hans/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5120 +sdk/x.y.z/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 9728 +sdk/x.y.z/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 12800 +sdk/x.y.z/zh-Hans/MSBuild.resources.dll: 52224 +sdk/x.y.z/zh-Hans/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/zh-Hans/vstest.console.resources.dll: 35840 +sdk/x.y.z/zh-Hant/dotnet.resources.dll: 167936 +sdk/x.y.z/zh-Hant/Microsoft.Build.resources.dll: 88576 +sdk/x.y.z/zh-Hant/Microsoft.Build.Tasks.Core.resources.dll: 139264 +sdk/x.y.z/zh-Hant/Microsoft.Build.Utilities.Core.resources.dll: 23552 +sdk/x.y.z/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 +sdk/x.y.z/zh-Hant/Microsoft.DotNet.Cli.Sln.Internal.resources.dll: 6144 +sdk/x.y.z/zh-Hant/Microsoft.DotNet.Cli.Utils.resources.dll: 7168 +sdk/x.y.z/zh-Hant/Microsoft.DotNet.Configurer.resources.dll: 6656 +sdk/x.y.z/zh-Hant/Microsoft.DotNet.TemplateLocator.resources.dll: 8704 +sdk/x.y.z/zh-Hant/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 8704 +sdk/x.y.z/zh-Hant/Microsoft.TemplateEngine.Cli.resources.dll: 44544 +sdk/x.y.z/zh-Hant/Microsoft.TemplateEngine.Core.resources.dll: 5120 +sdk/x.y.z/zh-Hant/Microsoft.TemplateEngine.Edge.resources.dll: 19968 +sdk/x.y.z/zh-Hant/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll: 15872 +sdk/x.y.z/zh-Hant/Microsoft.TemplateEngine.Utils.resources.dll: 5120 +sdk/x.y.z/zh-Hant/Microsoft.TemplateSearch.Common.resources.dll: 5632 +sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.Build.resources.dll: 5120 +sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll: 6144 +sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll: 6656 +sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll: 10240 +sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll: 5632 +sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll: 6144 +sdk/x.y.z/zh-Hant/Microsoft.VisualStudio.TestPlatform.Client.resources.dll: 5120 +sdk/x.y.z/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll: 9728 +sdk/x.y.z/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 12800 +sdk/x.y.z/zh-Hant/MSBuild.resources.dll: 53760 +sdk/x.y.z/zh-Hant/System.CommandLine.resources.dll: 9216 +sdk/x.y.z/zh-Hant/vstest.console.resources.dll: 36352 +shared/Microsoft.AspNetCore.App/x.y.z/.version: 61 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Antiforgery.dll: 100352 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.App.deps.json: 22049 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.App.runtimeconfig.json: 289 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.Abstractions.dll: 47104 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.BearerToken.dll: 48128 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.Cookies.dll: 93184 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.Core.dll: 70144 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.dll: 137728 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.OAuth.dll: 82944 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authorization.dll: 88064 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authorization.Policy.dll: 58880 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Authorization.dll: 37376 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.dll: 777728 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Endpoints.dll: 610304 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Forms.dll: 73728 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Server.dll: 800256 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Web.dll: 370176 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Connections.Abstractions.dll: 49152 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.CookiePolicy.dll: 35840 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Cors.dll: 73728 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Cryptography.Internal.dll: 85504 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll: 25088 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.DataProtection.Abstractions.dll: 28672 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.DataProtection.dll: 401408 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.DataProtection.Extensions.dll: 25600 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Diagnostics.Abstractions.dll: 12288 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Diagnostics.dll: 430592 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll: 31744 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.dll: 94208 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HostFiltering.dll: 24064 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Hosting.Abstractions.dll: 22528 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Hosting.dll: 440320 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll: 8704 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Html.Abstractions.dll: 19456 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Abstractions.dll: 303616 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Connections.Common.dll: 35840 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Connections.dll: 296448 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.dll: 278016 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Extensions.dll: 630784 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Features.dll: 50688 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Results.dll: 230400 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HttpLogging.dll: 162304 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HttpOverrides.dll: 56320 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HttpsPolicy.dll: 29696 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Identity.dll: 527872 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Localization.dll: 46080 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Localization.Routing.dll: 9728 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Metadata.dll: 7168 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.Abstractions.dll: 242688 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.ApiExplorer.dll: 115712 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.Core.dll: 1947648 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.Cors.dll: 31744 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.DataAnnotations.dll: 84992 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.dll: 21504 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.Formatters.Json.dll: 6656 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.Formatters.Xml.dll: 99328 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.Localization.dll: 30208 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.Razor.dll: 220672 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.RazorPages.dll: 438272 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.TagHelpers.dll: 262144 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.ViewFeatures.dll: 706560 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.OutputCaching.dll: 238080 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.RateLimiting.dll: 77312 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Razor.dll: 49664 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Razor.Runtime.dll: 51712 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.RequestDecompression.dll: 30208 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll: 7168 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.ResponseCaching.dll: 131584 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.ResponseCompression.dll: 62464 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Rewrite.dll: 198144 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Routing.Abstractions.dll: 38400 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Routing.dll: 805888 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.HttpSys.dll: 593920 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.IIS.dll: 650752 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.IISIntegration.dll: 33792 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.Kestrel.Core.dll: 2210304 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.Kestrel.dll: 13824 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll: 119296 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll: 222208 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll: 140288 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Session.dll: 70656 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.SignalR.Common.dll: 66560 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.SignalR.Core.dll: 479232 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.SignalR.dll: 16896 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.SignalR.Protocols.Json.dll: 64512 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.StaticFiles.dll: 144384 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.WebSockets.dll: 53248 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.WebUtilities.dll: 240128 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Caching.Abstractions.dll: 37376 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Caching.Memory.dll: 70656 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.Abstractions.dll: 27136 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.Binder.dll: 65536 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.CommandLine.dll: 24064 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.dll: 72704 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.EnvironmentVariables.dll: 16896 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.FileExtensions.dll: 29696 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.Ini.dll: 24064 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.Json.dll: 29184 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.KeyPerFile.dll: 19968 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.UserSecrets.dll: 24576 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Configuration.Xml.dll: 45568 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 117760 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.DependencyInjection.dll: 195584 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Diagnostics.Abstractions.dll: 27136 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Diagnostics.dll: 48640 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll: 20992 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Diagnostics.HealthChecks.dll: 93184 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Features.dll: 24064 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.FileProviders.Abstractions.dll: 14848 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.FileProviders.Composite.dll: 13824 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.FileProviders.Embedded.dll: 53248 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.FileProviders.Physical.dll: 72192 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.FileSystemGlobbing.dll: 80896 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Hosting.Abstractions.dll: 57856 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Hosting.dll: 136704 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Http.dll: 171008 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Identity.Core.dll: 436224 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Identity.Stores.dll: 67584 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Localization.Abstractions.dll: 11776 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Localization.dll: 39936 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.Abstractions.dll: 124928 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.Configuration.dll: 26624 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.Console.dll: 128512 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.Debug.dll: 12800 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.dll: 79360 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.EventLog.dll: 27136 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.EventSource.dll: 44032 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Logging.TraceSource.dll: 19456 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.ObjectPool.dll: 19968 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 18944 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Options.DataAnnotations.dll: 17408 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Options.dll: 118272 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Primitives.dll: 64000 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.WebEncoders.dll: 18432 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.JSInterop.dll: 125440 +shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Net.Http.Headers.dll: 201216 +shared/Microsoft.AspNetCore.App/x.y.z/System.Diagnostics.EventLog.dll: 44032 +shared/Microsoft.AspNetCore.App/x.y.z/System.IO.Pipelines.dll: 169984 +shared/Microsoft.AspNetCore.App/x.y.z/System.Security.Cryptography.Pkcs.dll: 623104 +shared/Microsoft.AspNetCore.App/x.y.z/System.Security.Cryptography.Xml.dll: 440320 +shared/Microsoft.AspNetCore.App/x.y.z/System.Threading.RateLimiting.dll: 145408 +shared/Microsoft.AspNetCore.App/x.y.z/THIRD-PARTY-NOTICES.txt: 18071 +shared/Microsoft.NETCore.App/x.y.z/.version: 60 +shared/Microsoft.NETCore.App/x.y.z/createdump: 990104 +shared/Microsoft.NETCore.App/x.y.z/libclrgc.so: 4942768 +shared/Microsoft.NETCore.App/x.y.z/libclrjit.so: 20432544 +shared/Microsoft.NETCore.App/x.y.z/libcoreclr.so: 54941032 +shared/Microsoft.NETCore.App/x.y.z/libcoreclrtraceptprovider.so: 2203304 +shared/Microsoft.NETCore.App/x.y.z/libhostpolicy.so: 4896160 +shared/Microsoft.NETCore.App/x.y.z/libmscordaccore.so: 20231944 +shared/Microsoft.NETCore.App/x.y.z/libmscordbi.so: 11562200 +shared/Microsoft.NETCore.App/x.y.z/libSystem.Globalization.Native.so: 268920 +shared/Microsoft.NETCore.App/x.y.z/libSystem.IO.Compression.Native.so: 2663400 +shared/Microsoft.NETCore.App/x.y.z/libSystem.Native.so: 387712 +shared/Microsoft.NETCore.App/x.y.z/libSystem.Net.Security.Native.so: 43584 +shared/Microsoft.NETCore.App/x.y.z/libSystem.Security.Cryptography.Native.OpenSsl.so: 413872 +shared/Microsoft.NETCore.App/x.y.z/Microsoft.CSharp.dll: 752128 +shared/Microsoft.NETCore.App/x.y.z/Microsoft.NETCore.App.deps.json: 25834 +shared/Microsoft.NETCore.App/x.y.z/Microsoft.NETCore.App.runtimeconfig.json: 49 +shared/Microsoft.NETCore.App/x.y.z/Microsoft.VisualBasic.Core.dll: 1206272 +shared/Microsoft.NETCore.App/x.y.z/Microsoft.VisualBasic.dll: 7168 +shared/Microsoft.NETCore.App/x.y.z/Microsoft.Win32.Primitives.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/Microsoft.Win32.Registry.dll: 22528 +shared/Microsoft.NETCore.App/x.y.z/mscorlib.dll: 49152 +shared/Microsoft.NETCore.App/x.y.z/netstandard.dll: 90624 +shared/Microsoft.NETCore.App/x.y.z/System.AppContext.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Buffers.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Collections.Concurrent.dll: 175104 +shared/Microsoft.NETCore.App/x.y.z/System.Collections.dll: 235008 +shared/Microsoft.NETCore.App/x.y.z/System.Collections.Immutable.dll: 715776 +shared/Microsoft.NETCore.App/x.y.z/System.Collections.NonGeneric.dll: 82944 +shared/Microsoft.NETCore.App/x.y.z/System.Collections.Specialized.dll: 83456 +shared/Microsoft.NETCore.App/x.y.z/System.ComponentModel.Annotations.dll: 180736 +shared/Microsoft.NETCore.App/x.y.z/System.ComponentModel.DataAnnotations.dll: 6656 +shared/Microsoft.NETCore.App/x.y.z/System.ComponentModel.dll: 7168 +shared/Microsoft.NETCore.App/x.y.z/System.ComponentModel.EventBasedAsync.dll: 26112 +shared/Microsoft.NETCore.App/x.y.z/System.ComponentModel.Primitives.dll: 60416 +shared/Microsoft.NETCore.App/x.y.z/System.ComponentModel.TypeConverter.dll: 732160 +shared/Microsoft.NETCore.App/x.y.z/System.Configuration.dll: 9216 +shared/Microsoft.NETCore.App/x.y.z/System.Console.dll: 186880 +shared/Microsoft.NETCore.App/x.y.z/System.Core.dll: 13312 +shared/Microsoft.NETCore.App/x.y.z/System.Data.Common.dll: 2886144 +shared/Microsoft.NETCore.App/x.y.z/System.Data.DataSetExtensions.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Data.dll: 15360 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.Contracts.dll: 6144 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.Debug.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.DiagnosticSource.dll: 389120 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.FileVersionInfo.dll: 32256 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.Process.dll: 251904 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.StackTrace.dll: 20480 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.TextWriterTraceListener.dll: 49664 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.Tools.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.TraceSource.dll: 123904 +shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.Tracing.dll: 6144 +shared/Microsoft.NETCore.App/x.y.z/System.dll: 39936 +shared/Microsoft.NETCore.App/x.y.z/System.Drawing.dll: 10240 +shared/Microsoft.NETCore.App/x.y.z/System.Drawing.Primitives.dll: 114688 +shared/Microsoft.NETCore.App/x.y.z/System.Dynamic.Runtime.dll: 6144 +shared/Microsoft.NETCore.App/x.y.z/System.Formats.Asn1.dll: 207872 +shared/Microsoft.NETCore.App/x.y.z/System.Formats.Tar.dll: 267264 +shared/Microsoft.NETCore.App/x.y.z/System.Globalization.Calendars.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Globalization.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Globalization.Extensions.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.IO.Compression.Brotli.dll: 61952 +shared/Microsoft.NETCore.App/x.y.z/System.IO.Compression.dll: 239616 +shared/Microsoft.NETCore.App/x.y.z/System.IO.Compression.FileSystem.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.IO.Compression.ZipFile.dll: 45056 +shared/Microsoft.NETCore.App/x.y.z/System.IO.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.IO.FileSystem.AccessControl.dll: 21504 +shared/Microsoft.NETCore.App/x.y.z/System.IO.FileSystem.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.IO.FileSystem.DriveInfo.dll: 68096 +shared/Microsoft.NETCore.App/x.y.z/System.IO.FileSystem.Primitives.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.IO.FileSystem.Watcher.dll: 89600 +shared/Microsoft.NETCore.App/x.y.z/System.IO.IsolatedStorage.dll: 67072 +shared/Microsoft.NETCore.App/x.y.z/System.IO.MemoryMappedFiles.dll: 68096 +shared/Microsoft.NETCore.App/x.y.z/System.IO.Pipes.AccessControl.dll: 13312 +shared/Microsoft.NETCore.App/x.y.z/System.IO.Pipes.dll: 114688 +shared/Microsoft.NETCore.App/x.y.z/System.IO.UnmanagedMemoryStream.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Linq.dll: 412672 +shared/Microsoft.NETCore.App/x.y.z/System.Linq.Expressions.dll: 3681280 +shared/Microsoft.NETCore.App/x.y.z/System.Linq.Parallel.dll: 787968 +shared/Microsoft.NETCore.App/x.y.z/System.Linq.Queryable.dll: 157696 +shared/Microsoft.NETCore.App/x.y.z/System.Memory.dll: 131584 +shared/Microsoft.NETCore.App/x.y.z/System.Net.dll: 7168 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Http.dll: 1658880 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Http.Json.dll: 109568 +shared/Microsoft.NETCore.App/x.y.z/System.Net.HttpListener.dll: 286208 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Mail.dll: 412672 +shared/Microsoft.NETCore.App/x.y.z/System.Net.NameResolution.dll: 71168 +shared/Microsoft.NETCore.App/x.y.z/System.Net.NetworkInformation.dll: 157184 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Ping.dll: 90624 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Primitives.dll: 216064 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Quic.dll: 268800 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Requests.dll: 330240 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Security.dll: 766976 +shared/Microsoft.NETCore.App/x.y.z/System.Net.ServicePoint.dll: 25088 +shared/Microsoft.NETCore.App/x.y.z/System.Net.Sockets.dll: 556032 +shared/Microsoft.NETCore.App/x.y.z/System.Net.WebClient.dll: 153088 +shared/Microsoft.NETCore.App/x.y.z/System.Net.WebHeaderCollection.dll: 47104 +shared/Microsoft.NETCore.App/x.y.z/System.Net.WebProxy.dll: 23040 +shared/Microsoft.NETCore.App/x.y.z/System.Net.WebSockets.Client.dll: 79872 +shared/Microsoft.NETCore.App/x.y.z/System.Net.WebSockets.dll: 170496 +shared/Microsoft.NETCore.App/x.y.z/System.Numerics.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Numerics.Vectors.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.ObjectModel.dll: 57344 +shared/Microsoft.NETCore.App/x.y.z/System.Private.CoreLib.dll: 11714048 +shared/Microsoft.NETCore.App/x.y.z/System.Private.DataContractSerialization.dll: 2083328 +shared/Microsoft.NETCore.App/x.y.z/System.Private.Uri.dll: 223744 +shared/Microsoft.NETCore.App/x.y.z/System.Private.Xml.dll: 8077824 +shared/Microsoft.NETCore.App/x.y.z/System.Private.Xml.Linq.dll: 381440 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.DispatchProxy.dll: 55296 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.dll: 6144 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.Emit.dll: 108544 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.Emit.ILGeneration.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.Emit.Lightweight.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.Extensions.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.Metadata.dll: 1060352 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.Primitives.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Reflection.TypeExtensions.dll: 22016 +shared/Microsoft.NETCore.App/x.y.z/System.Resources.Reader.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Resources.ResourceManager.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Resources.Writer.dll: 32768 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.CompilerServices.Unsafe.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.CompilerServices.VisualC.dll: 9216 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.dll: 33792 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Extensions.dll: 7680 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Handles.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.InteropServices.dll: 75776 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.InteropServices.JavaScript.dll: 28672 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.InteropServices.RuntimeInformation.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Intrinsics.dll: 6656 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Loader.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Numerics.dll: 293888 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Serialization.dll: 7168 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Serialization.Formatters.dll: 294912 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Serialization.Json.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Serialization.Primitives.dll: 18432 +shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Serialization.Xml.dll: 6656 +shared/Microsoft.NETCore.App/x.y.z/System.Security.AccessControl.dll: 48128 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Claims.dll: 80384 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.Algorithms.dll: 7168 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.Cng.dll: 6144 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.Csp.dll: 6144 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.dll: 2121728 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.Encoding.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.OpenSsl.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.Primitives.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.X509Certificates.dll: 7168 +shared/Microsoft.NETCore.App/x.y.z/System.Security.dll: 8192 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Principal.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Security.Principal.Windows.dll: 27136 +shared/Microsoft.NETCore.App/x.y.z/System.Security.SecureString.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.ServiceModel.Web.dll: 6656 +shared/Microsoft.NETCore.App/x.y.z/System.ServiceProcess.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Text.Encoding.CodePages.dll: 839680 +shared/Microsoft.NETCore.App/x.y.z/System.Text.Encoding.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Text.Encoding.Extensions.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Text.Encodings.Web.dll: 105472 +shared/Microsoft.NETCore.App/x.y.z/System.Text.Json.dll: 1400832 +shared/Microsoft.NETCore.App/x.y.z/System.Text.RegularExpressions.dll: 971264 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Channels.dll: 111616 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.dll: 63488 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Overlapped.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Tasks.Dataflow.dll: 474624 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Tasks.dll: 6656 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Tasks.Extensions.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Tasks.Parallel.dll: 109056 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Thread.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.ThreadPool.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Threading.Timer.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Transactions.dll: 6656 +shared/Microsoft.NETCore.App/x.y.z/System.Transactions.Local.dll: 354304 +shared/Microsoft.NETCore.App/x.y.z/System.ValueTuple.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Web.dll: 5120 +shared/Microsoft.NETCore.App/x.y.z/System.Web.HttpUtility.dll: 39424 +shared/Microsoft.NETCore.App/x.y.z/System.Windows.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.dll: 13312 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.Linq.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.ReaderWriter.dll: 11776 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.Serialization.dll: 6144 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.XDocument.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.XmlDocument.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.XmlSerializer.dll: 7680 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.XPath.dll: 5632 +shared/Microsoft.NETCore.App/x.y.z/System.Xml.XPath.XDocument.dll: 7168 +shared/Microsoft.NETCore.App/x.y.z/WindowsBase.dll: 6144 +System.CodeDom.x.y.z.nupkg: 212659 +System.Collections.Immutable.x.y.z.nupkg: 294942 +System.CommandLine.DragonFruit.x.y.z.nupkg: 35871 +System.CommandLine.NamingConventionBinder.x.y.z.nupkg: 125802 +System.CommandLine.Rendering.x.y.z.nupkg: 99656 +System.CommandLine.x.y.z.nupkg: 477483 +System.ComponentModel.Composition.Registration.x.y.z.nupkg: 59361 +System.ComponentModel.Composition.x.y.z.nupkg: 204726 +System.Composition.AttributedModel.x.y.z.nupkg: 33946 +System.Composition.Convention.x.y.z.nupkg: 62678 +System.Composition.Hosting.x.y.z.nupkg: 68347 +System.Composition.Runtime.x.y.z.nupkg: 40996 +System.Composition.TypedParts.x.y.z.nupkg: 72165 +System.Composition.x.y.z.nupkg: 22039 +System.Configuration.ConfigurationManager.x.y.z.nupkg: 430796 +System.Data.Odbc.x.y.z.nupkg: 1017736 +System.Data.OleDb.x.y.z.nupkg: 266793 +System.Diagnostics.DiagnosticSource.x.y.z.nupkg: 189742 +System.Diagnostics.EventLog.x.y.z.nupkg: 167571 +System.Diagnostics.PerformanceCounter.x.y.z.nupkg: 138086 +System.DirectoryServices.AccountManagement.x.y.z.nupkg: 209181 +System.DirectoryServices.Protocols.x.y.z.nupkg: 323674 +System.DirectoryServices.x.y.z.nupkg: 395377 +System.Formats.Asn1.x.y.z.nupkg: 115054 +System.Formats.Cbor.x.y.z.nupkg: 102051 +System.IdentityModel.Tokens.Jwt.x.y.z.nupkg: 39750 +System.IO.Hashing.x.y.z.nupkg: 68024 +System.IO.Packaging.x.y.z.nupkg: 139793 +System.IO.Pipelines.x.y.z.nupkg: 93076 +System.IO.Ports.x.y.z.nupkg: 121487 +System.Management.x.y.z.nupkg: 283048 +System.Memory.Data.x.y.z.nupkg: 45498 +System.Net.Http.Json.x.y.z.nupkg: 70466 +System.Net.Http.WinHttpHandler.x.y.z.nupkg: 109662 +System.Numerics.Tensors.x.y.z.nupkg: 68968 +System.Reflection.Context.x.y.z.nupkg: 91852 +System.Reflection.Metadata.x.y.z.nupkg: 507160 +System.Reflection.MetadataLoadContext.x.y.z.nupkg: 231466 +System.Resources.Extensions.x.y.z.nupkg: 75691 +System.Runtime.Caching.x.y.z.nupkg: 146401 +System.Runtime.Serialization.Schema.x.y.z.nupkg: 51651 +System.Security.Cryptography.Cose.x.y.z.nupkg: 89256 +System.Security.Cryptography.Pkcs.x.y.z.nupkg: 471235 +System.Security.Cryptography.ProtectedData.x.y.z.nupkg: 49954 +System.Security.Cryptography.Xml.x.y.z.nupkg: 194949 +System.Security.Permissions.x.y.z.nupkg: 212116 +System.ServiceModel.Syndication.x.y.z.nupkg: 143295 +System.ServiceProcess.ServiceController.x.y.z.nupkg: 90558 +System.Speech.x.y.z.nupkg: 413522 +System.Text.Encoding.CodePages.x.y.z.nupkg: 1574619 +System.Text.Encodings.Web.x.y.z.nupkg: 120213 +System.Text.Json.x.y.z.nupkg: 736350 +System.Threading.AccessControl.x.y.z.nupkg: 71749 +System.Threading.Channels.x.y.z.nupkg: 100463 +System.Threading.RateLimiting.x.y.z.nupkg: 86036 +System.Threading.Tasks.Dataflow.x.y.z.nupkg: 284094 +System.Windows.Extensions.x.y.z.nupkg: 57411 +templates/x.y.z/microsoft.dotnet.common.itemtemplates.x.y.z.nupkg: 145533 +templates/x.y.z/microsoft.dotnet.common.projecttemplates.x.y.z.nupkg: 147057 +templates/x.y.z/microsoft.dotnet.test.projecttemplates.x.y.z.nupkg: 111591 +templates/x.y.z/microsoft.dotnet.web.itemtemplates.x.y.z.nupkg: 63716 +templates/x.y.z/microsoft.dotnet.web.projecttemplates.x.y.z.nupkg: 5782657 +ThirdPartyNotices.txt: 78664 +Valleysoft.DockerCredsProvider.x.y.z.nupkg: 11484 +xunit.core.x.y.z.nupkg: 6133 +xunit.extensibility.core.x.y.z.nupkg: 79917 +xunit.extensibility.execution.x.y.z.nupkg: 292426 +xunit.runner.utility.x.y.z.nupkg: 268740 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkFiles.diff b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkFiles.diff index 1d80c0e06892..434883537585 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkFiles.diff +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkFiles.diff @@ -45,9 +45,9 @@ index ------------ ./packs/Microsoft.NETCore.App.Ref/x.y.z/ ./packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/ @@ ------------ @@ + ./packs/NETStandard.Library.Ref/x.y.z/ref/netstandard2.1/System.Xml.XPath.XDocument.dll ./sdk-manifests/ ./sdk-manifests/x.y.z/ - ./sdk-manifests/x.y.z/ -./sdk-manifests/x.y.z/ ./sdk-manifests/x.y.z/microsoft.net.workload.emscripten.current/ ./sdk-manifests/x.y.z/microsoft.net.workload.emscripten.current/x.y.z/ @@ -147,15 +147,12 @@ index ------------ -./sdk/x.y.z/Containers/containerize/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll -./sdk/x.y.z/Containers/containerize/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll -./sdk/x.y.z/Containers/containerize/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll --./sdk/x.y.z/Containers/containerize/runtimes/win/lib/netx.y/System.Windows.Extensions.dll -./sdk/x.y.z/Containers/containerize/System.CommandLine.dll -./sdk/x.y.z/Containers/containerize/System.Configuration.ConfigurationManager.dll -./sdk/x.y.z/Containers/containerize/System.Diagnostics.EventLog.dll -./sdk/x.y.z/Containers/containerize/System.Reflection.MetadataLoadContext.dll -./sdk/x.y.z/Containers/containerize/System.Security.Cryptography.Pkcs.dll -./sdk/x.y.z/Containers/containerize/System.Security.Cryptography.ProtectedData.dll --./sdk/x.y.z/Containers/containerize/System.Security.Permissions.dll --./sdk/x.y.z/Containers/containerize/System.Windows.Extensions.dll -./sdk/x.y.z/Containers/containerize/tr/ -./sdk/x.y.z/Containers/containerize/tr/Microsoft.DotNet.Cli.Utils.resources.dll -./sdk/x.y.z/Containers/containerize/tr/Microsoft.NET.Build.Containers.resources.dll @@ -251,7 +248,6 @@ index ------------ -./sdk/x.y.z/Containers/tasks/net472/System.Reflection.MetadataLoadContext.dll -./sdk/x.y.z/Containers/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll -./sdk/x.y.z/Containers/tasks/net472/System.Security.AccessControl.dll --./sdk/x.y.z/Containers/tasks/net472/System.Security.Permissions.dll -./sdk/x.y.z/Containers/tasks/net472/System.Security.Principal.Windows.dll -./sdk/x.y.z/Containers/tasks/net472/System.Text.Encodings.Web.dll -./sdk/x.y.z/Containers/tasks/net472/System.Text.Json.dll diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.arcade.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.arcade.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.arcade.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.aspnetcore.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.aspnetcore.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.aspnetcore.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.cecil.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.cecil.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.cecil.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.command-line-api.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.command-line-api.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.command-line-api.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.deployment-tools.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.deployment-tools.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.deployment-tools.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.diagnostics.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.diagnostics.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.diagnostics.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.emsdk.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.emsdk.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.emsdk.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.format.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.format.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.format.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.fsharp.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.fsharp.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.fsharp.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.installer.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.installer.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.installer.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.msbuild.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.msbuild.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.msbuild.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.nuget-client.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.nuget-client.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.nuget-client.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.razor.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.razor.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.razor.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.roslyn-analyzers.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.roslyn-analyzers.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.roslyn-analyzers.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.roslyn.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.roslyn.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.roslyn.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.runtime.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.runtime.json new file mode 100644 index 000000000000..472899b4c5ff --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.runtime.json @@ -0,0 +1,20 @@ +{ + "files": [ + { + "path": "src/tests/GC/Scenarios/GCBench/THIRD-PARTY-NOTICES", + "detected_license_expression": "unknown-license-reference" + }, + { + "path": "src/tests/JIT/Performance/CodeQuality/Benchstones/BenchF/LLoops/THIRD-PARTY-NOTICES", + "detected_license_expression": "unknown-license-reference" + }, + { + "path": "src/tests/JIT/Performance/CodeQuality/Benchstones/MDBenchF/MDLLoops/THIRD-PARTY-NOTICES", + "detected_license_expression": "unknown-license-reference" + }, + { + "path": "src/tests/JIT/Performance/CodeQuality/V8/Richards/THIRD-PARTY-NOTICES", + "detected_license_expression": "unknown-license-reference" + } + ] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.scenario-tests.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.scenario-tests.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.scenario-tests.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.sdk.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.sdk.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.sdk.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-externals.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-externals.json new file mode 100644 index 000000000000..42c3e68954ce --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-externals.json @@ -0,0 +1,12 @@ +{ + "files": [ + { + "path": "src/application-insights/LOGGING/ThirdPartyNotices.txt", + "detected_license_expression": "unknown AND apache-2.0 AND mit AND bsd-new" + }, + { + "path": "src/application-insights/WEB/ThirdPartyNotices.txt", + "detected_license_expression": "bsd-new AND mit AND ms-pl AND apache-2.0 AND (cc-by-3.0-us AND cc-by-3.0 AND mit) AND ms-net-library AND ms-rl" + } + ] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-reference-packages.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-reference-packages.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-reference-packages.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.sourcelink.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.sourcelink.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.sourcelink.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.symreader.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.symreader.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.symreader.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.templating.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.templating.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.templating.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.test-templates.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.test-templates.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.test-templates.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.vstest.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.vstest.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.vstest.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.xdt.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.xdt.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.xdt.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.xliff-tasks.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.xliff-tasks.json new file mode 100644 index 000000000000..6941fa698db2 --- /dev/null +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.xliff-tasks.json @@ -0,0 +1,3 @@ +{ + "files": [] +} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config index 42d4b6334aee..df314102050b 100644 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config +++ b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config @@ -3,7 +3,7 @@ - - + + diff --git a/src/SourceBuild/patches/arcade/0001-Use-net9.0-for-task-assembly-paths.patch b/src/SourceBuild/patches/arcade/0001-Use-net9.0-for-task-assembly-paths.patch new file mode 100644 index 000000000000..71bac92129b0 --- /dev/null +++ b/src/SourceBuild/patches/arcade/0001-Use-net9.0-for-task-assembly-paths.patch @@ -0,0 +1,232 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Thu, 16 Nov 2023 14:42:59 -0600 +Subject: [PATCH] Use net9.0 for task assembly paths + +Backport: https://github.com/dotnet/source-build/issues/3743 +--- + .../tools/BuildReleasePackages.targets | 2 +- + src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props | 2 +- + .../build/Microsoft.DotNet.Build.Tasks.Installers.props | 2 +- + .../src/build/Packaging.common.targets | 2 +- + .../build/Microsoft.DotNet.Build.Tasks.TargetFramework.props | 2 +- + .../src/build/Microsoft.DotNet.Build.Tasks.Workloads.props | 2 +- + .../build/Microsoft.DotNet.Deployment.Tasks.Links.props | 2 +- + .../build/Microsoft.DotNet.GenFacades.targets | 2 +- + .../Sdk/tools/Microsoft.DotNet.Helix.Sdk.props | 2 +- + .../build/Microsoft.DotNet.PackageTesting.props | 2 +- + src/Microsoft.DotNet.SharedFramework.Sdk/sdk/Sdk.props | 2 +- + .../build/Microsoft.DotNet.SignTool.props | 2 +- + .../tasks/build/Microsoft.DotNet.SourceBuild.Tasks.props | 2 +- + .../build/Microsoft.DotNet.SwaggerGenerator.MSBuild.props | 2 +- + .../src/build/Microsoft.DotNet.XUnitConsoleRunner.props | 2 +- + .../build/Microsoft.DotNet.XliffTasks.targets | 2 +- + 16 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildReleasePackages.targets b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildReleasePackages.targets +index af86865d..751a79c4 100644 +--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildReleasePackages.targets ++++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildReleasePackages.targets +@@ -2,7 +2,7 @@ + + + <_NuGetRepackAssembly Condition="'$(MSBuildRuntimeType)' != 'Core'">$(NuGetPackageRoot)microsoft.dotnet.nugetrepack.tasks\$(MicrosoftDotnetNuGetRepackTasksVersion)\tools\net472\Microsoft.DotNet.NuGetRepack.Tasks.dll +- <_NuGetRepackAssembly Condition="'$(MSBuildRuntimeType)' == 'Core'">$(NuGetPackageRoot)microsoft.dotnet.nugetrepack.tasks\$(MicrosoftDotnetNuGetRepackTasksVersion)\tools\net8.0\Microsoft.DotNet.NuGetRepack.Tasks.dll ++ <_NuGetRepackAssembly Condition="'$(MSBuildRuntimeType)' == 'Core'">$(NuGetPackageRoot)microsoft.dotnet.nugetrepack.tasks\$(MicrosoftDotnetNuGetRepackTasksVersion)\tools\net9.0\Microsoft.DotNet.NuGetRepack.Tasks.dll + + + +diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props +index 39214fef..74755a09 100644 +--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props ++++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/BuildTasks.props +@@ -2,6 +2,6 @@ + + + $(MSBuildThisFileDirectory)net472\Microsoft.DotNet.Arcade.Sdk.dll +- $(MSBuildThisFileDirectory)net8.0\Microsoft.DotNet.Arcade.Sdk.dll ++ $(MSBuildThisFileDirectory)net9.0\Microsoft.DotNet.Arcade.Sdk.dll + + +diff --git a/src/Microsoft.DotNet.Build.Tasks.Installers/build/Microsoft.DotNet.Build.Tasks.Installers.props b/src/Microsoft.DotNet.Build.Tasks.Installers/build/Microsoft.DotNet.Build.Tasks.Installers.props +index a7910488..6a8895b5 100644 +--- a/src/Microsoft.DotNet.Build.Tasks.Installers/build/Microsoft.DotNet.Build.Tasks.Installers.props ++++ b/src/Microsoft.DotNet.Build.Tasks.Installers/build/Microsoft.DotNet.Build.Tasks.Installers.props +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)..\tools\net8.0\Microsoft.DotNet.Build.Tasks.Installers.dll ++ $(MSBuildThisFileDirectory)..\tools\net9.0\Microsoft.DotNet.Build.Tasks.Installers.dll + $(MSBuildThisFileDirectory)..\tools\net472\Microsoft.DotNet.Build.Tasks.Installers.dll + $(MSBuildThisFileDirectory) + +diff --git a/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.common.targets b/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.common.targets +index 99b1d490..4ae4de45 100644 +--- a/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.common.targets ++++ b/src/Microsoft.DotNet.Build.Tasks.Packaging/src/build/Packaging.common.targets +@@ -4,7 +4,7 @@ + + + +- $(MSBuildThisFileDirectory)../tools/net8.0/ ++ $(MSBuildThisFileDirectory)../tools/net9.0/ + $(MSBuildThisFileDirectory)../tools/net472/ + $(MSBuildThisFileDirectory)runtime.json + +diff --git a/src/Microsoft.DotNet.Build.Tasks.TargetFramework/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.props b/src/Microsoft.DotNet.Build.Tasks.TargetFramework/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.props +index 9712b0ad..801ec5cd 100644 +--- a/src/Microsoft.DotNet.Build.Tasks.TargetFramework/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.props ++++ b/src/Microsoft.DotNet.Build.Tasks.TargetFramework/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.props +@@ -1,7 +1,7 @@ + + + +- ..\tools\net8.0\Microsoft.DotNet.Build.Tasks.TargetFramework.dll ++ ..\tools\net9.0\Microsoft.DotNet.Build.Tasks.TargetFramework.dll + ..\tools\net472\Microsoft.DotNet.Build.Tasks.TargetFramework.dll + + +diff --git a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/build/Microsoft.DotNet.Build.Tasks.Workloads.props b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/build/Microsoft.DotNet.Build.Tasks.Workloads.props +index b7e95130..900fdb47 100644 +--- a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/build/Microsoft.DotNet.Build.Tasks.Workloads.props ++++ b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/build/Microsoft.DotNet.Build.Tasks.Workloads.props +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)..\tools\net8.0\Microsoft.DotNet.Build.Tasks.Workloads.dll ++ $(MSBuildThisFileDirectory)..\tools\net9.0\Microsoft.DotNet.Build.Tasks.Workloads.dll + $(MSBuildThisFileDirectory)..\tools\net472\Microsoft.DotNet.Build.Tasks.Workloads.dll + + +diff --git a/src/Microsoft.DotNet.Deployment.Tasks.Links/build/Microsoft.DotNet.Deployment.Tasks.Links.props b/src/Microsoft.DotNet.Deployment.Tasks.Links/build/Microsoft.DotNet.Deployment.Tasks.Links.props +index 3ff65b8c..dcc23986 100644 +--- a/src/Microsoft.DotNet.Deployment.Tasks.Links/build/Microsoft.DotNet.Deployment.Tasks.Links.props ++++ b/src/Microsoft.DotNet.Deployment.Tasks.Links/build/Microsoft.DotNet.Deployment.Tasks.Links.props +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)net8.0\Microsoft.DotNet.Deployment.Tasks.Links.dll ++ $(MSBuildThisFileDirectory)net9.0\Microsoft.DotNet.Deployment.Tasks.Links.dll + $(MSBuildThisFileDirectory)net472\Microsoft.DotNet.Deployment.Tasks.Links.dll + + +diff --git a/src/Microsoft.DotNet.GenFacades/build/Microsoft.DotNet.GenFacades.targets b/src/Microsoft.DotNet.GenFacades/build/Microsoft.DotNet.GenFacades.targets +index 65045a3a..98f22ef3 100644 +--- a/src/Microsoft.DotNet.GenFacades/build/Microsoft.DotNet.GenFacades.targets ++++ b/src/Microsoft.DotNet.GenFacades/build/Microsoft.DotNet.GenFacades.targets +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)..\tools\net8.0\Microsoft.DotNet.GenFacades.dll ++ $(MSBuildThisFileDirectory)..\tools\net9.0\Microsoft.DotNet.GenFacades.dll + $(MSBuildThisFileDirectory)..\tools\net472\Microsoft.DotNet.GenFacades.dll + + +diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/Microsoft.DotNet.Helix.Sdk.props b/src/Microsoft.DotNet.Helix/Sdk/tools/Microsoft.DotNet.Helix.Sdk.props +index 1c51c182..ec91afae 100644 +--- a/src/Microsoft.DotNet.Helix/Sdk/tools/Microsoft.DotNet.Helix.Sdk.props ++++ b/src/Microsoft.DotNet.Helix/Sdk/tools/Microsoft.DotNet.Helix.Sdk.props +@@ -4,7 +4,7 @@ + + + +- $(MSBuildThisFileDirectory)net8.0/Microsoft.DotNet.Helix.Sdk.dll ++ $(MSBuildThisFileDirectory)net9.0/Microsoft.DotNet.Helix.Sdk.dll + $(MSBuildThisFileDirectory)net472/Microsoft.DotNet.Helix.Sdk.dll + + +diff --git a/src/Microsoft.DotNet.PackageTesting/build/Microsoft.DotNet.PackageTesting.props b/src/Microsoft.DotNet.PackageTesting/build/Microsoft.DotNet.PackageTesting.props +index 82850655..394ed5cc 100644 +--- a/src/Microsoft.DotNet.PackageTesting/build/Microsoft.DotNet.PackageTesting.props ++++ b/src/Microsoft.DotNet.PackageTesting/build/Microsoft.DotNet.PackageTesting.props +@@ -3,7 +3,7 @@ + + + $(MSBuildThisFileDirectory)..\tools\net472\Microsoft.DotNet.PackageTesting.dll +- $(MSBuildThisFileDirectory)..\tools\net8.0\Microsoft.DotNet.PackageTesting.dll ++ $(MSBuildThisFileDirectory)..\tools\net9.0\Microsoft.DotNet.PackageTesting.dll + + + +diff --git a/src/Microsoft.DotNet.SharedFramework.Sdk/sdk/Sdk.props b/src/Microsoft.DotNet.SharedFramework.Sdk/sdk/Sdk.props +index 44951b96..77176b15 100644 +--- a/src/Microsoft.DotNet.SharedFramework.Sdk/sdk/Sdk.props ++++ b/src/Microsoft.DotNet.SharedFramework.Sdk/sdk/Sdk.props +@@ -9,7 +9,7 @@ + --> + + +- $(MSBuildThisFileDirectory)../tools/net8.0/ ++ $(MSBuildThisFileDirectory)../tools/net9.0/ + $(MSBuildThisFileDirectory)../tools/net472/ + + +diff --git a/src/Microsoft.DotNet.SignTool/build/Microsoft.DotNet.SignTool.props b/src/Microsoft.DotNet.SignTool/build/Microsoft.DotNet.SignTool.props +index 369cb60a..3522d8c5 100644 +--- a/src/Microsoft.DotNet.SignTool/build/Microsoft.DotNet.SignTool.props ++++ b/src/Microsoft.DotNet.SignTool/build/Microsoft.DotNet.SignTool.props +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)..\lib\net8.0\Microsoft.DotNet.SignTool.dll ++ $(MSBuildThisFileDirectory)..\lib\net9.0\Microsoft.DotNet.SignTool.dll + $(MSBuildThisFileDirectory)..\lib\net472\Microsoft.DotNet.SignTool.dll + + +diff --git a/src/Microsoft.DotNet.SourceBuild/tasks/build/Microsoft.DotNet.SourceBuild.Tasks.props b/src/Microsoft.DotNet.SourceBuild/tasks/build/Microsoft.DotNet.SourceBuild.Tasks.props +index 9dc4c6cc..a49ee2b6 100644 +--- a/src/Microsoft.DotNet.SourceBuild/tasks/build/Microsoft.DotNet.SourceBuild.Tasks.props ++++ b/src/Microsoft.DotNet.SourceBuild/tasks/build/Microsoft.DotNet.SourceBuild.Tasks.props +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)..\tools\net8.0\$(MSBuildThisFileName).dll ++ $(MSBuildThisFileDirectory)..\tools\net9.0\$(MSBuildThisFileName).dll + $(MSBuildThisFileDirectory)..\tools\net472\$(MSBuildThisFileName).dll + + +diff --git a/src/Microsoft.DotNet.SwaggerGenerator/Microsoft.DotNet.SwaggerGenerator.MSBuild/build/Microsoft.DotNet.SwaggerGenerator.MSBuild.props b/src/Microsoft.DotNet.SwaggerGenerator/Microsoft.DotNet.SwaggerGenerator.MSBuild/build/Microsoft.DotNet.SwaggerGenerator.MSBuild.props +index 5362d800..1ae4e21c 100644 +--- a/src/Microsoft.DotNet.SwaggerGenerator/Microsoft.DotNet.SwaggerGenerator.MSBuild/build/Microsoft.DotNet.SwaggerGenerator.MSBuild.props ++++ b/src/Microsoft.DotNet.SwaggerGenerator/Microsoft.DotNet.SwaggerGenerator.MSBuild/build/Microsoft.DotNet.SwaggerGenerator.MSBuild.props +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)../tools/net8.0/Microsoft.DotNet.SwaggerGenerator.MSBuild.dll ++ $(MSBuildThisFileDirectory)../tools/net9.0/Microsoft.DotNet.SwaggerGenerator.MSBuild.dll + $(MSBuildThisFileDirectory)../tools/net472/Microsoft.DotNet.SwaggerGenerator.MSBuild.dll + + +diff --git a/src/Microsoft.DotNet.XUnitConsoleRunner/src/build/Microsoft.DotNet.XUnitConsoleRunner.props b/src/Microsoft.DotNet.XUnitConsoleRunner/src/build/Microsoft.DotNet.XUnitConsoleRunner.props +index 09142a05..0af5cf87 100644 +--- a/src/Microsoft.DotNet.XUnitConsoleRunner/src/build/Microsoft.DotNet.XUnitConsoleRunner.props ++++ b/src/Microsoft.DotNet.XUnitConsoleRunner/src/build/Microsoft.DotNet.XUnitConsoleRunner.props +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)..\tools\net8.0\xunit.console.dll ++ $(MSBuildThisFileDirectory)..\tools\net9.0\xunit.console.dll + + + +diff --git a/src/Microsoft.DotNet.XliffTasks/build/Microsoft.DotNet.XliffTasks.targets b/src/Microsoft.DotNet.XliffTasks/build/Microsoft.DotNet.XliffTasks.targets +index 2bce08cd..d45f1cb2 100644 +--- a/src/Microsoft.DotNet.XliffTasks/build/Microsoft.DotNet.XliffTasks.targets ++++ b/src/Microsoft.DotNet.XliffTasks/build/Microsoft.DotNet.XliffTasks.targets +@@ -2,7 +2,7 @@ + + + +- $(MSBuildThisFileDirectory)..\tools\net8.0\ ++ $(MSBuildThisFileDirectory)..\tools\net9.0\ + $(MSBuildThisFileDirectory)..\tools\net472\ + $(XliffTasksDirectory)Microsoft.DotNet.XliffTasks.dll + diff --git a/src/SourceBuild/patches/arcade/0002-Target-net9.0-for-arcade-projects.patch b/src/SourceBuild/patches/arcade/0002-Target-net9.0-for-arcade-projects.patch new file mode 100644 index 000000000000..9dd18d1c6418 --- /dev/null +++ b/src/SourceBuild/patches/arcade/0002-Target-net9.0-for-arcade-projects.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Thu, 16 Nov 2023 14:48:18 -0600 +Subject: [PATCH] Target net9.0 for arcade projects + +Backport: https://github.com/dotnet/source-build/issues/3743 +--- + Directory.Build.props | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Directory.Build.props b/Directory.Build.props +index 32befcfc..2285cc5d 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -9,6 +9,7 @@ + embedded + true + Latest ++ net9.0 + + +- net8.0 ++ net9.0 + + +- net7.0 ++ net8.0 + + diff --git a/src/SourceBuild/patches/command-line-api/0001-Allow-override-of-build-tool-framework-version.patch b/src/SourceBuild/patches/command-line-api/0001-Allow-override-of-build-tool-framework-version.patch new file mode 100644 index 000000000000..e79bb7f500ba --- /dev/null +++ b/src/SourceBuild/patches/command-line-api/0001-Allow-override-of-build-tool-framework-version.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nikola Milosavljevic +Date: Mon, 30 Oct 2023 22:45:58 +0000 +Subject: [PATCH] Allow override of build tool framework version + +Backport: https://github.com/dotnet/command-line-api/pull/2283 +--- + eng/common/tools.sh | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/eng/common/tools.sh b/eng/common/tools.sh +index 2f27d745..422e711d 100644 +--- a/eng/common/tools.sh ++++ b/eng/common/tools.sh +@@ -312,7 +312,12 @@ function InitializeBuildTool { + # return values + _InitializeBuildTool="$_InitializeDotNetCli/dotnet" + _InitializeBuildToolCommand="msbuild" +- _InitializeBuildToolFramework="net7.0" ++ # use override if it exists - commonly set by source-build ++ if [[ -z "${_OverrideArcadeInitializeBuildToolFramework}" ]]; then ++ _InitializeBuildToolFramework="net7.0" ++ else ++ _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" ++ fi + } + + # Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116 diff --git a/src/SourceBuild/patches/deployment-tools/0001-Disable-trimmable-for-DotNet.Releases-project.patch b/src/SourceBuild/patches/deployment-tools/0001-Disable-trimmable-for-DotNet.Releases-project.patch deleted file mode 100644 index f8a5bc0de04e..000000000000 --- a/src/SourceBuild/patches/deployment-tools/0001-Disable-trimmable-for-DotNet.Releases-project.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Matt Thalman -Date: Fri, 11 Aug 2023 12:03:41 -0500 -Subject: [PATCH] Disable trimmable for DotNet.Releases project - -Backport: https://github.com/dotnet/deployment-tools/issues/288 ---- - .../src/Microsoft.Deployment.DotNet.Releases.csproj | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/Microsoft.Deployment.DotNet.Releases/src/Microsoft.Deployment.DotNet.Releases.csproj b/src/Microsoft.Deployment.DotNet.Releases/src/Microsoft.Deployment.DotNet.Releases.csproj -index ee19600..2e50a3a 100644 ---- a/src/Microsoft.Deployment.DotNet.Releases/src/Microsoft.Deployment.DotNet.Releases.csproj -+++ b/src/Microsoft.Deployment.DotNet.Releases/src/Microsoft.Deployment.DotNet.Releases.csproj -@@ -5,8 +5,8 @@ - 0 - 6 - true -- true -- true -+ false -+ false - - - diff --git a/src/SourceBuild/patches/format/0001-Explicitly-set-TFM-to-net9.0.patch b/src/SourceBuild/patches/format/0001-Explicitly-set-TFM-to-net9.0.patch new file mode 100644 index 000000000000..ac34d93389d8 --- /dev/null +++ b/src/SourceBuild/patches/format/0001-Explicitly-set-TFM-to-net9.0.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Wed, 18 Oct 2023 12:50:21 -0500 +Subject: [PATCH] Explicitly set TFM to net9.0 + +Backport: https://github.com/dotnet/source-build/issues/3663 +--- + perf/dotnet-format.Performance.csproj | 2 +- + src/dotnet-format.csproj | 2 +- + tests/dotnet-format.UnitTests.csproj | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/perf/dotnet-format.Performance.csproj b/perf/dotnet-format.Performance.csproj +index 677b7b9a..3e1387d1 100644 +--- a/perf/dotnet-format.Performance.csproj ++++ b/perf/dotnet-format.Performance.csproj +@@ -1,7 +1,7 @@ +  + + +- $(NetCurrent) ++ net9.0 + Exe + true + Release +diff --git a/src/dotnet-format.csproj b/src/dotnet-format.csproj +index 5549fb71..8a77d03f 100644 +--- a/src/dotnet-format.csproj ++++ b/src/dotnet-format.csproj +@@ -1,7 +1,7 @@ +  + + +- $(NetCurrent) ++ net9.0 + Exe + Microsoft.CodeAnalysis.Tools + true +diff --git a/tests/dotnet-format.UnitTests.csproj b/tests/dotnet-format.UnitTests.csproj +index c4311a1a..5b1bcfb9 100644 +--- a/tests/dotnet-format.UnitTests.csproj ++++ b/tests/dotnet-format.UnitTests.csproj +@@ -1,7 +1,7 @@ +  + + +- $(NetCurrent) ++ net9.0 + Microsoft.CodeAnalysis.Tools.Tests + + diff --git a/src/SourceBuild/patches/fsharp/0001-Explicitly-set-net9.0-TFM.patch b/src/SourceBuild/patches/fsharp/0001-Explicitly-set-net9.0-TFM.patch new file mode 100644 index 000000000000..a00a0540327d --- /dev/null +++ b/src/SourceBuild/patches/fsharp/0001-Explicitly-set-net9.0-TFM.patch @@ -0,0 +1,640 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Thu, 19 Oct 2023 08:33:01 -0500 +Subject: [PATCH] Explicitly use net9.0 TFM + +Backport: https://github.com/dotnet/source-build/issues/3663 +--- + Directory.Build.props | 4 +-- + buildtools/AssemblyCheck/AssemblyCheck.fsproj | 2 +- + .../FSharp.Compiler.Service_notshipped.fsproj | 2 +- + buildtools/fslex/fslex.fsproj | 2 +- + buildtools/fsyacc/fsyacc.fsproj | 2 +- + eng/build.sh | 6 ++-- + .../EditorService/EditorService.fsproj | 2 +- + src/Compiler/FSharp.Compiler.Service.fsproj | 6 ++-- + .../Microsoft.FSharp.Compiler.fsproj | 2 +- + .../Microsoft.FSharp.Compiler.nuspec | 28 +++++++++---------- + src/fsc/fscProject/fsc.fsproj | 6 ++-- + src/fsi/fsiProject/fsi.fsproj | 6 ++-- + .../SelfContained_Trimming_Test.fsproj | 6 ++-- + ...taticLinkedFSharpCore_Trimming_Test.fsproj | 6 ++-- + .../BasicProvider.DesignTime.fsproj | 2 +- + .../BasicProvider.Tests.fsproj | 2 +- + .../BasicProvider/BasicProvider.fsproj | 2 +- + .../FSharp.Build.UnitTests.fsproj | 4 +-- + .../FSharp.Compiler.ComponentTests.fsproj | 4 +-- + ...ompiler.Private.Scripting.UnitTests.fsproj | 4 +-- + .../FSharp.Compiler.Service.Tests.fsproj | 4 +-- + .../FSharp.Compiler.UnitTests.fsproj | 4 +-- + .../FSharp.Core.UnitTests.fsproj | 4 +-- + .../FSharp.Test.Utilities.fsproj | 4 +-- + .../MicroPerf/MicroPerf.fsproj | 2 +- + .../TaskPerf/TaskPerf/TaskPerf.fsproj | 2 +- + .../TaskPerfPreviousCompiler.fsproj | 2 +- + .../HistoricalBenchmark.Runner.fsproj | 2 +- + .../HistoricalBenchmark.fsproj | 2 +- + .../FSharp.Compiler.Benchmarks.fsproj | 2 +- + .../FCSSourceFiles/FCSSourceFiles.fsproj | 2 +- + .../Fsharp.ProfilingStartpointProject.fsproj | 2 +- + tests/fsharp/FSharpSuite.Tests.fsproj | 4 +-- + .../Sample_ConsoleApp_net7.fsproj | 6 ++-- + .../Sample_ConsoleApp_net7.fsproj | 6 ++-- + 35 files changed, 73 insertions(+), 73 deletions(-) + +diff --git a/Directory.Build.props b/Directory.Build.props +index 879bd8941..161d115ad 100644 +--- a/Directory.Build.props ++++ b/Directory.Build.props +@@ -30,8 +30,8 @@ + $(MSBuildThisFileDirectory)artifacts/ + $(ArtifactsDir)/bin/$(MSBuildProjectName)/$(Configuration)/ + $(ArtifactsDir)obj/$(MSBuildProjectName)/$(Configuration)/ +- $(ArtifactsDir)/bin/fslex/$(Configuration)/net8.0/fslex.dll +- $(ArtifactsDir)/bin/fsyacc/$(Configuration)/net8.0/fsyacc.dll ++ $(ArtifactsDir)/bin/fslex/$(Configuration)/net9.0/fslex.dll ++ $(ArtifactsDir)/bin/fsyacc/$(Configuration)/net9.0/fsyacc.dll + + + +diff --git a/buildtools/AssemblyCheck/AssemblyCheck.fsproj b/buildtools/AssemblyCheck/AssemblyCheck.fsproj +index 46ffb722c..9d391689d 100644 +--- a/buildtools/AssemblyCheck/AssemblyCheck.fsproj ++++ b/buildtools/AssemblyCheck/AssemblyCheck.fsproj +@@ -2,7 +2,7 @@ + + + Exe +- net8.0 ++ net9.0 + true + false + +diff --git a/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj b/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj +index 514b1f4dd..d3df3b688 100644 +--- a/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj ++++ b/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj +@@ -3,7 +3,7 @@ + + + +- net8.0 ++ net9.0 + true + $(MSBuildProjectDirectory)\..\..\artifacts\tmp\$([System.Guid]::NewGuid()) + $(CachePath)\bin +diff --git a/buildtools/fslex/fslex.fsproj b/buildtools/fslex/fslex.fsproj +index 674dde7c7..8764e40e1 100644 +--- a/buildtools/fslex/fslex.fsproj ++++ b/buildtools/fslex/fslex.fsproj +@@ -2,7 +2,7 @@ + + + Exe +- net8.0 ++ net9.0 + true + false + LatestMajor +diff --git a/buildtools/fsyacc/fsyacc.fsproj b/buildtools/fsyacc/fsyacc.fsproj +index fc072b7cf..4110186e5 100644 +--- a/buildtools/fsyacc/fsyacc.fsproj ++++ b/buildtools/fsyacc/fsyacc.fsproj +@@ -2,7 +2,7 @@ + + + Exe +- net8.0 ++ net9.0 + true + false + LatestMajor +diff --git a/eng/build.sh b/eng/build.sh +index 3b992d6bf..3a4444081 100755 +--- a/eng/build.sh ++++ b/eng/build.sh +@@ -264,8 +264,8 @@ function BuildSolution { + MSBuild "$repo_root/buildtools/buildtools.proj" /restore "$bltools" /p:Configuration=$bootstrap_config + + mkdir -p "$bootstrap_dir" +- cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net8.0 $bootstrap_dir/fslex +- cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net8.0 $bootstrap_dir/fsyacc ++ cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net9.0 $bootstrap_dir/fslex ++ cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net9.0 $bootstrap_dir/fsyacc + fi + if [ ! -f "$bootstrap_dir/fsc.exe" ]; then + local bltools="" +@@ -274,7 +274,7 @@ function BuildSolution { + fi + BuildMessage="Error building bootstrap" + MSBuild "$repo_root/Proto.sln" /restore "$bltools" /p:Configuration=$bootstrap_config +- cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net8.0 $bootstrap_dir/fsc ++ cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net9.0 $bootstrap_dir/fsc + fi + fi + +diff --git a/fcs-samples/EditorService/EditorService.fsproj b/fcs-samples/EditorService/EditorService.fsproj +index e4103999f..fe08d0cc4 100644 +--- a/fcs-samples/EditorService/EditorService.fsproj ++++ b/fcs-samples/EditorService/EditorService.fsproj +@@ -1,7 +1,7 @@ +  + + +- $(FcsTargetNetFxFramework);net8.0 ++ $(FcsTargetNetFxFramework);net9.0 + true + Exe + false +diff --git a/src/Compiler/FSharp.Compiler.Service.fsproj b/src/Compiler/FSharp.Compiler.Service.fsproj +index 45ae22a3e..56a587c30 100644 +--- a/src/Compiler/FSharp.Compiler.Service.fsproj ++++ b/src/Compiler/FSharp.Compiler.Service.fsproj +@@ -521,15 +521,15 @@ + + + +- TargetFramework=net8.0 ++ TargetFramework=net9.0 + compile + + +- TargetFramework=net8.0 ++ TargetFramework=net9.0 + compile + + +- TargetFramework=net8.0 ++ TargetFramework=net9.0 + compile + + +diff --git a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj +index f7560b707..68b02ce25 100644 +--- a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj ++++ b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj +@@ -3,7 +3,7 @@ + + true + Exe +- net8.0 ++ net9.0 + Microsoft.FSharp.Compiler.nuspec + true + .NET Core compatible version of the F# compiler fsc.exe. +diff --git a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec +index ca36309d5..e567e478b 100644 +--- a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec ++++ b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec +@@ -4,7 +4,7 @@ + $CommonMetadataElements$ + en-US + +- ++ + + + +@@ -26,16 +26,16 @@ + this approach gives a very small deployment. Which is kind of necessary. + --> + +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ + ++ target="lib\net9.0" /> + ++ target="lib\net9.0" /> + + + +@@ -45,14 +45,14 @@ + + + +- ++ + ++ target="lib\net9.0" /> + +- ++ target="lib\net9.0" /> ++ + ++ target="lib\net9.0" /> + + +diff --git a/src/fsc/fscProject/fsc.fsproj b/src/fsc/fscProject/fsc.fsproj +index 64c4651a7..985f1492b 100644 +--- a/src/fsc/fscProject/fsc.fsproj ++++ b/src/fsc/fscProject/fsc.fsproj +@@ -3,15 +3,15 @@ + + + +- net472;net8.0 +- net8.0 ++ net472;net9.0 ++ net9.0 + x86 + Debug;Release;Proto;ReleaseCompressed + + + + net472 +- net8.0 ++ net9.0 + x86 + + +diff --git a/src/fsi/fsiProject/fsi.fsproj b/src/fsi/fsiProject/fsi.fsproj +index dd17f8bd5..6bfa01c3e 100644 +--- a/src/fsi/fsiProject/fsi.fsproj ++++ b/src/fsi/fsiProject/fsi.fsproj +@@ -3,15 +3,15 @@ + + + +- net472;net8.0 +- net8.0 ++ net472;net9.0 ++ net9.0 + x86 + Debug;Release;Proto;ReleaseCompressed + + + + net472 +- net8.0 ++ net9.0 + x86 + + +diff --git a/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj b/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj +index cb02b7e0f..acd4e8f10 100644 +--- a/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj ++++ b/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj +@@ -2,7 +2,7 @@ + + + Exe +- net8.0 ++ net9.0 + preview + true + true +@@ -17,8 +17,8 @@ + + + +- $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll +- $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll ++ $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll ++ $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll + False + True + +diff --git a/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj b/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj +index d36faf2c0..2004fafbe 100644 +--- a/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj ++++ b/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj +@@ -2,7 +2,7 @@ + + + Exe +- net8.0 ++ net9.0 + preview + true + true +@@ -19,8 +19,8 @@ + + + +- $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll +- $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll ++ $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll ++ $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net9.0/fsc.dll + False + True + +diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj +index b05e1882f..53c32b81b 100644 +--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj ++++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj +@@ -2,7 +2,7 @@ + + + Library +- net8.0;net472 ++ net9.0;net472 + typeproviders + NO_GENERATIVE + IS_DESIGNTIME +diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj +index 5da0cbb3b..981441310 100644 +--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj ++++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj +@@ -2,7 +2,7 @@ + + + Library +- net8.0 ++ net9.0 + $(TestTargetFramework) + false + NO_GENERATIVE +diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj +index 96006f066..24c2188c5 100644 +--- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj ++++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj +@@ -2,7 +2,7 @@ + + + Library +- net8.0;net472 ++ net9.0;net472 + typeproviders + $(FSharpCoreShippedPackageVersionValue) + typeproviders +diff --git a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj +index e3c796d0b..e4926cd6c 100644 +--- a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj ++++ b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj +@@ -3,8 +3,8 @@ + + + +- net472;net8.0 +- net8.0 ++ net472;net9.0 ++ net9.0 + Library + true + xunit +diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj +index aefeb44cc..1d07c4d06 100644 +--- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj ++++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj +@@ -3,8 +3,8 @@ + + + +- net472;net8.0 +- net8.0 ++ net472;net9.0 ++ net9.0 + Library + false + true +diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj +index cdfd467e5..2fdcffc90 100644 +--- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj ++++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj +@@ -2,8 +2,8 @@ + + + +- net472;net8.0 +- net8.0 ++ net472;net9.0 ++ net9.0 + Library + true + xunit +diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +index 7cb2dfd22..1fa999721 100644 +--- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj ++++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +@@ -3,8 +3,8 @@ + + + Exe +- net472;net8.0 +- net8.0 ++ net472;net9.0 ++ net9.0 + + + +- $(NetCurrent) ++ net9.0 + $(DefaultNetCoreTargetFramework) + + diff --git a/src/SourceBuild/patches/sdk/0001-Update-BroswerRefresh-TFM.patch b/src/SourceBuild/patches/sdk/0001-Update-BroswerRefresh-TFM.patch deleted file mode 100644 index f7c046b76fcb..000000000000 --- a/src/SourceBuild/patches/sdk/0001-Update-BroswerRefresh-TFM.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Michael Simons -Date: Wed, 1 Mar 2023 01:12:26 +0000 -Subject: [PATCH] Update BroswerRefresh TFM - -Backport: https://github.com/dotnet/sdk/issues/30272 ---- - .../Microsoft.AspNetCore.Watch.BrowserRefresh.csproj | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj b/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj -index fc35c0ec3d..6e429eb963 100644 ---- a/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj -+++ b/src/BuiltInTools/BrowserRefresh/Microsoft.AspNetCore.Watch.BrowserRefresh.csproj -@@ -1,7 +1,7 @@ -  - - -- net6.0 -+ net8.0 - MicrosoftAspNetCore - - false diff --git a/src/SourceBuild/patches/sdk/0001-Use-net9.0-for-tool-dependencies.patch b/src/SourceBuild/patches/sdk/0001-Use-net9.0-for-tool-dependencies.patch new file mode 100644 index 000000000000..438ed7427ebc --- /dev/null +++ b/src/SourceBuild/patches/sdk/0001-Use-net9.0-for-tool-dependencies.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Thu, 19 Oct 2023 08:52:35 -0500 +Subject: [PATCH] Use net9.0 for tool dependencies + +Backport: https://github.com/dotnet/source-build/issues/3663 +--- + src/Layout/redist/targets/GenerateLayout.targets | 8 ++++---- + src/Layout/tool_fsharp/tool_fsc.csproj | 2 +- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/src/Layout/redist/targets/GenerateLayout.targets b/src/Layout/redist/targets/GenerateLayout.targets +index eab01ef144..922b959531 100644 +--- a/src/Layout/redist/targets/GenerateLayout.targets ++++ b/src/Layout/redist/targets/GenerateLayout.targets +@@ -178,7 +178,7 @@ + BeforeTargets="Build"> + + netcoreapp3.1 +- net8.0 ++ net9.0 + $(NuGetPackageRoot)/microsoft.testplatform.cli/$(MicrosoftTestPlatformCLIPackageVersion)/contentFiles/any/$(TestCliNuGetDirectoryTargetFramework)/ + + +diff --git a/src/Layout/tool_fsharp/tool_fsc.csproj b/src/Layout/tool_fsharp/tool_fsc.csproj +index adb50eed03..530c3a546b 100644 +--- a/src/Layout/tool_fsharp/tool_fsc.csproj ++++ b/src/Layout/tool_fsharp/tool_fsc.csproj +@@ -20,7 +20,7 @@ + + + +Date: Tue, 7 Nov 2023 12:40:49 -0600 +Subject: [PATCH] Explicitly target net9.0 for NoOp proj + +https://github.com/dotnet/source-build/issues/3663 +--- + eng/NoOp.csproj | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/eng/NoOp.csproj b/eng/NoOp.csproj +index 659aa00a..3ecefd43 100644 +--- a/eng/NoOp.csproj ++++ b/eng/NoOp.csproj +@@ -5,7 +5,7 @@ + + + +- $(NetCurrent) ++ net9.0 + + + diff --git a/src/SourceBuild/patches/vstest/0001-Explicitly-use-net9.0-TFM.patch b/src/SourceBuild/patches/vstest/0001-Explicitly-use-net9.0-TFM.patch new file mode 100644 index 000000000000..78ebca72a4e7 --- /dev/null +++ b/src/SourceBuild/patches/vstest/0001-Explicitly-use-net9.0-TFM.patch @@ -0,0 +1,51 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matt Thalman +Date: Thu, 19 Oct 2023 08:29:45 -0500 +Subject: [PATCH] Explicitly use net9.0 TFM + +Backport: https://github.com/dotnet/source-build/issues/3663 +--- + Directory.Build.targets | 2 +- + .../Microsoft.TestPlatform.Build.csproj | 2 +- + .../Microsoft.TestPlatform.CLI.csproj | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Directory.Build.targets b/Directory.Build.targets +index b720568b..617ca4fc 100644 +--- a/Directory.Build.targets ++++ b/Directory.Build.targets +@@ -6,7 +6,7 @@ + + + +- $(NetCurrent) ++ net9.0 + + $(NetCurrent) + +diff --git a/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj b/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj +index a93852ce..945b1ac2 100644 +--- a/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj ++++ b/src/Microsoft.TestPlatform.Build/Microsoft.TestPlatform.Build.csproj +@@ -12,7 +12,7 @@ + + + +- $(NetCurrent) ++ net9.0 + + + +diff --git a/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj b/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj +index b8f6849b..b56b993c 100644 +--- a/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj ++++ b/src/package/Microsoft.TestPlatform.CLI/Microsoft.TestPlatform.CLI.csproj +@@ -31,7 +31,7 @@ + + + +- ++ + + + diff --git a/src/SourceBuild/patches/xdt/0001-Allow-override-of-build-tool-framework-version.patch b/src/SourceBuild/patches/xdt/0001-Allow-override-of-build-tool-framework-version.patch new file mode 100644 index 000000000000..4a351587d463 --- /dev/null +++ b/src/SourceBuild/patches/xdt/0001-Allow-override-of-build-tool-framework-version.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nikola Milosavljevic +Date: Mon, 30 Oct 2023 22:52:31 +0000 +Subject: [PATCH] Allow override of build tool framework version + +Backport: https://github.com/dotnet/aspnetcore/issues/51753 +--- + eng/common/tools.sh | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/eng/common/tools.sh b/eng/common/tools.sh +index 17f0a36..343490c 100755 +--- a/eng/common/tools.sh ++++ b/eng/common/tools.sh +@@ -312,7 +312,12 @@ function InitializeBuildTool { + # return values + _InitializeBuildTool="$_InitializeDotNetCli/dotnet" + _InitializeBuildToolCommand="msbuild" +- _InitializeBuildToolFramework="netcoreapp3.1" ++ # use override if it exists - commonly set by source-build ++ if [[ -z "${_OverrideArcadeInitializeBuildToolFramework}" ]]; then ++ _InitializeBuildToolFramework="netcoreapp3.1" ++ else ++ _InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}" ++ fi + } + + # Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116 diff --git a/src/VirtualMonoRepo/README.template.md b/src/VirtualMonoRepo/README.template.md index 7e85a0467f37..7bc080a3c0d8 100644 --- a/src/VirtualMonoRepo/README.template.md +++ b/src/VirtualMonoRepo/README.template.md @@ -29,6 +29,8 @@ See also [dotnet/source-build](https://github.com/dotnet/source-build) for more - Enable developers to make and test changes spanning multiple repositories. - More efficient pipeline for security fixes during the CVE pre-disclosure process. +We will achieve these goals while keeping active coding work in the separate repos where it happens today. For example: ASP.NET features will continue to be developed in `dotnet/aspnetcore` and CLR features will be continue to be developed in `dotnet/runtime`. Each of these repos have their own distinct communities and processes, and aggregating development into a true mono-repo would work against that. Hence, the "virtual" monolithic repo: the VMR gives us the simplicity of a mono-repo for building and servicing the product, while active development of components of that product stays in its various existing repos. The day to day experience for typical contributors will not change. + ## Limitations **This is a work-in-progress.** @@ -96,7 +98,7 @@ In case you don't want to / cannot prepare your environment per the requirements ``` This builds the entire .NET SDK from source. - The resulting SDK is placed at `artifacts/x64/Release/dotnet-sdk-8.0.100-your-RID.tar.gz`. + The resulting SDK is placed at `artifacts/x64/Release/dotnet-sdk-9.0.100-your-RID.tar.gz`. Currently, the `--online` flag is required to allow NuGet restore from online sources during the build. This is useful for testing unsupported releases that don't yet build without downloading pre-built binaries from the internet. @@ -107,7 +109,7 @@ In case you don't want to / cannot prepare your environment per the requirements ```bash mkdir -p $HOME/dotnet - tar zxf artifacts/[your-arch]/Release/dotnet-sdk-8.0.100-[your-RID].tar.gz -C $HOME/dotnet + tar zxf artifacts/[your-arch]/Release/dotnet-sdk-9.0.100-[your-RID].tar.gz -C $HOME/dotnet ln -s $HOME/dotnet/dotnet /usr/bin/dotnet ``` @@ -127,7 +129,7 @@ docker run --rm -it -v vmr:/vmr -w /vmr mcr.microsoft.com/dotnet-buildtools/prer git clone https://github.com/dotnet/dotnet . ./prep.sh && ./build.sh --online mkdir -p $HOME/.dotnet -tar -zxf artifacts/x64/Release/dotnet-sdk-8.0.100-centos.8-x64.tar.gz -C $HOME/.dotnet +tar -zxf artifacts/x64/Release/dotnet-sdk-9.0.100-centos.8-x64.tar.gz -C $HOME/.dotnet ln -s $HOME/.dotnet/dotnet /usr/bin/dotnet ``` @@ -144,6 +146,12 @@ Usually, this means the [dotnet/dotnet repository](https://github.com/dotnet/dot In practice, this means that when calling the main build script, you need to provide additional arguments when building outside of a context of a git repository. Alternatively, you can also provide a manifest file where this information can be read from. This file (`release.json`) can be found attached with the [dotnet/dotnet release](https://github.com/dotnet/dotnet/releases). +### Synchronizing code into the VMR + +Sometimes you want to make a change in a repository and test that change in the VMR. You could of course make the change in the VMR directly (locally, as the VMR is read-only for now) but in case it's already available in your repository, you can synchronize it into the VMR (again locally). + +To do this, you can start a [dotnet/dotnet](https://github.com/dotnet/dotnet) Codespace. You will see instructions right when the Codespace starts. Alternatively, you can clone the repository locally and use the `[eng/vmr-sync.sh](../../eng/vmr-sync.sh)` script to do that. Please refer to the documentation in the script for more details. + ## List of components To enable full offline source-building of the VMR, we have no other choice than to synchronize all the necessary code into the VMR. This also includes any code referenced via git submodules. More details on why and how this is done can be found here: diff --git a/src/VirtualMonoRepo/Tasks/GitFileManagerFactory.cs b/src/VirtualMonoRepo/Tasks/GitFileManagerFactory.cs deleted file mode 100644 index 2da3d540ba65..000000000000 --- a/src/VirtualMonoRepo/Tasks/GitFileManagerFactory.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using Microsoft.DotNet.DarcLib; -using Microsoft.DotNet.DarcLib.Helpers; -using Microsoft.DotNet.DarcLib.VirtualMonoRepo; -using Microsoft.Extensions.Logging; - -namespace Microsoft.DotNet.VirtualMonoRepo.Tasks; - -public class GitFileManagerFactory : IGitFileManagerFactory -{ - private readonly IVmrInfo _vmrInfo; - private readonly VmrRemoteConfiguration _remoteConfiguration; - private readonly IProcessManager _processManager; - private readonly IVersionDetailsParser _versionDetailsParser; - private readonly ILoggerFactory _loggerFactory; - - public GitFileManagerFactory( - IVmrInfo vmrInfo, - VmrRemoteConfiguration remoteConfiguration, - IProcessManager processManager, - IVersionDetailsParser versionDetailsParser, - ILoggerFactory loggerFactory) - { - _vmrInfo = vmrInfo; - _remoteConfiguration = remoteConfiguration; - _processManager = processManager; - _versionDetailsParser = versionDetailsParser; - _loggerFactory = loggerFactory; - } - - public IGitFileManager Create(string repoUri) - => new GitFileManager(CreateGitRepo(repoUri), _versionDetailsParser, _loggerFactory.CreateLogger()); - - private IGitRepo CreateGitRepo(string repoUri) => GitRepoTypeParser.ParseFromUri(repoUri) switch - { - GitRepoType.AzureDevOps => throw new Exception("VMR initialization should not require Azure DevOps repositories"), - - GitRepoType.GitHub => new GitHubClient( - _processManager.GitExecutable, - _remoteConfiguration.GitHubToken, - _loggerFactory.CreateLogger(), - _vmrInfo.TmpPath, - // Caching not in use for Darc local client. - null), - - GitRepoType.Local => new LocalGitClient(_processManager.GitExecutable, _loggerFactory.CreateLogger()), - _ => throw new ArgumentException("Unknown git repository type", nameof(repoUri)), - }; -} diff --git a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs index eae76d532404..2a8c1d726b89 100644 --- a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs +++ b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs @@ -74,6 +74,8 @@ await vmrInitializer.InitializeRepository( additionalRemotes, ReadmeTemplatePath, TpnTemplatePath, + generateCodeowners: false, + discardPatches: true, _cancellationToken.Token); return true; } @@ -82,7 +84,6 @@ await vmrInitializer.InitializeRepository( private IServiceProvider CreateServiceProvider() => new ServiceCollection() .AddLogging(b => b.AddConsole().AddFilter(l => l >= LogLevel.Information)) - .AddTransient() - .AddVmrManagers(sp => sp.GetRequiredService(), "git", VmrPath, TmpPath, null, null) + .AddVmrManagers("git", VmrPath, TmpPath, null, null) .BuildServiceProvider(); } diff --git a/src/VirtualMonoRepo/allowed-binaries.txt b/src/VirtualMonoRepo/allowed-binaries.txt index a1f63d6e1c0b..51ed434fb652 100644 --- a/src/VirtualMonoRepo/allowed-binaries.txt +++ b/src/VirtualMonoRepo/allowed-binaries.txt @@ -12,6 +12,10 @@ *.vsd *.vsdx *.xlsx +*.ttf +*.cur +*.icm +*.reg **/test/* **/Test/* @@ -27,7 +31,6 @@ src/aspnetcore/**/samples/* src/aspnetcore/**/TestCertificates/* src/aspnetcore/src/*.eot src/aspnetcore/src/*.otf -src/aspnetcore/src/*.ttf src/aspnetcore/src/*.woff src/aspnetcore/src/*.woff2 src/aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js # JavaScript files with a null bytes @@ -44,6 +47,8 @@ src/razor/**/SampleApp/**/fonts/* src/roslyn/**/CodeAnalysisTest/* src/roslyn/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/Resources/WindowsProxy.winmd # https://github.com/dotnet/roslyn/issues/66718 +src/runtime/src/*.woff +src/runtime/src/*.woff2 src/runtime/src/libraries/System.Diagnostics.EventLog/src/Messages/EventLogMessages.res # Icon src/runtime/src/libraries/System.Speech/src/*.upsmap # https://github.com/dotnet/runtime/issues/81692 src/runtime/src/libraries/System.Text.Encoding.CodePages/src/Data/codepages.nlp # https://github.com/dotnet/runtime/issues/81693 diff --git a/src/VirtualMonoRepo/source-mappings.json b/src/VirtualMonoRepo/source-mappings.json index 831fae95975c..f6ab7184b9ea 100644 --- a/src/VirtualMonoRepo/source-mappings.json +++ b/src/VirtualMonoRepo/source-mappings.json @@ -44,7 +44,7 @@ "**/*.mdb", "**/*.nupkg", "**/*.pdb", - "**/*.tgz", + "**/*.tgz", "**/*.zip" ] }, @@ -135,6 +135,10 @@ "name": "runtime", "defaultRemote": "https://github.com/dotnet/runtime" }, + { + "name": "scenario-tests", + "defaultRemote": "https://github.com/dotnet/scenario-tests" + }, { "name": "sdk", "defaultRemote": "https://github.com/dotnet/sdk" @@ -184,8 +188,26 @@ "defaultRemote": "https://github.com/dotnet/xdt" }, { + // TODO: Remove the xliff-tasks mapping once the synchronization flags it as unused + // We no longer synchronize it but we can't remove it yet until + // it disappears from all of the Version.Details.xml files. + // https://github.com/dotnet/installer/issues/17661 "name": "xliff-tasks", - "defaultRemote": "https://github.com/dotnet/xliff-tasks" + "defaultRemote": "https://github.com/dotnet/xliff-tasks", + "ignoreDefaults": true, + "exclude": [ "**/*" ] + }, + { + "name": "winforms", + "defaultRemote": "https://github.com/dotnet/winforms" + }, + { + "name": "wpf", + "defaultRemote": "https://github.com/dotnet/wpf" + }, + { + "name": "windowsdesktop", + "defaultRemote": "https://github.com/dotnet/windowsdesktop" } ] } diff --git a/src/core-sdk-tasks/CollatePackageDownloads.cs b/src/core-sdk-tasks/CollatePackageDownloads.cs index 1e0c8ab9ee31..9e31720fe61c 100644 --- a/src/core-sdk-tasks/CollatePackageDownloads.cs +++ b/src/core-sdk-tasks/CollatePackageDownloads.cs @@ -1,4 +1,7 @@ -using System; +// Copyright (c) .NET Foundation and contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/src/core-sdk-tasks/GenerateMSBuildExtensionsSWR.cs b/src/core-sdk-tasks/GenerateMSBuildExtensionsSWR.cs index eab79f2b7230..81f3943d2aae 100644 --- a/src/core-sdk-tasks/GenerateMSBuildExtensionsSWR.cs +++ b/src/core-sdk-tasks/GenerateMSBuildExtensionsSWR.cs @@ -24,7 +24,8 @@ public override bool Execute() AddFolder(sb, @"MSBuildSdkResolver", - @"MSBuild\Current\Bin\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver"); + @"MSBuild\Current\Bin\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver", + ngenAssemblies: true); AddFolder(sb, @"msbuildExtensions", @@ -39,7 +40,7 @@ public override bool Execute() return true; } - private void AddFolder(StringBuilder sb, string relativeSourcePath, string swrInstallDir) + private void AddFolder(StringBuilder sb, string relativeSourcePath, string swrInstallDir, bool ngenAssemblies = false) { string sourceFolder = Path.Combine(MSBuildExtensionsLayoutDirectory, relativeSourcePath); var files = Directory.GetFiles(sourceFolder) @@ -55,7 +56,16 @@ private void AddFolder(StringBuilder sb, string relativeSourcePath, string swrIn { sb.Append(@" file source=""$(PkgVS_Redist_Common_Net_Core_SDK_MSBuildExtensions)\"); sb.Append(Path.Combine(relativeSourcePath, Path.GetFileName(file))); - sb.AppendLine("\""); + sb.Append('"'); + + if (ngenAssemblies && file.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) + { + sb.Append(@" vs.file.ngenApplications=""[installDir]\Common7\IDE\vsn.exe"""); + sb.Append(@" vs.file.ngenApplications=""[installDir]\MSBuild\Current\Bin\MSBuild.exe"""); + sb.Append(" vs.file.ngenArchitecture=all"); + } + + sb.AppendLine(); } sb.AppendLine(); @@ -67,6 +77,7 @@ private void AddFolder(StringBuilder sb, string relativeSourcePath, string swrIn string newRelativeSourcePath = Path.Combine(relativeSourcePath, subfolderName); string newSwrInstallDir = Path.Combine(swrInstallDir, subfolderName); + // Don't propagate ngenAssemblies to subdirectories. AddFolder(sb, newRelativeSourcePath, newSwrInstallDir); } } diff --git a/src/core-sdk-tasks/GenerateSdkRuntimeIdentifierChain.cs b/src/core-sdk-tasks/GenerateSdkRuntimeIdentifierChain.cs index 028f1aa329e2..1e5c9d33e929 100644 --- a/src/core-sdk-tasks/GenerateSdkRuntimeIdentifierChain.cs +++ b/src/core-sdk-tasks/GenerateSdkRuntimeIdentifierChain.cs @@ -1,4 +1,7 @@ -using System; +// Copyright (c) .NET Foundation and contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System; using System.Collections.Generic; using System.IO; using System.Linq; diff --git a/src/core-sdk-tasks/GetLinuxNativeInstallerDependencyVersions.cs b/src/core-sdk-tasks/GetLinuxNativeInstallerDependencyVersions.cs index 195ac196b4f6..d4f324ce3fba 100644 --- a/src/core-sdk-tasks/GetLinuxNativeInstallerDependencyVersions.cs +++ b/src/core-sdk-tasks/GetLinuxNativeInstallerDependencyVersions.cs @@ -1,4 +1,7 @@ -using System; +// Copyright (c) .NET Foundation and contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System; using System.Collections.Generic; using System.IO; using System.Linq; diff --git a/src/core-sdk-tasks/GetRuntimePackRids.cs b/src/core-sdk-tasks/GetRuntimePackRids.cs index fa7b9b483f22..f03128599511 100644 --- a/src/core-sdk-tasks/GetRuntimePackRids.cs +++ b/src/core-sdk-tasks/GetRuntimePackRids.cs @@ -1,4 +1,7 @@ -using System; +// Copyright (c) .NET Foundation and contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using System; using System.Collections.Generic; using System.IO; using System.Linq; diff --git a/src/core-sdk-tasks/ReplaceDuplicateFilesWithHardLinks.cs b/src/core-sdk-tasks/ReplaceFilesWithSymbolicLinks.cs similarity index 50% rename from src/core-sdk-tasks/ReplaceDuplicateFilesWithHardLinks.cs rename to src/core-sdk-tasks/ReplaceFilesWithSymbolicLinks.cs index 7fe6559fcddc..44c6ca31b2f2 100644 --- a/src/core-sdk-tasks/ReplaceDuplicateFilesWithHardLinks.cs +++ b/src/core-sdk-tasks/ReplaceFilesWithSymbolicLinks.cs @@ -22,18 +22,24 @@ namespace Microsoft.DotNet.Build.Tasks /// /// Replaces files that have the same content with hard links. /// - public sealed class ReplaceDuplicateFilesWithHardLinks : Task + public sealed class ReplaceFilesWithSymbolicLinks : Task { /// - /// The path to the directory. + /// The path to the directory to recursively search for files to replace with symbolic links. /// [Required] public string Directory { get; set; } = ""; + /// + /// The path to the directory with files to link to. + /// + [Required] + public string LinkToFilesFrom { get; set; } = ""; + #if NETFRAMEWORK public override bool Execute() { - Log.LogError($"{nameof(ReplaceDuplicateFilesWithHardLinks)} is not supported on .NET Framework."); + Log.LogError($"{nameof(ReplaceFilesWithSymbolicLinks)} is not supported on .NET Framework."); return false; } #else @@ -41,7 +47,7 @@ public override bool Execute() { if (OperatingSystem.IsWindows()) { - Log.LogError($"{nameof(ReplaceDuplicateFilesWithHardLinks)} is not supported on Windows."); + Log.LogError($"{nameof(ReplaceFilesWithSymbolicLinks)} is not supported on Windows."); return false; } @@ -51,52 +57,36 @@ public override bool Execute() return false; } + if (!System.IO.Directory.Exists(LinkToFilesFrom)) + { + Log.LogError($"'{LinkToFilesFrom}' does not exist."); + return false; + } + // Find all non-empty, non-symbolic link files. - IEnumerable fse = new FileSystemEnumerable( - Directory, - (ref FileSystemEntry entry) => (FileInfo)entry.ToFileSystemInfo(), - new EnumerationOptions() - { - AttributesToSkip = FileAttributes.ReparsePoint, - RecurseSubdirectories = true - }) + string[] files = new FileSystemEnumerable( + Directory, + (ref FileSystemEntry entry) => entry.ToFullPath(), + new EnumerationOptions() + { + AttributesToSkip = FileAttributes.ReparsePoint, + RecurseSubdirectories = true + }) { ShouldIncludePredicate = (ref FileSystemEntry entry) => !entry.IsDirectory && entry.Length > 0 - }; - - // Group them by file size. - IEnumerable filesGroupedBySize = fse.GroupBy(file => file.Length, - file => file.FullName, - (size, files) => files.ToArray()); + }.ToArray(); - // Replace files with same content with hard link. - foreach (var files in filesGroupedBySize) + foreach (var file in files) { - for (int i = 0; i < files.Length; i++) + string fileName = Path.GetFileName(file); + + // Look for a file with the same name in LinkToFilesFrom + // and replace it with a symbolic link if it has the same content. + string targetFile = Path.Combine(LinkToFilesFrom, fileName); + if (File.Exists(targetFile) && FilesHaveSameContent(file, targetFile)) { - string? path1 = files[i]; - if (path1 is null) - { - continue; // already linked. - } - for (int j = i + 1; j < files.Length; j++) - { - string? path2 = files[j]; - if (path2 is null) - { - continue; // already linked. - } - - // note: There's no public API we can use to see if paths are already linked. - // We treat those paths as unlinked files, and link them again. - if (FilesHaveSameContent(path1, path2)) - { - ReplaceByLink(path1, path2); - - files[j] = null; - } - } + ReplaceByLinkTo(file, targetFile); } } @@ -138,34 +128,30 @@ private unsafe bool FilesHaveSameContent(string path1, string path2) } } - void ReplaceByLink(string path1, string path2) + void ReplaceByLinkTo(string path, string pathToTarget) { // To link, the target mustn't exist. Make a backup, so we can restore it when linking fails. - string path2Backup = $"{path2}.pre_link_backup"; - File.Move(path2, path2Backup); + string backupFile = $"{path}.pre_link_backup"; + File.Move(path, backupFile); - int rv = SystemNative_Link(path1, path2); - if (rv != 0) + try { - var ex = new Win32Exception(); // Captures the LastError. + string relativePath = Path.GetRelativePath(Path.GetDirectoryName(path)!, pathToTarget); + File.CreateSymbolicLink(path, relativePath); - Log.LogError($"Unable to link '{path2}' to '{path1}.': {ex}"); + File.Delete(backupFile); - File.Move(path2Backup, path2); - - throw ex; + Log.LogMessage(MessageImportance.Normal, $"Linked '{path}' to '{relativePath}'."); } - else + catch (Exception ex) { - File.Delete(path2Backup); + Log.LogError($"Unable to link '{path}' to '{pathToTarget}.': {ex}"); + + File.Move(backupFile, path); - Log.LogMessage(MessageImportance.Normal, $"Linked '{path1}' and '{path2}'."); + throw; } } - - // This native method is used by the runtime to create hard links. It is not exposed through a public .NET API. - [DllImport("libSystem.Native", SetLastError = true)] - static extern int SystemNative_Link(string source, string link); #endif } } diff --git a/src/redist/targets/BuildCoreSdkTasks.targets b/src/redist/targets/BuildCoreSdkTasks.targets index afd5d21bd0d1..a0fd17dea34c 100644 --- a/src/redist/targets/BuildCoreSdkTasks.targets +++ b/src/redist/targets/BuildCoreSdkTasks.targets @@ -19,27 +19,27 @@ Properties="ArtifactsDir=$(ArtifactsDir)tasks\"/> + + - - - - - - - - + + - + + - - - - - + - + + + + + + + + diff --git a/src/redist/targets/BundledManifests.targets b/src/redist/targets/BundledManifests.targets index 008dc22c621c..796009404672 100644 --- a/src/redist/targets/BundledManifests.targets +++ b/src/redist/targets/BundledManifests.targets @@ -4,6 +4,7 @@ + @@ -14,8 +15,10 @@ + + @@ -60,7 +63,7 @@ + Exclude="Microsoft.NET.Workload.Mono.ToolChain.Current;Microsoft.NET.Workload.Mono.ToolChain.net6;Microsoft.NET.Workload.Mono.ToolChain.net7;Microsoft.NET.Workload.Mono.ToolChain.net8;Microsoft.NET.Workload.Emscripten.Current;Microsoft.NET.Workload.Emscripten.net6;Microsoft.NET.Workload.Emscripten.net7;Microsoft.NET.Workload.Emscripten.net8"> $([MSBuild]::NormalizePath($([System.IO.Directory]::GetFiles('%(RestoredMsiNupkgContentPath)/data/', '*$(MsiArchitectureForWorkloadManifests).msi')))) @@ -104,6 +107,22 @@ - + + + $(VersionPrefix)-baseline$(_BuildNumberLabels) + $(Version) + $(RedistLayoutPath)sdk-manifests\$(NetFeatureBand)\workloadsets\$(WorkloadSetVersion) + + + + + + + + + + + + diff --git a/src/redist/targets/BundledTemplates.targets b/src/redist/targets/BundledTemplates.targets index 4ab2c37a7287..760318166bb4 100644 --- a/src/redist/targets/BundledTemplates.targets +++ b/src/redist/targets/BundledTemplates.targets @@ -20,56 +20,65 @@ - + + + + + + + + + + + + - - - - + - + - + - + - + - + - - + + - + + @@ -105,10 +114,11 @@ - + + @@ -176,7 +186,7 @@ + Condition="'%(BundledTemplatesWithInstallPaths.TemplateFrameworkVersion)' == '9.0'"/> - + @@ -11,7 +12,7 @@ $(RedistLayoutPath)shared/$(SharedFrameworkName)/$(MicrosoftNETCoreAppRuntimePackageVersion) - $(RedistLayoutPath)shared/$(SharedFrameworkName)/$(VSRedistCommonNetCoreTargetingPackx6480PackageVersion) + $(RedistLayoutPath)shared/$(SharedFrameworkName)/$(VSRedistCommonNetCoreTargetingPackx6490PackageVersion) @@ -36,7 +37,7 @@ no that we do not silently miss cross-genning some bits. When a TFM for a tool is updated, update its path explicitly. If all TFMs match, update DefaultToolTfm --> - net8.0 + net9.0 $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk\tools\$(DefaultToolTfm)\ $(SdkOutputDirectory)Sdks\Microsoft.NET.Sdk.BlazorWebAssembly\tools\$(DefaultToolTfm)\ diff --git a/src/redist/targets/GenerateBundledVersions.targets b/src/redist/targets/GenerateBundledVersions.targets index 299a76d5eb71..7fd7b2c14e1f 100644 --- a/src/redist/targets/GenerateBundledVersions.targets +++ b/src/redist/targets/GenerateBundledVersions.targets @@ -94,10 +94,18 @@ <_NETCoreAppPackageVersion>$(MicrosoftNETCoreAppRuntimePackageVersion) <_NETStandardLibraryPackageVersion>$(NETStandardLibraryRefPackageVersion) <_NETCorePlatformsPackageVersion>$(MicrosoftNETCorePlatformsPackageVersion) + + + <_NET80RuntimePackVersion>8.0.$(VersionFeature80) + <_NET80TargetingPackVersion>8.0.$(VersionFeature80) + <_NET80WebAssemblyPackVersion>8.0.$(VersionFeature80) + <_WindowsDesktop80RuntimePackVersion>8.0.$(VersionFeature80) + <_WindowsDesktop80TargetingPackVersion>8.0.$(VersionFeature80) + <_AspNet80RuntimePackVersion>8.0.$(VersionFeature80) + <_AspNet80TargetingPackVersion>8.0.$(VersionFeature80) <_NET70RuntimePackVersion>7.0.$(VersionFeature70) <_NET70TargetingPackVersion>7.0.$(VersionFeature70) - <_NET70WebAssemblyPackVersion>$(MicrosoftNETCoreAppRuntimePackageVersion) <_WindowsDesktop70RuntimePackVersion>7.0.$(VersionFeature70) <_WindowsDesktop70TargetingPackVersion>7.0.$(VersionFeature70) <_AspNet70RuntimePackVersion>7.0.$(VersionFeature70) @@ -176,12 +184,14 @@ @(Net50AppHostRids); osx-arm64; linux-s390x; + linux-loongarch64; "/> @@ -196,6 +206,10 @@ linux-ppc64le; "/> + + - - + - - + + - + + - + - - + + @@ -449,9 +474,9 @@ Copyright (c) .NET Foundation. All rights reserved. @(ImplicitPackageVariable->'', ' ') - + - + + + + + + + + + + + + + + + + + - - + + @@ -638,7 +734,7 @@ Copyright (c) .NET Foundation. All rights reserved. + WebAssemblySdkPackVersion="$(_NET80WebAssemblyPackVersion)" /> - - - - - - + WebAssemblySdkPackVersion="$(_NET80WebAssemblyPackVersion)" /> - - - - - - - - - - - - + + diff --git a/src/redist/targets/GenerateLayout.targets b/src/redist/targets/GenerateLayout.targets index 899b46f78e97..ea39ed7744ac 100644 --- a/src/redist/targets/GenerateLayout.targets +++ b/src/redist/targets/GenerateLayout.targets @@ -8,22 +8,22 @@ - $(VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion) + $(VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion) $(MicrosoftAspNetCoreAppRuntimePackageVersion) - $(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion) + $(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion) $(MicrosoftNETCoreAppRuntimePackageVersion) - $(VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion) + $(VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion) - $(VSRedistCommonNetCoreTargetingPackx6480PackageVersion) + $(VSRedistCommonNetCoreTargetingPackx6490PackageVersion) $(MicrosoftAspNetCoreAppRefInternalPackageVersion) - $(VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion) + $(VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion) 3.0.0 @@ -38,7 +38,7 @@ $(HostRid) $(OSName)-$(Architecture) - $(HostRid.Replace('mariner.2.0', 'cm.2')) + $(HostRid.Replace('mariner.2.0', 'cm.2')) -internal @@ -60,7 +60,7 @@ dotnet-host$(InstallerStartSuffix)-$(SharedHostVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-hostfxr$(InstallerStartSuffix)-$(HostFxrVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-runtime$(InstallerStartSuffix)-$(MicrosoftNETCoreAppRuntimePackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) - dotnet-runtime$(InstallerStartSuffix)$(PgoTerm)-$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) + dotnet-runtime$(InstallerStartSuffix)$(PgoTerm)-$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-runtime-deps-$(SharedHostVersion)-$(RuntimeDepsInstallerFileRid)$(InstallerExtension) windowsdesktop-runtime-$(MicrosoftWindowsDesktopAppRuntimePackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-targeting-pack-$(MicrosoftNETCoreAppRefPackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) @@ -81,7 +81,7 @@ $(ProductMonikerRid) linux-$(Architecture) dotnet-runtime-$(MicrosoftNETCoreAppRuntimePackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) - dotnet-runtime$(PgoTerm)-$(VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) + dotnet-runtime$(PgoTerm)-$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) windowsdesktop-runtime-$(MicrosoftWindowsDesktopAppRuntimePackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) $(HostOSName)-$(BuildArchitecture) @@ -94,7 +94,7 @@ aarch64 aspnetcore-runtime-$(MicrosoftAspNetCoreAppRuntimePackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) - aspnetcore-runtime-$(VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) + aspnetcore-runtime-$(VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) aspnetcore-runtime-internal-$(MicrosoftAspNetCoreAppRuntimePackageVersion)-$(AspNetCoreInstallerRid).wixlib aspnetcore-targeting-pack-$(MicrosoftAspNetCoreAppRefPackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) aspnetcore-targeting-pack-$(MicrosoftAspNetCoreAppRefInternalPackageVersion)-$(AspNetCoreInstallerRid)$(InstallerExtension) @@ -569,11 +569,12 @@ - - - + + + + + diff --git a/src/redist/targets/GeneratePKG.targets b/src/redist/targets/GeneratePKG.targets index 60336eb5f4d6..9cab8a0a9f5d 100644 --- a/src/redist/targets/GeneratePKG.targets +++ b/src/redist/targets/GeneratePKG.targets @@ -95,7 +95,8 @@ x86_64 - 10.13 + + 10.15 11.0 diff --git a/test/EndToEnd/GivenFrameworkDependentApps.cs b/test/EndToEnd/GivenFrameworkDependentApps.cs index 0d30abdac5b5..9e0677e6c240 100644 --- a/test/EndToEnd/GivenFrameworkDependentApps.cs +++ b/test/EndToEnd/GivenFrameworkDependentApps.cs @@ -18,7 +18,7 @@ public class GivenFrameworkDependentApps : TestBase [ClassData(typeof(SupportedNetCoreAppVersions))] public void ItDoesNotRollForwardToTheLatestVersionOfNetCore(string minorVersion) { - if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0" || minorVersion == "6.0" || minorVersion == "7.0" || minorVersion == "8.0") + if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0" || minorVersion == "6.0" || minorVersion == "7.0" || minorVersion == "8.0" || minorVersion == "9.0") { // https://github.com/dotnet/core-sdk/issues/621 return; @@ -30,7 +30,7 @@ public void ItDoesNotRollForwardToTheLatestVersionOfNetCore(string minorVersion) [ClassData(typeof(SupportedAspNetCoreVersions))] public void ItDoesNotRollForwardToTheLatestVersionOfAspNetCoreApp(string minorVersion) { - if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0" || minorVersion == "6.0" || minorVersion == "7.0" || minorVersion == "8.0") + if (minorVersion == "3.0" || minorVersion == "3.1" || minorVersion == "5.0" || minorVersion == "6.0" || minorVersion == "7.0" || minorVersion == "8.0" || minorVersion == "9.0") { // https://github.com/dotnet/core-sdk/issues/621 return; diff --git a/test/EndToEnd/GivenWeWantToRequireWindowsForDesktopApps.cs b/test/EndToEnd/GivenWeWantToRequireWindowsForDesktopApps.cs index a1b74eaa51db..5f67ba6880d2 100644 --- a/test/EndToEnd/GivenWeWantToRequireWindowsForDesktopApps.cs +++ b/test/EndToEnd/GivenWeWantToRequireWindowsForDesktopApps.cs @@ -18,7 +18,7 @@ public void It_does_not_download_desktop_targeting_packs_on_unix() { var testProjectCreator = new TestProjectCreator() { - MinorVersion = "8.0" + MinorVersion = "9.0" }; testProjectCreator.AdditionalProperties["RestorePackagesPath"] = @"$(MSBuildProjectDirectory)\packages"; diff --git a/test/EndToEnd/GivenWindowsApp.cs b/test/EndToEnd/GivenWindowsApp.cs index 59f28eee89af..f0a336441a80 100644 --- a/test/EndToEnd/GivenWindowsApp.cs +++ b/test/EndToEnd/GivenWindowsApp.cs @@ -32,6 +32,8 @@ public void ItCanBuildAndRun(string targetPlatformVersion) // Update TargetFramework to the right version of .NET Core project.Root.Element(ns + "PropertyGroup") .Add(new XElement(ns + "TargetPlatformVersion", targetPlatformVersion)); + project.Root.Element(ns + "PropertyGroup") + .Element(ns + "TargetFramework").Value = TestAssetInfo.currentTfm; project.Save(projectPath); diff --git a/test/EndToEnd/ProjectBuildTests.cs b/test/EndToEnd/ProjectBuildTests.cs index faad825c8a17..d27b1ac71088 100644 --- a/test/EndToEnd/ProjectBuildTests.cs +++ b/test/EndToEnd/ProjectBuildTests.cs @@ -28,6 +28,15 @@ public void ItCanNewRestoreBuildRunCleanMSBuildProject() .Execute(newArgs) .Should().Pass(); + string projectPath = Path.Combine(projectDirectory, directory.Name + ".csproj"); + + var project = XDocument.Load(projectPath); + var ns = project.Root.Name.Namespace; + + project.Root.Element(ns + "PropertyGroup") + .Element(ns + "TargetFramework").Value = TestAssetInfo.currentTfm; + project.Save(projectPath); + new RestoreCommand() .WithWorkingDirectory(projectDirectory) .Execute() @@ -72,6 +81,8 @@ public void ItCanRunAnAppUsingTheWebSdk() var ns = project.Root.Name.Namespace; project.Root.Attribute("Sdk").Value = "Microsoft.NET.Sdk.Web"; + project.Root.Element(ns + "PropertyGroup") + .Element(ns + "TargetFramework").Value = TestAssetInfo.currentTfm; project.Save(projectPath); new BuildCommand() @@ -202,16 +213,16 @@ public void DotnetNewShowsCuratedListCorrectly() string expectedOutput = @"[\-\s]+ -[\w \.]+webapp,razor\s+\[C#\][\w\ \/]+ -[\w \.]+classlib\s+\[C#\],F#,VB[\w\ \/]+ -[\w \.]+console\s+\[C#\],F#,VB[\w\ \/]+ +[\w \.\(\)]+webapp,razor\s+\[C#\][\w\ \/]+ +[\w \.\(\)]+classlib\s+\[C#\],F#,VB[\w\ \/]+ +[\w \.\(\)]+console\s+\[C#\],F#,VB[\w\ \/]+ "; if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { expectedOutput += -@"[\w \.]+winforms\s+\[C#\],VB[\w\ \/]+ -[\w \.]+\wpf\s+\[C#\],VB[\w\ \/]+ +@"[\w \.\(\)]+winforms\s+\[C#\],VB[\w\ \/]+ +[\w \.\(\)]+\wpf\s+\[C#\],VB[\w\ \/]+ "; } //list should end with new line @@ -424,7 +435,7 @@ private static string DetectExpectedDefaultFramework(string template = "") string[] runtimeFolders = Directory.GetDirectories(Path.Combine(dotnetFolder, "shared", "Microsoft.NETCore.App")); int latestMajorVersion = runtimeFolders.Select(folder => int.Parse(Path.GetFileName(folder).Split('.').First())).Max(); - if (latestMajorVersion == 8) + if (latestMajorVersion == 9) { return $"net{latestMajorVersion}.0"; } diff --git a/test/EndToEnd/SupportedNetCoreAppVersions.cs b/test/EndToEnd/SupportedNetCoreAppVersions.cs index f926e2004469..3f1ab1e9c333 100644 --- a/test/EndToEnd/SupportedNetCoreAppVersions.cs +++ b/test/EndToEnd/SupportedNetCoreAppVersions.cs @@ -31,7 +31,8 @@ public class SupportedNetCoreAppVersions : IEnumerable "5.0", "6.0", "7.0", - "8.0" + "8.0", + "9.0" }; public static IEnumerable TargetFrameworkShortFolderVersion diff --git a/test/EndToEnd/ValidateInsertedManifests.cs b/test/EndToEnd/ValidateInsertedManifests.cs index cdede126c997..778c07ea7321 100644 --- a/test/EndToEnd/ValidateInsertedManifests.cs +++ b/test/EndToEnd/ValidateInsertedManifests.cs @@ -27,14 +27,17 @@ public void ManifestReaderCanReadManifests() { foreach (var manifestDir in manifestVersionDir.EnumerateDirectories()) { - var manifestId = manifestDir.Name; + var manifestId = manifestVersionDir.Name; string manifestFile = manifestDir.GetFile("WorkloadManifest.json").FullName; - File.Exists(manifestFile).Should().BeTrue(); - using var fileStream = new FileStream(manifestFile, FileMode.Open, FileAccess.Read); - Action readManifest = () => WorkloadManifestReader.ReadWorkloadManifest(manifestId, fileStream, manifestFile); - readManifest.ShouldNotThrow("manifestId:" + manifestId + " manifestFile:" + manifestFile + "is invalid"); + if (!string.Equals(manifestId, "workloadsets")) + { + new FileInfo(manifestFile).Exists.Should().BeTrue(); + using var fileStream = new FileStream(manifestFile, FileMode.Open, FileAccess.Read); + Action readManifest = () => WorkloadManifestReader.ReadWorkloadManifest(manifestId, fileStream, manifestFile); + readManifest.ShouldNotThrow("manifestId:" + manifestId + " manifestFile:" + manifestFile + "is invalid"); + } } } diff --git a/test/Microsoft.DotNet.Tools.Tests.Utilities/Microsoft.DotNet.Tools.Tests.Utilities.csproj b/test/Microsoft.DotNet.Tools.Tests.Utilities/Microsoft.DotNet.Tools.Tests.Utilities.csproj index 27da1cfb8f57..989ab06c92d7 100644 --- a/test/Microsoft.DotNet.Tools.Tests.Utilities/Microsoft.DotNet.Tools.Tests.Utilities.csproj +++ b/test/Microsoft.DotNet.Tools.Tests.Utilities/Microsoft.DotNet.Tools.Tests.Utilities.csproj @@ -5,7 +5,7 @@ - + diff --git a/test/Microsoft.DotNet.Tools.Tests.Utilities/TestAssetInfo.cs b/test/Microsoft.DotNet.Tools.Tests.Utilities/TestAssetInfo.cs index 5d7f343e692d..15693244c3cb 100644 --- a/test/Microsoft.DotNet.Tools.Tests.Utilities/TestAssetInfo.cs +++ b/test/Microsoft.DotNet.Tools.Tests.Utilities/TestAssetInfo.cs @@ -11,6 +11,10 @@ namespace Microsoft.DotNet.TestFramework { public class TestAssetInfo { + // This is needed each release after we upgrade to 9.0 but the templates haven't been upgraded yet + + public static readonly string currentTfm = "net9.0"; + private readonly string [] FilesToExclude = { ".DS_Store", ".noautobuild" }; public string AssetName { get; private set; } diff --git a/test/SdkTests/SdkTests.csproj b/test/SdkTests/SdkTests.csproj index 8902bb1a6875..5cf2f0c56f12 100644 --- a/test/SdkTests/SdkTests.csproj +++ b/test/SdkTests/SdkTests.csproj @@ -1,4 +1,4 @@ - + false @@ -64,6 +64,7 @@ + diff --git a/test/SdkTests/TestConfig.xml b/test/SdkTests/TestConfig.xml index 78e933a497f2..ed432ea13e7f 100644 --- a/test/SdkTests/TestConfig.xml +++ b/test/SdkTests/TestConfig.xml @@ -245,6 +245,14 @@ Skip="true" Issue="" Reason="Cannot run with non-existent LastRuntimeFrameworkVersion"/> + +