diff --git a/.devcontainer/vmr-source-build/README.md b/.devcontainer/vmr-source-build/README.md deleted file mode 100644 index 61d8c5116..000000000 --- a/.devcontainer/vmr-source-build/README.md +++ /dev/null @@ -1,55 +0,0 @@ - - -This Codespace can help you debug the source build of .NET. In case you have run this from a -`dotnet/installer` PR branch, it will contain the VMR (`dotnet/dotnet`) checked out into -`/workspaces/dotnet` with the PR changes pulled into it. You can then attempt to source-build -the VMR which is what the VMR leg in the installer PR build doing. This build takes about 45 -minutes and, after completion, produces an archived .NET SDK located in -`/workspaces/dotnet/artifacts/assets/Release`. - -## Build the SDK - -To build the VMR, run following: -```bash -cd /workspaces/dotnet -./build.sh --online -``` - -> Please note that, at this time, the build modifies some of the checked-in sources so it might -be preferential to rebuild the Codespace between attempts (or reset the working tree changes). - -For more details, see the instructions at https://github.com/dotnet/dotnet. - -## Synchronize your changes in locally - -When debugging the build, you have two options how to test your changes in this environment. - -### Making changes to the VMR directly - -You can make the changes directly to the local checkout of the VMR at `/workspaces/dotnet`. You -can then try to build the VMR and see if the change works for you. - -### Pull changes into the Codespace from your fork - -You can also make a fix in the individual source repository (e.g. `dotnet/runtime`) and push the -fix into a branch; can be in your fork too. Once you have the commit pushed, you can pull this -version of the repository into the Codespace by running: - -``` -/workspaces/synchronize-vmr.sh \ - --repository : \ - --remote : -``` - -You can now proceed building the VMR in the Codespace using instructions above. You can repeat -this process and sync a new commit from your fork. Only note that, at this time, Source-Build -modifies some of the checked-in sources so you'll need to revert the working tree changes -between attempts. diff --git a/.devcontainer/vmr-source-build/devcontainer.json b/.devcontainer/vmr-source-build/devcontainer.json deleted file mode 100644 index bfa89572c..000000000 --- a/.devcontainer/vmr-source-build/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// Container suitable for investigating issues with source build -// Contains the VMR (dotnet/dotnet) with applied changes from the current PR -// The container supports source-building the SDK -{ - "name": "VMR with PR changes", - "image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39", - "hostRequirements": { - // A completely source built .NET is >64 GB with all the repos/artifacts - "storage": "128gb" - }, - "customizations": { - "vscode": { - "extensions": [ - "ms-dotnettools.csharp" - ] - }, - "codespaces": { - "openFiles": [ - "installer/.devcontainer/vmr-source-build/README.md" - ] - } - }, - "onCreateCommand": "${containerWorkspaceFolder}/installer/.devcontainer/vmr-source-build/init.sh", - "workspaceFolder": "/workspaces" -} diff --git a/.devcontainer/vmr-source-build/init.sh b/.devcontainer/vmr-source-build/init.sh deleted file mode 100755 index 1111459c8..000000000 --- a/.devcontainer/vmr-source-build/init.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -source="${BASH_SOURCE[0]}" -script_root="$( cd -P "$( dirname "$source" )" && pwd )" - -installer_dir=$(realpath "$script_root/../..") -workspace_dir=$(realpath "$installer_dir/../") -tmp_dir=$(realpath "$workspace_dir/tmp") -vmr_dir=$(realpath "$workspace_dir/dotnet") - -cp "$installer_dir/.devcontainer/vmr-source-build/synchronize-vmr.sh" "$workspace_dir" - -mkdir -p "$tmp_dir" - -# Codespaces performs a shallow fetch only -git -C "$installer_dir" fetch --all --unshallow - -# We will try to figure out, which branch is the current (PR) branch based off of -# We need this to figure out, which VMR branch to use -vmr_branch=$(git -C "$installer_dir" log --pretty=format:'%D' HEAD^ \ - | grep 'origin/' \ - | head -n1 \ - | sed 's@origin/@@' \ - | sed 's@,.*@@') - -"$workspace_dir/synchronize-vmr.sh" --branch "$vmr_branch" --debug - -(cd "$vmr_dir" && ./prep-source-build.sh) diff --git a/.devcontainer/vmr-source-build/synchronize-vmr.sh b/.devcontainer/vmr-source-build/synchronize-vmr.sh deleted file mode 100755 index 274ca22ab..000000000 --- a/.devcontainer/vmr-source-build/synchronize-vmr.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -(cd /workspaces/installer \ - && ./eng/vmr-sync.sh --vmr /workspaces/dotnet --tmp /workspaces/tmp $*) diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 5ea897947..519b29b16 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -372,9 +372,6 @@ extends: linuxPortable: true runTests: false - # Source Build - - template: /eng/common/templates-official/jobs/source-build.yml@self - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - stage: Publish dependsOn: diff --git a/.vsts-pr.yml b/.vsts-pr.yml index ba1bb5f01..4441fd1e2 100644 --- a/.vsts-pr.yml +++ b/.vsts-pr.yml @@ -346,8 +346,6 @@ stages: linuxPortable: true runTests: false - - template: /eng/common/templates/jobs/source-build.yml - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - stage: Publish dependsOn: diff --git a/CODEOWNERS b/CODEOWNERS index b8ad3e9a9..6b52edc80 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,8 +1,4 @@ # Users referenced in this file will automatically be requested as reviewers for PRs that modify the given paths. # See https://help.github.com/articles/about-code-owners/ -/.devcontainer/ @dotnet/source-build-internal -/eng/SourceBuild* @dotnet/source-build-internal -/src/snaps/ @rbhanda -/src/SourceBuild/ @dotnet/source-build-internal @dotnet/product-construction -/src/VirtualMonoRepo/ @dotnet/product-construction +/src/snaps/ @rbhanda \ No newline at end of file diff --git a/README.md b/README.md index f61fd75e3..3633d748f 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,6 @@ The repository contains native code project required for the Windows installer. # Build .NET from source (source-build) -This repo also contains code to help you build the entire .NET product end-to-end from source (often referred to as source-build), even in disconnected/offline mode. Please see the [dotnet/source-build](https://github.com/dotnet/source-build) repo for more information. ## Support @@ -55,25 +54,12 @@ Please see the [dotnet/source-build](https://github.com/dotnet/source-build) rep For example, if .NET 6.0.1xx, 6.0.2xx, and 7.0.1xx feature updates are available from [dotnet.microsoft.com](https://dotnet.microsoft.com/en-us/download/dotnet/6.0), Source-Build will support 6.0.1xx and 7.0.1xx. For the latest information about Source-Build support for new .NET versions, please check our [GitHub Discussions page](https://github.com/dotnet/source-build/discussions) for announcements. -## Prerequisites - -The dependencies for building .NET from source can be found [here](https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/linux-requirements.md). - ## Building .NET 8.0 .NET 8.0 (currently in prerelease) and newer will be built from the [dotnet/dotnet](https://github.com/dotnet/dotnet) repo. Clone the dotnet/dotnet repo and check out the tag for the desired release. Then, follow the instructions in [dotnet/dotnet's README](https://github.com/dotnet/dotnet/blob/main/README.md#dev-instructions) to build .NET from source. -### Codespaces - -It is also possible to utilize [GitHub Codespaces](https://github.com/features/codespaces) and build .NET from the `dotnet/dotnet` repository from source that way. -You can either create a Codespace in `dotnet/dotnet` directly or you can also make one from a PR branch in `dotnet/installer`. This will give you an environment with the VMR checked out and containing all of new changes from the PR. -This can be especially valuable for investigations of source-build failures during PRs. - -To create a Codespace for a `dotnet/installer` PR, use the `vmr-source-build` devcontainer configuration (select this when "newing the Codespace with options" under the three-dots-menu). -Further instructions on how to build inside of the Codespace will be available upon launch. - ## Building .NET 7.0 and .NET 6.0 1. Create a .NET source tarball. diff --git a/eng/Build.props b/eng/Build.props index 4f6005ef0..fb03e7d3c 100644 --- a/eng/Build.props +++ b/eng/Build.props @@ -1,20 +1,9 @@ - - - - - - - - - - - - - - - - + + + + + diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props deleted file mode 100644 index 9e4078adf..000000000 --- a/eng/SourceBuild.props +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - installer - true - - - - - $(InnerBuildArgs) /p:SkipBuildingInstallers=true - $(InnerBuildArgs) /p:IncludeAdditionalSharedFrameworks=false - $(InnerBuildArgs) /p:DISABLE_CROSSGEN=true - $(InnerBuildArgs) /p:PgoInstrument=true - - - - - - - - - - - - - - - diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml deleted file mode 100644 index 0847642e0..000000000 --- a/eng/SourceBuildPrebuiltBaseline.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 662829c93..f9c2f112a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,9 +1,5 @@ - https://github.com/dotnet/windowsdesktop 436e9a8e566984a5ffe5f022de266f18d9aa9c4b @@ -50,12 +46,6 @@ https://github.com/dotnet/runtime 84b33395057737db3ea342a5151feb6b90c1b6f6 - - - https://github.com/dotnet/runtime - 84b33395057737db3ea342a5151feb6b90c1b6f6 - - https://github.com/dotnet/aspnetcore da3aa27233a2cec2f6780884f71934b2f5e686ce @@ -84,12 +74,6 @@ https://github.com/dotnet/aspnetcore da3aa27233a2cec2f6780884f71934b2f5e686ce - - - https://github.com/dotnet/aspnetcore - da3aa27233a2cec2f6780884f71934b2f5e686ce - - https://github.com/dotnet/sdk a1863f126667b4fdcd37b451b4cd3c10abf19e10 @@ -106,12 +90,6 @@ https://github.com/dotnet/sdk a1863f126667b4fdcd37b451b4cd3c10abf19e10 - - - https://github.com/dotnet/sdk - a1863f126667b4fdcd37b451b4cd3c10abf19e10 - - https://github.com/dotnet/test-templates 0385265f4d0b6413d64aea0223172366a9b9858c @@ -136,12 +114,6 @@ https://github.com/dotnet/test-templates 36e4339a33f9bdf3680591e2a3fcbc421aabc22c - - - https://github.com/dotnet/test-templates - 36e4339a33f9bdf3680591e2a3fcbc421aabc22c - - https://github.com/dotnet/winforms @@ -155,22 +127,10 @@ https://github.com/dotnet/fsharp 3ef1cb25ffb292b5c87f9604d1a09b032277bf76 - - - https://github.com/dotnet/fsharp - 3ef1cb25ffb292b5c87f9604d1a09b032277bf76 - - https://github.com/microsoft/vstest b521aa2c9c981f53b85af7c923175a850986173a - - - https://github.com/microsoft/vstest - b521aa2c9c981f53b85af7c923175a850986173a - - https://github.com/dotnet/runtime 84b33395057737db3ea342a5151feb6b90c1b6f6 @@ -179,63 +139,26 @@ https://github.com/dotnet/roslyn 062ad3db597a8096b5da2b188dbbbcc7f6137275 - - - https://github.com/dotnet/roslyn - 062ad3db597a8096b5da2b188dbbbcc7f6137275 - - https://github.com/dotnet/msbuild 66dcc32c3344eb76a422917dcb8c9e8f621e18fd - - - https://github.com/dotnet/msbuild - 66dcc32c3344eb76a422917dcb8c9e8f621e18fd - - https://github.com/nuget/nuget.client 12d5c661b77d4933f82a293008c0d56d1d6ce32b - https://github.com/dotnet/emsdk 53288f87c588907e8ff01f129786820fe998573c - - - https://github.com/dotnet/emsdk - 53288f87c588907e8ff01f129786820fe998573c - - https://github.com/dotnet/deployment-tools 6b80783f6743ee9f18940eb6acb7135e5c111d4b - - - https://github.com/dotnet/deployment-tools - 6b80783f6743ee9f18940eb6acb7135e5c111d4b - - - - - https://github.com/dotnet/source-build-externals - b02769661c9a51985877819e8bdebfbcbee65710 - - https://github.com/dotnet/command-line-api 963d34b1fb712c673bfb198133d7e988182c9ef4 - - - https://github.com/dotnet/command-line-api - 963d34b1fb712c673bfb198133d7e988182c9ef4 - - @@ -262,31 +185,14 @@ https://github.com/dotnet/arcade 020255bcf7d0b8beed7de05338d97396982ae527 - - - https://github.com/dotnet/arcade - 020255bcf7d0b8beed7de05338d97396982ae527 - - https://github.com/dotnet/runtime ab1a8224cdf115b65e0db5dc88d11f205068f444 - - https://github.com/dotnet/source-build-reference-packages - 9c1cc994f8123ec2a923c5179c238c13da1b4ab7 - - https://github.com/dotnet/scenario-tests 4ab07002cb46cf169c85a09a546709a20642c65b - - - https://github.com/dotnet/scenario-tests - 4ab07002cb46cf169c85a09a546709a20642c65b - - - - https://github.com/dotnet/aspire - 0514ea9e12ece4dd764824ce925ae0eae6fcbd86 - - diff --git a/eng/install-scancode.sh b/eng/install-scancode.sh deleted file mode 100755 index 049b749c2..000000000 --- a/eng/install-scancode.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/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.1.0" - -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/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml deleted file mode 100644 index f3b0e2a25..000000000 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ /dev/null @@ -1,542 +0,0 @@ -### This job builds https://github.com/dotnet/dotnet with given parameters -### If run in an installer PR, new changes are applied to a local copy of the VMR, then it is built and tested - -parameters: -- name: architecture - type: string - -- name: artifactsRid - type: string - default: '' - -- name: buildName - type: string - -- name: container - type: string - default: '' - -- name: crossRootFs - type: string - default: '' - -- name: pool - type: object - -- name: targetOS - type: string - default: '' - -- name: targetArchitecture - type: string - default: '' - -- name: useMonoRuntime - displayName: True when build output uses the mono runtime - type: boolean - default: false - -- name: useDevVersions - displayName: True when build output uses dev/CI versioning instead of official build versioning - type: boolean - default: false - -#### SOURCE-ONLY parameters #### - -# Instead of building the VMR directly, exports the sources into a tarball and builds from that -- name: buildFromArchive - type: boolean - default: false - -# Enable for source-building the VMR -- name: buildSourceOnly - type: boolean - default: false - -- name: enablePoison - type: boolean - default: false - -- name: excludeOmniSharpTests - type: boolean - default: false - -# Name of a previous job (from the same template as this) whose output will be used to build this job -# The SDK from its artifacts is copied to $(sourcesPath)/.dotnet -- name: reuseBuildArtifactsFrom - type: string - default: '' - -# Allow downloading artifacts from the internet during the build -- name: runOnline - type: boolean - default: true - -- name: runTests - type: boolean - default: true - -# Freeform field for extra values to pass to build.sh for special build modes -- name: extraProperties - type: string - default: '' - -# Use the previous version's SDK to build the current one -- name: withPreviousSDK - type: boolean - default: false - -#### INSTALLER parameters #### - -- name: isBuiltFromVmr - displayName: True when build is running from dotnet/dotnet directly - type: boolean - -- name: vmrBranch - displayName: dotnet/dotnet branch to use - type: string - -jobs: -- job: ${{ parameters.buildName }}_${{ parameters.architecture }} - pool: ${{ parameters.pool }} - - # Currently, CodeQL slows the build down too much - # https://github.com/dotnet/source-build/issues/4276 - ${{ if and(parameters.isBuiltFromVmr, startswith(parameters.buildName, 'Windows'), eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: - timeoutInMinutes: 720 - ${{ else }}: - timeoutInMinutes: 240 - - ${{ if ne(parameters.reuseBuildArtifactsFrom, '') }}: - # Always attempt to run the bootstrap leg (e.g. even when stage 1 tests fail) in order to get a complete accessment of the build status. - # The build shortcuts when stage 1 build fails and doesn't produce the SDK. - condition: succeededOrFailed() - dependsOn: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }} - variables: - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - group: AzureDevOps-Artifact-Feeds-Pats - - ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['System.TeamProject'], 'internal'), not(startswith(parameters.vmrBranch, 'internal/release/')), ne(variables['Build.Reason'], 'PullRequest')) }}: - - group: DotNetBot-GitHub - - ${{ else }}: - - name: BotAccount-dotnet-bot-repo-PAT - value: N/A - - name: additionalBuildArgs - value: '' - - - ${{ if parameters.isBuiltFromVmr }}: - - name: vmrPath - value: $(Build.SourcesDirectory) - - ${{ else }}: - - name: vmrPath - value: $(Agent.BuildDirectory)/vmr - - # Location of the VMR sources - # We either build the repo directly, or we extract them outside (which is what partners do) - - ${{ if parameters.buildFromArchive }}: - - name: sourcesPath - value: $(Build.StagingDirectory)/dotnet-sources/ - - ${{ else }}: - - name: sourcesPath - value: $(vmrPath) - - templateContext: - outputs: - - output: pipelineArtifact - displayName: Publish BuildLogs - condition: succeededOrFailed() - targetPath: $(Build.StagingDirectory)/BuildLogs - artifactName: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) - - - output: pipelineArtifact - path: $(Build.ArtifactStagingDirectory)/publishing - artifact: $(Agent.JobName)_Artifacts - displayName: Publish Artifacts - condition: always() - - - ${{ if not(parameters.isBuiltFromVmr) }}: - - output: pipelineArtifact - displayName: Upload failed patches - condition: failed() - targetPath: $(Agent.TempDirectory) - artifactName: $(System.JobDisplayName)_FailedPatches - - steps: - - ${{ if not(parameters.isBuiltFromVmr) }}: - - template: ../steps/vmr-prepare.yml@self - parameters: - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - vmrBranch: $(System.PullRequest.TargetBranch) - ${{ else }}: - vmrBranch: ${{ parameters.vmrBranch }} - - # Synchronize new content in the VMR during PRs (we expect this to come - - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - - template: ../steps/vmr-pull-updates.yml@self - parameters: - vmrPath: $(vmrPath) - vmrBranch: ${{ parameters.vmrBranch }} - targetRef: $(Build.SourceVersion) # Synchronize the current installer commit - - - ${{ if parameters.buildFromArchive }}: - - script: | - set -ex - cp -r "$(vmrPath)" "$(sourcesPath)" - rm -rf "$(sourcesPath)/.git" - displayName: Export VMR sources - workingDirectory: $(Build.StagingDirectory) - - - ${{ if ne(parameters.reuseBuildArtifactsFrom, '') }}: - - download: current - artifact: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}_Artifacts - patterns: | - **/Private.SourceBuilt.Artifacts.*.tar.gz - **/dotnet-sdk-*.tar.gz - displayName: Download Previous Build - - - task: CopyFiles@2 - displayName: Copy Previous Build - inputs: - SourceFolder: $(Pipeline.Workspace)/${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}_Artifacts/assets/Release - Contents: '*.tar.gz' - TargetFolder: $(sourcesPath)/prereqs/packages/archive/ - - - ${{ if eq(parameters.withPreviousSDK, 'true') }}: - - script: | - set -euo pipefail - - if [[ '${{ parameters.artifactsRid }}' == '' ]]; then - echo "'artifactsRid' is not specified. Cannot download source-built SDK." - exit 1 - fi - - packageVersionsPath="$(sourcesPath)/eng/Versions.props" - notFoundMessage="No source-built SDK found to download..." - - echo "Looking for source-built SDK to download..." - archiveVersionLine=$(grep -m 1 "" "$packageVersionsPath" || :) - versionPattern="(.*)" - - 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/" - - echo "Downloading source-built SDK from $archiveUrl..." - (cd "$downloadDir" && curl --retry 5 -O "$archiveUrl") - else - echo "$notFoundMessage" - exit 1 - fi - displayName: Setup Previously Source-Built SDK - - - ${{ if eq(parameters.targetOS, 'windows') }}: - # Node 20.x is a toolset dependency to build aspnetcore - # Keep in sync with aspnetcore: https://github.com/dotnet/aspnetcore/blob/7d5309210d8f7bae8fa074da495e9d009d67f1b4/.azure/pipelines/ci.yml#L719-L722 - - task: NodeTool@0 - displayName: Install Node 20.x - inputs: - versionSpec: 20.x - - - script: | - call $(sourcesPath)\build.cmd -ci -cleanWhileBuilding -prepareMachine %devArgument% /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} ${{ parameters.extraProperties }} - displayName: Build - env: - ${{ if eq(parameters.useDevVersions, 'True') }}: - devArgument: -dev - ${{ else }}: - devArgument: '' - - - ${{ if eq(parameters.runTests, 'True') }}: - - script: | - call $(sourcesPath)\build.cmd -ci -prepareMachine -test /bl:artifacts/log/Release/Test.binlog /p:TargetOS=${{ parameters.targetOS }} /p:TargetArchitecture=${{ parameters.targetArchitecture }} ${{ parameters.extraProperties }} - displayName: Run Tests - - - ${{ else }}: - - ${{ if eq(parameters.buildSourceOnly, 'true') }}: - - script: | - set -ex - - 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 or Alpine 3.19. We want to download them without - # downloading portable versions from the internet. - customPrepArgs="${customPrepArgs} --no-sdk --no-bootstrap" - prepSdk=false - elif [[ -n '${{ parameters.reuseBuildArtifactsFrom }}' ]]; then - customPrepArgs="${customPrepArgs} --no-sdk --no-artifacts" - prepSdk=false - fi - - if [[ "$prepSdk" == "false" ]]; then - mkdir $(sourcesPath)/.dotnet - previousSdkPath="$(sourcesPath)/prereqs/packages/archive/dotnet-sdk-*.tar.gz" - eval tar -ozxf "$previousSdkPath" -C "$(sourcesPath)/.dotnet" - eval rm -f "$previousSdkPath" - - echo "##vso[task.setvariable variable=additionalBuildArgs]--with-sdk /vmr/.dotnet" - fi - - docker run --rm -v "$(sourcesPath):/vmr" -w /vmr ${{ parameters.container }} ./prep-source-build.sh $customPrepArgs - displayName: Prep the Build - - - script: | - set -ex - df -h - - customEnvVars="" - customBuildArgs="--ci --clean-while-building --prepareMachine" - if [[ '${{ parameters.runOnline }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --online" - fi - - if [[ '${{ parameters.enablePoison }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --poison" - fi - - if [[ '${{ parameters.buildFromArchive }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --source-repository https://github.com/dotnet/dotnet" - customBuildArgs="$customBuildArgs --source-version $(git -C "$(vmrPath)" rev-parse HEAD)" - fi - - if [[ '${{ parameters.buildSourceOnly }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --source-only" - fi - - if [[ '${{ parameters.useMonoRuntime }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --use-mono-runtime" - fi - - if [[ '${{ parameters.useDevVersions }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --dev" - fi - - if [[ -n "${{ parameters.crossRootFs }}" ]]; then - customEnvVars="$customEnvVars ROOTFS_DIR=${{ parameters.crossRootFs}}" - if [[ '${{ parameters.targetArchitecture }}' != 'wasm' ]]; then - extraBuildProperties="$extraBuildProperties /p:CrossBuild=true" - fi - fi - - if [[ ! -z '${{ parameters.targetOS }}' ]]; then - extraBuildProperties="$extraBuildProperties /p:TargetOS=${{ parameters.targetOS }}" - fi - - if [[ ! -z '${{ parameters.targetArchitecture }}' ]]; then - extraBuildProperties="$extraBuildProperties /p:TargetArchitecture=${{ parameters.targetArchitecture }}" - fi - - if [[ -n "${{ parameters.extraProperties }}" ]]; then - extraBuildProperties="$extraBuildProperties ${{ parameters.extraProperties }}" - fi - - buildArgs="$(additionalBuildArgs) $customBuildArgs $extraBuildProperties" - - # Only use Docker when a container is specified - if [[ -n "${{ parameters.container }}" ]]; then - # Allows Arcade to have access to the commit for the build, pass it through to the container - customEnvVars="$customEnvVars BUILD_SOURCEVERSION=$BUILD_SOURCEVERSION" - - customEnvVars="$customEnvVars BUILD_BUILDNUMBER=$(Build.BuildNumber)" - - customDockerRunArgs="" - for envVar in $customEnvVars; do - customDockerRunArgs="$customDockerRunArgs -e $envVar" - done - - if [[ '${{ parameters.runOnline }}' == 'False' ]]; then - customDockerRunArgs="$customDockerRunArgs --network none" - fi - - docker run --rm -v "$(sourcesPath):/vmr" -w /vmr $customDockerRunArgs ${{ parameters.container }} ./build.sh $buildArgs - else - for envVar in $customEnvVars; do - customEnvVarsWithBashSyntax="$customEnvVarsWithBashSyntax export $envVar;" - done - cd $(sourcesPath) - eval $customEnvVarsWithBashSyntax - ./build.sh $buildArgs - fi - displayName: Build - - # Only run tests if enabled - # TODO: Remove the PullRequest condition after the next re-bootstrap: https://github.com/dotnet/source-build/issues/4362 - - ${{ if eq(parameters.runTests, 'True') }}: - - script: | - set -ex - - dockerVolumeArgs="-v $(sourcesPath):/vmr" - customBuildArgs='' - extraBuildProperties='' - - if [[ ! -z '${{ parameters.targetOS }}' ]]; then - extraBuildProperties="$extraBuildProperties /p:TargetOS=${{ parameters.targetOS }}" - fi - - if [[ ! -z '${{ parameters.targetArchitecture }}' ]]; then - extraBuildProperties="$extraBuildProperties /p:TargetArchitecture=${{ parameters.targetArchitecture }}" - fi - - if [[ '${{ parameters.useDevVersions }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --dev" - fi - - if [[ '${{ parameters.buildSourceOnly }}' == 'True' ]]; then - if [[ '${{ parameters.enablePoison }}' == 'True' ]]; then - customBuildArgs="$customBuildArgs --poison" - fi - customBuildArgs="$customBuildArgs --source-only /p:SmokeTestsWarnOnSdkContentDiffs=true /p:SmokeTestsExcludeOmniSharpTests=${{ parameters.excludeOmniSharpTests }}" - fi - - if [[ -n "${{ parameters.extraProperties }}" ]]; then - extraBuildProperties="$extraBuildProperties ${{ parameters.extraProperties }}" - fi - - # Only use Docker when a container is specified - if [[ -n "${{ parameters.container }}" ]]; then - docker run --rm $dockerVolumeArgs -w /vmr ${{ parameters.container }} ./build.sh /bl:artifacts/log/Release/Test.binlog --test $customBuildArgs $extraBuildProperties $(additionalBuildArgs) - else - cd $(sourcesPath) - ./build.sh /bl:artifacts/log/Release/Test.binlog --test $customBuildArgs $extraBuildProperties $(additionalBuildArgs) - fi - - displayName: Run Tests - - - ${{ if eq(parameters.targetOS, 'windows') }}: - - # Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph. - - powershell: | - function CopyWithRelativeFolders($sourcePath, $targetFolder, $filter) { - Get-ChildItem -Path $sourcePath -Filter $filter -Recurse | ForEach-Object { - $targetPath = Join-Path $targetFolder (Resolve-Path -Relative $_.FullName) - New-Item -ItemType Directory -Path (Split-Path -Parent $targetPath) -Force | Out-Null - Copy-Item $_.FullName -Destination $targetPath -Force - } - } - - $targetFolder = "$(Build.StagingDirectory)/BuildLogs/" - New-Item -ItemType Directory -Path $targetFolder -Force | Out-Null - - cd "$(sourcesPath)" - - CopyWithRelativeFolders "artifacts/log/" $targetFolder "*.binlog" - CopyWithRelativeFolders "artifacts/log/" $targetFolder "*.log" - CopyWithRelativeFolders "src/" $targetFolder "*.binlog" - CopyWithRelativeFolders "src/" $targetFolder "*.log" - - if (Test-Path "artifacts/scenario-tests/") { - CopyWithRelativeFolders "artifacts/scenario-tests/" $targetFolder "*.binlog" - } - - if (Test-Path "artifacts/TestResults/*") { - CopyWithRelativeFolders "artifacts/TestResults/" $targetFolder "*.binlog" - CopyWithRelativeFolders "artifacts/TestResults/" $targetFolder "*.diff" - CopyWithRelativeFolders "artifacts/TestResults/" $targetFolder "Updated*.txt" - CopyWithRelativeFolders "artifacts/TestResults/" $targetFolder "*.trx" - } - - # check if we have assets to publish - if (Test-Path "artifacts/assets/Release/*") { - echo "##vso[task.setvariable variable=hasAssets]true" - } - displayName: Prepare BuildLogs staging directory and check assets - continueOnError: true - condition: succeededOrFailed() - - - ${{ else }}: - - # Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph. - - script: | - set -x - - targetFolder=$(Build.StagingDirectory)/BuildLogs/ - mkdir -p ${targetFolder} - - cd "$(sourcesPath)" - find artifacts/log/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \; - find artifacts/log/ -type f -name "*.log" -exec rsync -R {} -t ${targetFolder} \; - [ -d "artifacts/scenario-tests/" ] && find artifacts/scenario-tests/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.diff" -exec rsync -R {} -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "Updated*.txt" -exec rsync -R {} -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.trx" -exec rsync -R {} -t ${targetFolder} \; - - if [[ "${{ parameters.buildSourceOnly }}" == "True" ]]; then - find artifacts/prebuilt-report/ -exec rsync -R {} -t ${targetFolder} \; - find artifacts/log/binary-report/ -exec rsync -R {} -t ${targetFolder} \; - fi - - find src/ -type f -name "*.binlog" -exec rsync -R {} -t ${targetFolder} \; - find src/ -type f -name "*.log" -exec rsync -R {} -t ${targetFolder} \; - - # check if we have assets to publish - if [ -n "$(ls -A 'artifacts/assets/Release/')" ]; then - echo "##vso[task.setvariable variable=hasAssets]true" - fi - displayName: Prepare BuildLogs staging directory and check assets - continueOnError: true - condition: succeededOrFailed() - - - ${{ if or(ne(variables['System.TeamProject'], 'internal'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - publish: $(Build.StagingDirectory)/BuildLogs - artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) - displayName: Publish BuildLogs - continueOnError: true - condition: always() - - # Only upload test results if enabled - - ${{ if eq(parameters.runTests, 'True') }}: - - task: PublishTestResults@2 - displayName: Publish Test Results - condition: succeededOrFailed() - continueOnError: true - inputs: - testRunner: VSTest - testResultsFiles: 'artifacts/TestResults/Release/*.trx' - searchFolder: $(sourcesPath) - mergeTestResults: true - publishRunAttachments: true - testRunTitle: Tests_$(Agent.JobName) - - - task: PublishTestResults@2 - displayName: Publish Scenario Test Results - condition: succeededOrFailed() - continueOnError: true - inputs: - testRunner: xUnit - testResultsFiles: 'artifacts/TestResults/**/scenario-tests/*.xml' - searchFolder: $(sourcesPath) - mergeTestResults: true - publishRunAttachments: true - testRunTitle: ScenarioTests_$(Agent.JobName) - - - task: CopyFiles@2 - inputs: - SourceFolder: $(sourcesPath)/artifacts - Contents: | - VerticalManifest.xml - assets/** - TargetFolder: $(Build.ArtifactStagingDirectory)/publishing - displayName: Copy artifacts to Artifact Staging Directory - condition: succeededOrFailed() - - # When building from source, the Private.SourceBuilt.Artifacts archive already contains the nuget packages - - ${{ if ne(parameters.buildSourceOnly, 'true') }}: - - task: CopyFiles@2 - inputs: - SourceFolder: $(sourcesPath)/artifacts/packages - TargetFolder: $(Build.ArtifactStagingDirectory)/publishing/packages - displayName: Copy packages to Artifact Staging Directory - condition: succeededOrFailed() - - - ${{ if or(ne(variables['System.TeamProject'], 'internal'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - publish: $(Build.ArtifactStagingDirectory)/publishing - artifact: $(Agent.JobName)_Artifacts - displayName: Publish Artifacts - condition: succeededOrFailed() - continueOnError: true diff --git a/eng/pipelines/templates/jobs/vmr-synchronization.yml b/eng/pipelines/templates/jobs/vmr-synchronization.yml deleted file mode 100644 index ae950fd34..000000000 --- a/eng/pipelines/templates/jobs/vmr-synchronization.yml +++ /dev/null @@ -1,89 +0,0 @@ -### This job synchronizes code from product repositories into the VMR (https://github.com/dotnet/dotnet) -### It synchronizes the content of the VMR to this new commit and pushes the changes - -parameters: -- name: targetRef - displayName: Target revision of dotnet/installer to synchronize - type: string - default: $(Build.SourceVersion) - -- name: vmrBranch - displayName: dotnet/dotnet branch to use - type: string - default: $(Build.SourceBranch) - -- name: noPush - displayName: Don't push changes to dotnet/dotnet - type: boolean - default: false - -jobs: -- job: Synchronize_VMR - displayName: Synchronize VMR's ${{ parameters.vmrBranch }} - timeoutInMinutes: 120 - variables: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - template: /eng/common/templates/variables/pool-providers.yml - - ${{ else }}: - - template: /eng/common/templates-official/variables/pool-providers.yml - - name: vmrPath - value: $(Agent.BuildDirectory)/vmr - - ${{ if not(parameters.noPush) }}: - - ${{ if and( eq(variables['System.TeamProject'], 'internal'), or(startswith(variables['Build.SourceBranch'], 'refs/heads/release/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}: - - group: DotNetBot-GitHub - - group: DotNetBot-GitHub-No-Scopes - - name: vmrPublicUrl - value: https://github.com/dotnet/dotnet - - ${{ if and( eq(variables['System.TeamProject'], 'internal'), startswith(variables['Build.SourceBranch'], 'refs/heads/internal/release/')) }}: - # https://dev.azure.com/dnceng/internal/_library?itemType=VariableGroups&view=VariableGroupView&variableGroupId=172&path=DotNetBot-AzDO-PAT - - group: DotNetBot-AzDO-PAT - - name: vmrInternalUrl - value: https://dnceng@dev.azure.com/dnceng/internal/_git/dotnet-dotnet - - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: $(DncEngPublicBuildPool) - image: 1es-ubuntu-2004-open - os: linux - ${{ else }}: - name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals 1es-ubuntu-2004 - os: linux - - steps: - - template: ../steps/vmr-prepare.yml - parameters: - vmrBranch: ${{ parameters.vmrBranch }} - - - template: ../steps/vmr-pull-updates.yml - parameters: - vmrPath: $(vmrPath) - 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/')) }}: - - script: > - ./.dotnet/dotnet darc vmr push - --vmr '$(vmrPath)' - --commit-verification-pat '$(BotAccount-dotnet-maestro-bot-no-scopes-PAT)' - --branch '${{ parameters.vmrBranch }}' - --remote-url '$(vmrPublicUrl)' - --github-pat '$(BotAccount-dotnet-bot-repo-PAT)' - --verbose - displayName: Push changes to dotnet/dotnet (public) - workingDirectory: $(Agent.BuildDirectory)/installer - - # Push internal/release branches to the internal VMR - - ${{ if startsWith(parameters.vmrBranch, 'internal/release/') }}: - - script: > - ./.dotnet/dotnet darc vmr push - --vmr '$(vmrPath)' - --skip-commit-verification - --branch '${{ parameters.vmrBranch }}' - --remote-url '$(vmrInternalUrl)' - --azdev-pat '$(dn-bot-dnceng-build-rw-code-rw)' - --verbose - displayName: Push changes to dotnet-dotnet (internal) - workingDirectory: $(Agent.BuildDirectory)/installer diff --git a/eng/pipelines/templates/stages/vmr-build.yml b/eng/pipelines/templates/stages/vmr-build.yml deleted file mode 100644 index 2f9c1ed10..000000000 --- a/eng/pipelines/templates/stages/vmr-build.yml +++ /dev/null @@ -1,1037 +0,0 @@ -### This stage builds https://github.com/dotnet/dotnet with varying parameters -### If run in a PR, new changes are applied to a local copy of the VMR, then it is built and tested - -parameters: -# Branch of the VMR to use (to push to for internal builds) -- name: vmrBranch - type: string - default: $(Build.SourceBranch) - -# Scope of jobs which are executed -- name: scope - type: string - values: - # run 1 leg for smoke tests - - ultralite - # run several legs e.g. win/linux/mac for basic testing - - lite - # run everything - - full - -# True when build is running from dotnet/dotnet directly -- name: isBuiltFromVmr - type: boolean - default: false - -# True when building the VMR in source-only mode -- name: isSourceOnlyBuild - type: boolean - default: false - -# These are not expected to be passed it but rather just object variables reused below -- name: pool_Linux - type: object - default: - name: $(defaultPoolName) - image: $(poolImage_Linux) - demands: ImageOverride -equals $(poolImage_Linux) - os: linux - -- name: pool_Windows - type: object - default: - name: $(defaultPoolName) - image: $(poolImage_Windows) - demands: ImageOverride -equals $(poolImage_Windows) - os: windows - -- name: pool_LinuxArm64 - type: object - default: - name: $(poolName_LinuxArm64) - image: $(poolImage_LinuxArm64) - demands: ImageOverride -equals $(poolImage_LinuxArm64) - hostArchitecture: Arm64 - os: linux - -- name: pool_Mac - type: object - default: - name: Azure Pipelines - vmImage: $(poolImage_Mac) - os: macOS - -#### SOURCE-ONLY BUILD #### -stages: -- ${{ if parameters.isSourceOnlyBuild }}: - - stage: VMR_SourceOnly_Build - displayName: VMR Source-Only Build - dependsOn: [] - variables: - - template: ../variables/vmr-build.yml - parameters: - vmrBranch: ${{ parameters.vmrBranch }} - - jobs: - - ### Jobs for ultralite builds ### - - 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: CentOSStream9_Online_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.centOSStream9Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: true # ✅ - useMonoRuntime: false # 🚫 - withPreviousSDK: false # 🚫 - - ### Additional jobs for lite/full builds ### - - ${{ if in(parameters.scope, 'lite', 'full') }}: - - - 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: CentOSStream9_Online_CurrentSourceBuiltSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.centOSStream9Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: true # ✅ - useMonoRuntime: false # 🚫 - withPreviousSDK: false # 🚫 - reuseBuildArtifactsFrom: centOSStream9_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: Alpine319_Offline_PreviousSourceBuiltSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - artifactsRid: alpine.3.19-x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.alpine319Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: true # ✅ - excludeOmniSharpTests: true # ✅ - runOnline: false # 🚫 - useMonoRuntime: false # 🚫 - withPreviousSDK: true # ✅ - - ### Additional jobs for full build ### - - ${{ if in(parameters.scope, 'full') }}: - - - 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: Alpine319_Online_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.alpine319Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - 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: CentOSStream9_Offline_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.centOSStream9Container }} - buildFromArchive: true # ✅ - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: false # 🚫 - runOnline: false # 🚫 - 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: CentOSStream9_Online_PreviousSourceBuiltSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - artifactsRid: centos.9-x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.centOSStream9Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: false # 🚫 - runOnline: true # ✅ - useMonoRuntime: false # 🚫 - withPreviousSDK: true # ✅ - - - 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: CentOSStream9_Offline_PreviousSourceBuiltSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - artifactsRid: centos.9-x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.centOSStream9Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: false # 🚫 - useMonoRuntime: false # 🚫 - withPreviousSDK: true # ✅ - - - 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: CentOSStream9_Mono_Offline_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.centOSStream9Container }} - buildFromArchive: true # ✅ - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: true # ✅ - runOnline: false # 🚫 - useMonoRuntime: true # ✅ - 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: Fedora39_Offline_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.fedora39Container }} - buildFromArchive: true # ✅ - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: false # 🚫 - runOnline: false # 🚫 - 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: Ubuntu2204_Offline_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.ubuntu2204Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: false # 🚫 - runOnline: false # 🚫 - 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: Ubuntu2204Arm64_Offline_MsftSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_LinuxArm64 }} - container: ${{ variables.ubuntu2204ArmContainer }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: false # 🚫 - runOnline: false # 🚫 - 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: Fedora39_Offline_CurrentSourceBuiltSdk - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.fedora39Container }} - buildFromArchive: false # 🚫 - buildSourceOnly: true # ✅ - enablePoison: false # 🚫 - excludeOmniSharpTests: false # 🚫 - runOnline: false # 🚫 - useMonoRuntime: false # 🚫 - withPreviousSDK: false # 🚫 - reuseBuildArtifactsFrom: Fedora39_Offline_MsftSdk - -#### VERTICAL BUILD #### -- ${{ if not(parameters.isSourceOnlyBuild) }}: - - stage: VMR_Vertical_Build - displayName: VMR Vertical Build - dependsOn: [] - variables: - - template: ../variables/vmr-build.yml - parameters: - vmrBranch: ${{ parameters.vmrBranch }} - jobs: - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Ubuntu2204_DevVersions - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.ubuntu2204Container }} - targetOS: linux - targetArchitecture: x64 - useDevVersions: true # Use dev versions for CI validation of the experience. If we decide to ship assets from this leg, then we should remove this option. - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Ubuntu2204 - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.ubuntu2204Container }} - targetOS: linux - targetArchitecture: x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Windows }} - targetOS: windows - targetArchitecture: x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Android_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - targetOS: android - targetArchitecture: arm64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Browser_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: wasm - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.browserCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: browser - targetArchitecture: wasm - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: iOSSimulator_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: iossimulator - targetArchitecture: arm64 - runTests: false - - ### Additional jobs for full build ### - - ${{ if in(parameters.scope, 'full') }}: - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Android_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - targetOS: android - targetArchitecture: arm - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Android_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - targetOS: android - targetArchitecture: x64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Android_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x86 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - targetOS: android - targetArchitecture: x86 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Browser_Multithreaded_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: wasm - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.browserCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: browser - targetArchitecture: wasm - extraProperties: /p:DotNetBuildRuntimeWasmEnableThreads=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: LinuxBionic_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: linux-bionic - targetArchitecture: arm64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: LinuxBionic_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: linux-bionic - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: LinuxBionic_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: linux-bionic - targetArchitecture: x64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: LinuxBionic_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.androidCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: linux-bionic - targetArchitecture: x64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: iOS_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: ios - targetArchitecture: arm64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: iOS_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: ios - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: iOSSimulator_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: iossimulator - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: iOSSimulator_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: iossimulator - targetArchitecture: x64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: iOSSimulator_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: iossimulator - targetArchitecture: x64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: MacCatalyst_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: maccatalyst - targetArchitecture: arm64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: MacCatalyst_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: maccatalyst - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: MacCatalyst_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: maccatalyst - targetArchitecture: x64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: MacCatalyst_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: maccatalyst - targetArchitecture: x64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: tvOS_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: tvos - targetArchitecture: arm64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: tvOS_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: tvos - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: tvOSSimulator_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: tvossimulator - targetArchitecture: arm64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: tvOSSimulator_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: tvossimulator - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: tvOSSimulator_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: tvossimulator - targetArchitecture: x64 - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: tvOSSimulator_NativeAOT_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: tvossimulator - targetArchitecture: x64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Wasi_Shortstack - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: wasm - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.wasiCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: wasi - targetArchitecture: wasm - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: OSX - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: osx - targetArchitecture: x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: OSX_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - useMonoRuntime: true - targetOS: osx - targetArchitecture: x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerX64CrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: linux - targetArchitecture: x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Pgo - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerX64CrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: linux - targetArchitecture: x64 - extraProperties: /p:PgoInstrument=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerX64CrossContainer }} - crossRootFs: '/crossrootfs/x64' - useMonoRuntime: true - targetOS: linux - targetArchitecture: x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_ShortStack_Mono_LLVMAOT - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerX64CrossContainer }} - crossRootFs: '/crossrootfs/x64' - useMonoRuntime: true - targetOS: linux - targetArchitecture: x64 - extraProperties: /p:DotNetBuildMonoEnableLLVM=true /p:DotNetBuildMonoAOTEnableLLVM=true /p:DotNetBuildMonoBundleLLVMOptimizer=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_ShortStack_Mono_LLVMJIT - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerX64CrossContainer }} - crossRootFs: '/crossrootfs/x64' - useMonoRuntime: true - targetOS: linux - targetArchitecture: x64 - extraProperties: /p:DotNetBuildMonoEnableLLVM=true /p:DotNetBuildMonoBundleLLVMOptimizer=false - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArmCrossContainer }} - crossRootFs: '/crossrootfs/arm' - targetOS: linux - targetArchitecture: arm - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArmCrossContainer }} - crossRootFs: '/crossrootfs/arm' - useMonoRuntime: true - targetOS: linux - targetArchitecture: arm - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArm64CrossContainer }} - crossRootFs: '/crossrootfs/arm64' - targetOS: linux - targetArchitecture: arm64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Pgo - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArm64CrossContainer }} - crossRootFs: '/crossrootfs/arm64' - targetOS: linux - targetArchitecture: arm64 - extraProperties: /p:PgoInstrument=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArm64CrossContainer }} - crossRootFs: '/crossrootfs/arm64' - useMonoRuntime: true - targetOS: linux - targetArchitecture: arm64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Alpine - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerX64AlpineCrossContainer }} - crossRootFs: '/crossrootfs/x64' - targetOS: linux-musl - targetArchitecture: x64 - extraProperties: /p:TargetRID=linux-musl-x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Alpine_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerX64AlpineCrossContainer }} - crossRootFs: '/crossrootfs/x64' - useMonoRuntime: true - targetOS: linux-musl - targetArchitecture: x64 - extraProperties: /p:TargetRID=linux-musl-x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Alpine - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArmAlpineCrossContainer }} - crossRootFs: '/crossrootfs/arm' - targetOS: linux-musl - targetArchitecture: arm - extraProperties: /p:TargetRID=linux-musl-arm - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_Alpine - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArm64AlpineCrossContainer }} - crossRootFs: '/crossrootfs/arm64' - targetOS: linux-musl - targetArchitecture: arm64 - extraProperties: /p:TargetRID=linux-musl-arm64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_ShortStack_Mono_LLVMAOT - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArm64CrossContainer }} - crossRootFs: '/crossrootfs/arm64' - useMonoRuntime: true - targetOS: linux - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildMonoEnableLLVM=true /p:DotNetBuildMonoAOTEnableLLVM=true /p:DotNetBuildMonoBundleLLVMOptimizer=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Mariner_x64_Cross_ShortStack_Mono_LLVMJIT - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Linux }} - container: ${{ variables.marinerArm64CrossContainer }} - crossRootFs: '/crossrootfs/arm64' - useMonoRuntime: true - targetOS: linux - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildMonoEnableLLVM=true /p:DotNetBuildMonoBundleLLVMOptimizer=false - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: OSX - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: osx - targetArchitecture: arm64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: OSX_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - useMonoRuntime: true - targetOS: osx - targetArchitecture: arm64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: OSX_ShortStack_Mono_LLVMJIT - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - useMonoRuntime: true - targetOS: osx - targetArchitecture: x64 - extraProperties: /p:DotNetBuildMonoEnableLLVM=true /p:DotNetBuildMonoBundleLLVMOptimizer=false - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: OSX_ShortStack_NativeAOT - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Mac }} - targetOS: osx - targetArchitecture: x64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: OSX_ShortStack_NativeAOT - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Mac }} - targetOS: osx - targetArchitecture: arm64 - extraProperties: /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Windows }} - targetOS: windows - targetArchitecture: arm64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Windows }} - useMonoRuntime: true - targetOS: windows - targetArchitecture: x64 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x86 - pool: ${{ parameters.pool_Windows }} - targetOS: windows - targetArchitecture: x86 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows_Mono - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x86 - pool: ${{ parameters.pool_Windows }} - useMonoRuntime: true - targetOS: windows - targetArchitecture: x86 - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows_Pgo - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x64 - pool: ${{ parameters.pool_Windows }} - targetOS: windows - targetArchitecture: x64 - extraProperties: /p:PgoInstrument=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows_Pgo - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: x86 - pool: ${{ parameters.pool_Windows }} - targetOS: windows - targetArchitecture: x86 - extraProperties: /p:PgoInstrument=true - runTests: false - - - template: ../jobs/vmr-build.yml - parameters: - buildName: Windows_Pgo - isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} - vmrBranch: ${{ variables.VmrBranch }} - architecture: arm64 - pool: ${{ parameters.pool_Windows }} - targetOS: windows - targetArchitecture: arm64 - extraProperties: /p:PgoInstrument=true - runTests: false diff --git a/eng/pipelines/templates/steps/vmr-prepare.yml b/eng/pipelines/templates/steps/vmr-prepare.yml deleted file mode 100644 index a2715f5de..000000000 --- a/eng/pipelines/templates/steps/vmr-prepare.yml +++ /dev/null @@ -1,18 +0,0 @@ -### These steps clone the VMR (https://github.com/dotnet/dotnet) into $(Agent.BuildDirectory)/vmr for installer - -parameters: -- name: vmrBranch - displayName: dotnet/dotnet branch to use - type: string - -steps: - - checkout: vmr - displayName: Clone dotnet/dotnet - path: vmr - clean: true - - - script: | - git checkout --track origin/${{ parameters.vmrBranch }} - echo "##vso[task.setvariable variable=vmrBranch]${{ parameters.vmrBranch }}" - displayName: Check out ${{ parameters.vmrBranch }} - workingDirectory: $(Agent.BuildDirectory)/vmr \ No newline at end of file diff --git a/eng/pipelines/templates/steps/vmr-pull-updates.yml b/eng/pipelines/templates/steps/vmr-pull-updates.yml deleted file mode 100644 index 4bf968359..000000000 --- a/eng/pipelines/templates/steps/vmr-pull-updates.yml +++ /dev/null @@ -1,99 +0,0 @@ -### These steps synchronize new code from product repositories into the VMR (https://github.com/dotnet/dotnet). -### They initialize the darc CLI and pull the new updates. -### Changes are applied locally onto the already cloned VMR (located in $vmrPath). - -parameters: -- name: vmrBranch - displayName: dotnet/dotnet branch to use - type: string - -- name: targetRef - displayName: Target revision in dotnet/installer to synchronize - type: string - default: $(Build.SourceVersion) - -- name: vmrPath - displayName: Path where the dotnet/dotnet is checked out to - type: string - default: $(Agent.BuildDirectory)/vmr - -steps: -- checkout: self - 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 }}" - 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 }} - --tmp $(Agent.TempDirectory) - --azdev-pat '$(dn-bot-all-orgs-code-r)' - --branch ${{ parameters.vmrBranch }} - --repository "installer:${{ parameters.targetRef }}" - --recursive - --remote "installer:$(Agent.BuildDirectory)/installer" - --component-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/Component.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 (Unix) - condition: ne(variables['Agent.OS'], 'Windows_NT') - workingDirectory: $(Agent.BuildDirectory)/installer - -- script: git config --global diff.astextplain.textconv echo - displayName: Disable astextplain in git diff (Windows) - condition: eq(variables['Agent.OS'], 'Windows_NT') - -- powershell: > - ./eng/vmr-sync.ps1 ` - -vmr ${{ parameters.vmrPath }} ` - -tmp $(Agent.TempDirectory) ` - -azdevPat '$(dn-bot-all-orgs-code-r)' ` - -branch ${{ parameters.vmrBranch }} ` - -repository "installer:${{ parameters.targetRef }}" ` - -recursive ` - # passing remote fails for some reason, but it is the default anyway - # -remote "installer:$(Agent.BuildDirectory)/installer" - -componentTemplate $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/Component.template.md ` - -tpnTemplate $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt ` - -debugOutput - - if ($LASTEXITCODE -ne 0) { - echo "##vso[task.logissue type=error]Failed to synchronize the VMR" - exit 1 - } - displayName: Synchronize dotnet/dotnet (Windows) - condition: eq(variables['Agent.OS'], 'Windows_NT') - workingDirectory: $(Agent.BuildDirectory)/installer - -- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}: - - publish: $(Agent.TempDirectory) - artifact: $(System.JobDisplayName)_FailedPatches - displayName: Upload failed patches - condition: failed() diff --git a/eng/pipelines/templates/variables/vmr-build.yml b/eng/pipelines/templates/variables/vmr-build.yml deleted file mode 100644 index 9315ac61c..000000000 --- a/eng/pipelines/templates/variables/vmr-build.yml +++ /dev/null @@ -1,71 +0,0 @@ -parameters: -- name: vmrBranch - type: string - -variables: -- ${{ if ne(parameters.vmrBranch, '') }}: - - name: VmrBranch - value: ${{ parameters.vmrBranch }} -- ${{ else }}: - - name: VmrBranch - value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} - -- name: alpine319Container - value: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode -- name: centOSStream9Container - value: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9 -- name: fedora39Container - value: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39 -- name: ubuntu2204Container - value: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04 -- name: ubuntu2204ArmContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-arm64 -- name: marinerX64CrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64 -- name: marinerArmCrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm -- name: marinerArm64CrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64 -- name: marinerX64AlpineCrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64-alpine -- name: marinerArmAlpineCrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine -- name: marinerArm64AlpineCrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64-alpine -- name: androidCrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-android-amd64 -- name: browserCrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-webassembly-20230917141449-2aaa02c -- name: wasiCrossContainer - value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-webassembly - -- ${{ if eq(variables['System.TeamProject'], 'public') }}: - - name: defaultPoolName - value: NetCore-Public-XL - - name: poolImage_Linux - value: 1es-ubuntu-2004-open - - name: poolImage_LinuxArm64 - value: Mariner-2-Docker-ARM64 - - name: poolName_LinuxArm64 - value: Docker-Linux-Arm-Public - - name: poolImage_Mac - value: macos-12 - - name: poolImage_Windows - value: windows.vs2022preview.amd64.open -- ${{ else }}: - - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - - name: defaultPoolName - value: NetCore1ESPool-Internal-XL - - ${{ else }}: - - name: defaultPoolName - value: $(DncEngInternalBuildPool) - - name: poolImage_Linux - value: 1es-ubuntu-2204 - - name: poolImage_LinuxArm64 - value: Mariner-2-Docker-ARM64 - - name: poolName_LinuxArm64 - value: Docker-Linux-Arm-Internal - - name: poolImage_Mac - value: macos-13-arm64 - - name: poolImage_Windows - value: windows.vs2022preview.amd64 diff --git a/eng/pipelines/vmr-build-pr.yml b/eng/pipelines/vmr-build-pr.yml deleted file mode 100644 index 09c0f949f..000000000 --- a/eng/pipelines/vmr-build-pr.yml +++ /dev/null @@ -1,79 +0,0 @@ -# This YAML is used by these PR pipelines: -# -# - installer-source-build -# https://dev.azure.com/dnceng-public/public/_build?definitionId=233 -# - installer-unified-build -# https://dev.azure.com/dnceng-public/public/_build?definitionId=277 -# - installer-unified-build-full -# https://dev.azure.com/dnceng-public/public/_build?definitionId=279 - -trigger: none -pr: - branches: - include: - - main - - release/* - exclude: - - release/*.0.2xx - - release/*.0.3xx - - release/*.0.4xx - -parameters: -- name: vmrBranch - displayName: dotnet/dotnet branch to push to - type: string - default: ' ' - -- name: disableBuild - displayName: Skip the VMR Build stage - type: boolean - default: false - -variables: -- template: /eng/common/templates/variables/pool-providers.yml@self - -- ${{ if ne(parameters.vmrBranch, ' ') }}: - - name: VmrBranch - value: ${{ replace(parameters.vmrBranch, ' ', '') }} -- ${{ else }}: - - name: VmrBranch - value: ${{ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} - -# enable source-only build for pipelines with the -source-build suffix -- name: isSourceOnlyBuild - value: ${{ contains(variables['Build.DefinitionName'], '-source-build') }} - -resources: - repositories: - - repository: vmr - type: github - name: dotnet/dotnet - endpoint: dotnet - ref: ${{ variables.VmrBranch }} - -stages: -# You can temporarily disable the VMR Build stage by setting the disableBuild variable -- ${{ if not(parameters.disableBuild) }}: - - template: templates/stages/vmr-build.yml - parameters: - vmrBranch: ${{ variables.VmrBranch }} - isBuiltFromVmr: false - isSourceOnlyBuild: ${{ variables.isSourceOnlyBuild }} - ${{ if contains(variables['Build.DefinitionName'], '-full') }}: - scope: full - ${{ elseif eq(variables.isSourceOnlyBuild, 'true') }}: - scope: ultralite - ${{ else }}: - scope: lite - -# 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/pipelines/vmr-sync-internal.yml b/eng/pipelines/vmr-sync-internal.yml deleted file mode 100644 index cb0877ea2..000000000 --- a/eng/pipelines/vmr-sync-internal.yml +++ /dev/null @@ -1,64 +0,0 @@ -pr: none - -trigger: - batch: true - branches: - include: - - internal/release/* - exclude: - - internal/release/*.0.2xx - - internal/release/*.0.3xx - - internal/release/*.0.4xx - -resources: - repositories: - - repository: vmr - type: git - name: dotnet-dotnet - ref: $(Build.SourceBranch) - - - repository: 1ESPipelineTemplates - type: git - name: 1ESPipelineTemplates/1ESPipelineTemplates - ref: refs/tags/release - -parameters: -- name: vmrBranch - displayName: dotnet-dotnet branch to push to - type: string - default: ' ' - -variables: -- template: /eng/common/templates-official/variables/pool-providers.yml@self - -- ${{ if ne(parameters.vmrBranch, ' ') }}: - - name: VmrBranch - value: ${{ replace(parameters.vmrBranch, ' ', '') }} -- ${{ else }}: - - name: VmrBranch - value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} - -extends: - template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates - parameters: - sdl: - sourceAnalysisPool: - name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 - os: windows - - sourceRepositoriesToScan: - exclude: - - repository: vmr - - componentgovernance: - sourceScanPath: $(Agent.BuildDirectory)/vmr - ignoreDirectories: $(Agent.BuildDirectory)/vmr/src - - stages: - - stage: VMRSynchronization - displayName: VMR Synchronization - jobs: - - template: /eng/pipelines/templates/jobs/vmr-synchronization.yml@self - parameters: - vmrBranch: ${{ variables.VmrBranch }} \ No newline at end of file diff --git a/eng/pipelines/vmr-sync.yml b/eng/pipelines/vmr-sync.yml deleted file mode 100644 index 7de3ef614..000000000 --- a/eng/pipelines/vmr-sync.yml +++ /dev/null @@ -1,66 +0,0 @@ -pr: none - -trigger: - batch: true - branches: - include: - - main - - release/* - exclude: - - release/*.0.2xx - - release/*.0.3xx - - release/*.0.4xx - -resources: - repositories: - - repository: vmr - type: github - name: dotnet/dotnet - endpoint: dotnet - ref: $(Build.SourceBranch) - - - repository: 1ESPipelineTemplates - type: git - name: 1ESPipelineTemplates/1ESPipelineTemplates - ref: refs/tags/release - -parameters: -- name: vmrBranch - displayName: dotnet/dotnet branch to push to - type: string - default: ' ' - -variables: -- template: /eng/common/templates-official/variables/pool-providers.yml@self - -- ${{ if ne(parameters.vmrBranch, ' ') }}: - - name: VmrBranch - value: ${{ replace(parameters.vmrBranch, ' ', '') }} -- ${{ else }}: - - name: VmrBranch - value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} - -extends: - template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates - parameters: - sdl: - sourceAnalysisPool: - name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 - os: windows - - sourceRepositoriesToScan: - exclude: - - repository: vmr - - componentgovernance: - sourceScanPath: $(Agent.BuildDirectory)/vmr - ignoreDirectories: $(Agent.BuildDirectory)/vmr/src - - stages: - - stage: VMRSynchronization - displayName: VMR Synchronization - jobs: - - template: /eng/pipelines/templates/jobs/vmr-synchronization.yml@self - parameters: - vmrBranch: ${{ variables.VmrBranch }} diff --git a/eng/restore-toolset.ps1 b/eng/restore-toolset.ps1 index e3862f0e9..ff7534782 100644 --- a/eng/restore-toolset.ps1 +++ b/eng/restore-toolset.ps1 @@ -3,12 +3,6 @@ function InitializeCustomSDKToolset { return } - # The following frameworks and tools are used only for testing. - # Do not attempt to install them in source build. - if ($productBuild -or $properties -like "*DotNetBuildRepo=true*") { - return - } - # InstallDotNetSharedFramework "1.0.5" # InstallDotNetSharedFramework "1.1.2" # InstallDotNetSharedFramework "2.1.0" diff --git a/eng/restore-toolset.sh b/eng/restore-toolset.sh index f4352ac20..6305387d5 100644 --- a/eng/restore-toolset.sh +++ b/eng/restore-toolset.sh @@ -3,12 +3,6 @@ function InitializeCustomSDKToolset { return fi - # The following frameworks and tools are used only for testing. - # Do not attempt to install them in source build. - if [[ $product_build == true || $properties == *"DotNetBuildRepo=true"* ]]; then - return - fi - #InstallDotNetSharedFramework "1.0.5" #InstallDotNetSharedFramework "1.1.2" diff --git a/eng/vmr-sync.ps1 b/eng/vmr-sync.ps1 deleted file mode 100644 index bba9fef22..000000000 --- a/eng/vmr-sync.ps1 +++ /dev/null @@ -1,216 +0,0 @@ -<# -.SYNOPSIS - -This script is used for synchronizing the dotnet/dotnet VMR locally. This means pulling new -code from various repositories into the 'dotnet/dotnet' repository. - -.DESCRIPTION - -The script is used during CI to ingest new code based on dotnet/installer but it can also help -for reproducing potential failures during installer's PRs, namely to fix the Source-Build. -Another usecase is to try manually synchronizing a given commit of some repo into the VMR and -trying to Source-Build the VMR. This can help when fixing the Source-Build but using a commit -from a not-yet merged branch (or fork) to test the fix will help. - -The tooling that synchronizes the VMR will need to clone the various repositories into a temporary -folder. These clones can be re-used in future synchronizations so it is advised you dedicate a -folder to this to speed up your re-runs. - -.EXAMPLE - Synchronize current installer and all dependencies into a local VMR: - ./vmr-sync.ps1 -vmrDir "$HOME/repos/dotnet" -tmpDir "$HOME/repos/tmp" - - Synchronize the VMR to a specific commit of dotnet/runtime using custom fork: - ./vmr-sync.ps1 ` - -repository runtime:e7e71da303af8dc97df99b098f21f526398c3943 ` - -remote runtime:https://github.com/yourfork/runtime ` - -tmpDir "$HOME/repos/tmp" - -.PARAMETER tmpDir -Required. Path to the temporary folder where repositories will be cloned - -.PARAMETER vmrBranch -Optional. Branch of the 'dotnet/dotnet' repo to synchronize. The VMR will be checked out to this branch - -.PARAMETER component-template -Optional. Template for VMRs Component.md used for regenerating the file to list the newest versions of -components. -Defaults to src/VirtualMonoRepo/Component.template.md - -.PARAMETER recursive -Optional. Recursively synchronize all the source build dependencies (declared in Version.Details.xml) -This is used when performing the full synchronization during installer's CI and the final VMR sync. -Defaults to false unless no repository is supplied in which case a recursive sync of installer is performed. - -.PARAMETER remote -Optional. Additional remote to use during the synchronization -This can be used to synchronize to a commit from a fork of the repository -Example: 'runtime:https://github.com/yourfork/runtime' - -.PARAMETER repository -Optional. Repository + git ref separated by colon to synchronize to. -This can be a specific commit, branch, tag. -If not supplied, the revision of the parent installer repository of this script will be used (recursively). -Example: 'runtime:my-branch-name' - -.PARAMETER tpnTemplate -Optional. Template for the header of VMRs THIRD-PARTY-NOTICES file. -Defaults to src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt - -.PARAMETER azdevPat -Optional. Azure DevOps PAT to use for cloning private repositories. - -.PARAMETER vmrDir -Optional. Path to the dotnet/dotnet repository. When null, gets cloned to the temporary folder - -.PARAMETER debugOutput -Optional. Enables debug logging in the darc vmr command. -#> -param ( - [Parameter(Mandatory=$true, HelpMessage="Path to the temporary folder where repositories will be cloned")] - [string][Alias('t', 'tmp')]$tmpDir, - [string][Alias('b', 'branch')]$vmrBranch, - [string]$componentTemplate = "src/VirtualMonoRepo/Component.template.md", - [switch]$recursive, - [string]$remote, - [string][Alias('r')]$repository, - [string]$tpnTemplate = "src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt", - [string]$azdevPat, - [string][Alias('v', 'vmr')]$vmrDir, - [switch]$debugOutput -) - -$scriptRoot = $PSScriptRoot - -function Fail { - Write-Host "> $($args[0])" -ForegroundColor 'Red' -} - -function Highlight { - Write-Host "> $($args[0])" -ForegroundColor 'Cyan' -} - -$installerDir = (Split-Path -Parent $scriptRoot) - -# If installer is a repo, we're in an installer and not in the dotnet/dotnet repo -if (Test-Path -Path "$installerDir/.git" -PathType Container) { - $additionalRemotes = "installer:$installerDir" -} - -if ($remote) { - $additionalRemotes = "$additionalRemotes $remote" -} - -$verbosity = 'verbose' -if ($debugOutput) { - $verbosity = 'debug' -} -# Validation - -if (-not (Test-Path -Path $installerDir -PathType Container)) { - Fail "Directory '$installerDir' does not exist. Please specify the path to the dotnet/installer repo" - exit 1 -} - -if (-not $tmpDir) { - Fail "Missing -tmpDir argument. Please specify the path to the temporary folder where the repositories will be cloned" - exit 1 -} - -if (-not (Test-Path -Path $componentTemplate -PathType Leaf)) { - Fail "File '$componentTemplate' does not exist. Please specify a valid path to the component template" - exit 1 -} - -if (-not (Test-Path -Path $tpnTemplate -PathType Leaf)) { - Fail "File '$tpnTemplate' does not exist. Please specify a valid path to the THIRD-PARTY-NOTICES template" - exit 1 -} - -# Sanitize the input - -# Default when no repository is provided -if (-not $repository) { - $repository = "installer:$(git -C $installerDir rev-parse HEAD)" - $recursive = $true -} - -if (-not $vmrDir) { - $vmrDir = Join-Path $tmpDir 'dotnet' -} - -if (-not (Test-Path -Path $tmpDir -PathType Container)) { - New-Item -ItemType Directory -Path $tmpDir | Out-Null -} - -# Prepare the VMR - -if (-not (Test-Path -Path $vmrDir -PathType Container)) { - Highlight "Cloning 'dotnet/dotnet' into $vmrDir.." - git clone https://github.com/dotnet/dotnet $vmrDir - - if ($vmrBranch) { - git -C $vmrDir switch -c $vmrBranch - } -} -else { - if ((git -C $vmrDir diff --quiet) -eq $false) { - Fail "There are changes in the working tree of $vmrDir. Please commit or stash your changes" - exit 1 - } - - if ($vmrBranch) { - Highlight "Preparing $vmrDir" - git -C $vmrDir checkout $vmrBranch - git -C $vmrDir pull - } -} - -Set-StrictMode -Version Latest - -# Prepare darc - -Highlight 'Installing .NET, preparing the tooling..' -. $scriptRoot\common\tools.ps1 -$dotnetRoot = InitializeDotNetCli -install:$true -$dotnet = "$dotnetRoot\dotnet.exe" -& "$dotnet" tool restore - -Highlight "Starting the synchronization of '$repository'.." - -# Synchronize the VMR -$darcArgs = ( - "darc", "vmr", "update", - "--vmr", $vmrDir, - "--tmp", $tmpDir, - "--$verbosity", - "--component-template", $componentTemplate, - "--tpn-template", $tpnTemplate, - "--discard-patches", - $repository -) - -if ($recursive) { - $darcArgs += ("--recursive") -} - -if ($additionalRemotes) { - $darcArgs += ("--additional-remotes", $additionalRemotes) -} - -if ($azdevPat) { - $darcArgs += ("--azdev-pat", $azdevPat) -} - -& "$dotnet" $darcArgs - -if ($LASTEXITCODE -eq 0) { - Highlight "Synchronization succeeded" -} -else { - Fail "Synchronization of dotnet/dotnet to '$repository' failed!" - Fail "'$vmrDir' is left in its last state (re-run of this script will reset it)." - Fail "Please inspect the logs which contain path to the failing patch file (use -debugOutput to get all the details)." - Fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." - exit 1 -} diff --git a/eng/vmr-sync.sh b/eng/vmr-sync.sh deleted file mode 100755 index 97c8a1a87..000000000 --- a/eng/vmr-sync.sh +++ /dev/null @@ -1,284 +0,0 @@ -#!/bin/bash - -### This script is used for synchronizing the dotnet/dotnet VMR locally. This means pulling new -### code from various repositories into the 'dotnet/dotnet' repository. -### -### The script is used during CI to ingest new code based on dotnet/installer but it can also help -### for reproducing potential failures during installer's PRs, namely to fix the Source-Build. -### Another usecase is to try manually synchronizing a given commit of some repo into the VMR and -### trying to Source-Build the VMR. This can help when fixing the Source-Build but using a commit -### from a not-yet merged branch (or fork) to test the fix will help. -### -### The tooling that synchronizes the VMR will need to clone the various repositories into a temporary -### folder. These clones can be re-used in future synchronizations so it is advised you dedicate a -### folder to this to speed up your re-runs. -### -### USAGE: -### Synchronize current installer and all dependencies into a local VMR: -### ./vmr-sync.sh --vmr "$HOME/repos/dotnet" --tmp "$HOME/repos/tmp" -### -### Synchronize the VMR to a specific commit of dotnet/runtime using custom fork: -### ./vmr-sync.sh \ -### --repository runtime:e7e71da303af8dc97df99b098f21f526398c3943 \ -### --remote runtime:https://github.com/yourfork/runtime \ -### --tmp "$HOME/repos/tmp" -### -### Options: -### -t, --tmp, --tmp-dir PATH -### Required. Path to the temporary folder where repositories will be cloned -### -### -b, --branch, --vmr-branch BRANCH_NAME -### Optional. Branch of the 'dotnet/dotnet' repo to synchronize. The VMR will be checked out to this branch -### -### --debug -### Optional. Turns on the most verbose logging for the VMR tooling -### -### --component-template -### Optional. Template for VMRs Component.md used for regenerating the file to list the newest versions of -### components. -### Defaults to src/VirtualMonoRepo/Component.template.md -### -### --recursive -### Optional. Recursively synchronize all the source build dependencies (declared in Version.Details.xml) -### This is used when performing the full synchronization during installer's CI and the final VMR sync. -### Defaults to false unless no repository is supplied in which case a recursive sync of installer is performed. -### -### --remote name:URI -### Optional. Additional remote to use during the synchronization -### This can be used to synchronize to a commit from a fork of the repository -### Example: 'runtime:https://github.com/yourfork/runtime' -### -### -r, --repository name:GIT_REF -### Optional. Repository + git ref separated by colon to synchronize to. -### This can be a specific commit, branch, tag. -### If not supplied, the revision of the parent installer repository of this script will be used (recursively). -### Example: 'runtime:my-branch-name' -### -### --tpn-template -### Optional. Template for the header of VMRs THIRD-PARTY-NOTICES file. -### Defaults to src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt -### -### --azdev-pat -### Optional. Azure DevOps PAT to use for cloning private repositories. -### -### -v, --vmr, --vmr-dir PATH -### Optional. Path to the dotnet/dotnet repository. When null, gets cloned to the temporary folder - -source="${BASH_SOURCE[0]}" - -# resolve $source until the file is no longer a symlink -while [[ -h "$source" ]]; do - scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - source="$(readlink "$source")" - # if $source was a relative symlink, we need to resolve it relative to the path where the - # symlink file was located - [[ $source != /* ]] && source="$scriptroot/$source" -done -scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - -function print_help () { - sed -n '/^### /,/^$/p' "$source" | cut -b 5- -} - -COLOR_RED=$(tput setaf 1 2>/dev/null || true) -COLOR_CYAN=$(tput setaf 6 2>/dev/null || true) -COLOR_CLEAR=$(tput sgr0 2>/dev/null || true) -COLOR_RESET=uniquesearchablestring -FAILURE_PREFIX='> ' - -function fail () { - echo "${COLOR_RED}$FAILURE_PREFIX${1//${COLOR_RESET}/${COLOR_RED}}${COLOR_CLEAR}" >&2 -} - -function highlight () { - echo "${COLOR_CYAN}$FAILURE_PREFIX${1//${COLOR_RESET}/${COLOR_CYAN}}${COLOR_CLEAR}" -} - -# realpath is not available in macOS 12, try horrible-but-portable workaround -installer_dir=$(cd "$scriptroot/../"; pwd -P) - -tmp_dir='' -vmr_dir='' -vmr_branch='' -repository='' -additional_remotes='' -recursive=false -verbosity=verbose -component_template="$installer_dir/src/VirtualMonoRepo/Component.template.md" -tpn_template="$installer_dir/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt" -azdev_pat='' - -# If installer is a repo, we're in an installer and not in the dotnet/dotnet repo -if [[ -d "$installer_dir/.git" ]]; then - additional_remotes="installer:$installer_dir" -fi - -while [[ $# -gt 0 ]]; do - opt="$(echo "$1" | tr "[:upper:]" "[:lower:]")" - case "$opt" in - -t|--tmp|--tmp-dir) - tmp_dir=$2 - shift - ;; - -v|--vmr|--vmr-dir) - vmr_dir=$2 - shift - ;; - -b|--branch|--vmr-branch) - vmr_branch=$2 - shift - ;; - -r|--repository) - repository=$2 - shift - ;; - --recursive) - recursive=true - ;; - --remote) - additional_remotes="$additional_remotes $2" - shift - ;; - --component-template) - component_template=$2 - shift - ;; - --tpn-template) - tpn_template=$2 - shift - ;; - --azdev-pat) - azdev_pat=$2 - shift - ;; - -d|--debug) - verbosity=debug - ;; - -h|--help) - print_help - exit 0 - ;; - *) - fail "Invalid argument: $1" - print_help - exit 1 - ;; - esac - - shift -done - -# Validation - -if [[ ! -d "$installer_dir" ]]; then - fail "Directory '$installer_dir' does not exist. Please specify the path to the dotnet/installer repo" - exit 1 -fi - -if [[ -z "$tmp_dir" ]]; then - fail "Missing --tmp-dir argument. Please specify the path to the temporary folder where the repositories will be cloned" - exit 1 -fi - -if [[ ! -f "$component_template" ]]; then - fail "File '$component_template' does not exist. Please specify a valid path to the Component.md template" - exit 1 -fi - -if [[ ! -f "$tpn_template" ]]; then - fail "File '$tpn_template' does not exist. Please specify a valid path to the THIRD-PARTY-NOTICES template" - exit 1 -fi - -# Sanitize the input - -# Default when no repository is provided -if [[ -z "$repository" ]]; then - repository="installer:$(git -C "$installer_dir" rev-parse HEAD)" - recursive=true -fi - -if [[ -z "$vmr_dir" ]]; then - vmr_dir="$tmp_dir/dotnet" -fi - -if [[ ! -d "$tmp_dir" ]]; then - mkdir -p "$tmp_dir" -fi - -if [[ "$verbosity" == "debug" ]]; then - set -x -fi - -# Prepare the VMR - -if [[ ! -d "$vmr_dir" ]]; then - highlight "Cloning 'dotnet/dotnet' into $vmr_dir.." - git clone https://github.com/dotnet/dotnet "$vmr_dir" - - if [[ -n "$vmr_branch" ]]; then - git -C "$vmr_dir" switch -c "$vmr_branch" - fi -else - if ! git -C "$vmr_dir" diff --quiet; then - fail "There are changes in the working tree of $vmr_dir. Please commit or stash your changes" - exit 1 - fi - - if [[ -n "$vmr_branch" ]]; then - highlight "Preparing $vmr_dir" - git -C "$vmr_dir" checkout "$vmr_branch" - git -C "$vmr_dir" pull - fi -fi - -set -e - -# Prepare darc - -highlight 'Installing .NET, preparing the tooling..' -source "$scriptroot/common/tools.sh" -InitializeDotNetCli true -dotnetDir=$( cd $scriptroot/../.dotnet/; pwd -P ) -dotnet=$dotnetDir/dotnet -"$dotnet" tool restore - -highlight "Starting the synchronization of '$repository'.." -set +e - -recursive_arg='' -if [[ "$recursive" == "true" ]]; then - recursive_arg="--recursive" -fi - -if [[ -n "$additional_remotes" ]]; then - additional_remotes="--additional-remotes $additional_remotes" -fi - -if [[ -n "$azdev_pat" ]]; then - azdev_pat="--azdev-pat $azdev_pat" -fi - -# Synchronize the VMR - -"$dotnet" darc vmr update \ - --vmr "$vmr_dir" \ - --tmp "$tmp_dir" \ - $azdev_pat \ - --$verbosity \ - $recursive_arg \ - $additional_remotes \ - --component-template "$component_template" \ - --tpn-template "$tpn_template" \ - --discard-patches \ - "$repository" - -if [[ $? == 0 ]]; then - highlight "Synchronization succeeded" -else - fail "Synchronization of dotnet/dotnet to '$repository' failed!" - fail "'$vmr_dir' is left in its last state (re-run of this script will reset it)." - fail "Please inspect the logs which contain path to the failing patch file (use --debug to get all the details)." - fail "Once you make changes to the conflicting VMR patch, commit it locally and re-run this script." - exit 1 -fi diff --git a/source-build.slnf b/source-build.slnf deleted file mode 100644 index e5f65bf3b..000000000 --- a/source-build.slnf +++ /dev/null @@ -1,10 +0,0 @@ -{ - "solution": { - "path": "Microsoft.DotNet.Cli.sln", - "projects": [ - "src\\Microsoft.Dotnet.Sdk.Internal\\Microsoft.Dotnet.Sdk.Internal.csproj", - "src\\core-sdk-tasks\\core-sdk-tasks.csproj", - "src\\redist\\redist.csproj", - ] - } -} \ No newline at end of file diff --git a/src/SourceBuild/README.md b/src/SourceBuild/README.md deleted file mode 100644 index 1b946e990..000000000 --- a/src/SourceBuild/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Source-Build - -This directory contains the .NET source build infrastructure. - -_content_ - source build infrastructure mirrored to [dotnet/dotnet](https://github.com/dotnet/dotnet) - [VMR](https://github.com/dotnet/arcade/blob/main/Documentation/UnifiedBuild/VMR-Design-And-Operation.md). - -_patches_ - repo patches needed for .NET source build. Typically these are ephemeral to workaround integration - issues. For more information, see the [Patch Guidelines](https://github.com/dotnet/source-build/blob/main/Documentation/patching-guidelines.md). - -For more information, see [dotnet/source-build](https://github.com/dotnet/source-build). - -## Local development workflow - -When making changes to the source build infrastructure, devs would typically make and test the -changes in a local clone of [dotnet/dotnet](https://github.com/dotnet/dotnet). Once complete -you would copy the changed files here and make a PR. To validate the end to end experience, you -can synchronize the VMR with any changes made here by running [eng/vmr-sync.sh](https://github.com/dotnet/installer/blob/main/eng/vmr-sync.sh). diff --git a/src/SourceBuild/content/.config/1espt/PipelineAutobaseliningConfig.yml b/src/SourceBuild/content/.config/1espt/PipelineAutobaseliningConfig.yml deleted file mode 100644 index 02aa0cd1f..000000000 --- a/src/SourceBuild/content/.config/1espt/PipelineAutobaseliningConfig.yml +++ /dev/null @@ -1,21 +0,0 @@ -## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/1espt-autobaselining] for more details. - -pipelines: - 1330: - retail: - source: - credscan: - lastModifiedDate: 2024-03-25 - eslint: - lastModifiedDate: 2024-03-25 - psscriptanalyzer: - lastModifiedDate: 2024-03-25 - armory: - lastModifiedDate: 2024-03-25 - binary: - credscan: - lastModifiedDate: 2024-03-25 - binskim: - lastModifiedDate: 2024-03-25 - spotbugs: - lastModifiedDate: 2024-03-25 diff --git a/src/SourceBuild/content/.config/guardian/.gdnbaselines b/src/SourceBuild/content/.config/guardian/.gdnbaselines deleted file mode 100644 index b7bb7bd89..000000000 --- a/src/SourceBuild/content/.config/guardian/.gdnbaselines +++ /dev/null @@ -1,1479 +0,0 @@ -{ - "properties": { - "helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/baselines" - }, - "version": "1.0.0", - "baselines": { - "default": { - "name": "default", - "createdDate": "2024-03-25 18:56:33Z", - "lastUpdatedDate": "2024-04-17 11:08:48Z" - } - }, - "results": { - "4e8a62015bf3e926d045677df039625909fb8bdec99ab9045cf0cb6b2b7fbfb5": { - "signature": "4e8a62015bf3e926d045677df039625909fb8bdec99ab9045cf0cb6b2b7fbfb5", - "alternativeSignatures": [], - "target": "src/efcore/azure-pipelines-public.yml", - "line": 214, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "3f53ea28891f44b0e2b06051f0e51e36b098d5ab7b551ca149cff48330c2758e": { - "signature": "3f53ea28891f44b0e2b06051f0e51e36b098d5ab7b551ca149cff48330c2758e", - "alternativeSignatures": [], - "target": "src/efcore/azure-pipelines.yml", - "line": 241, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "5f3b52e23f96eb01bcfd73ead3cbaa2e1430de0006e5103109dd39bf9f292165": { - "signature": "5f3b52e23f96eb01bcfd73ead3cbaa2e1430de0006e5103109dd39bf9f292165", - "alternativeSignatures": [], - "target": "src/nuget-client/docs/cross-platform-debugging.md", - "line": 66, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "72b28f655eadc78b21ab36a7f572708315d8d909d1b460162511e37086288e30": { - "signature": "72b28f655eadc78b21ab36a7f572708315d8d909d1b460162511e37086288e30", - "alternativeSignatures": [ - "60efb04c6e0431e477e792a96d32b30b3a309b4ee19fad084a015e2946985459" - ], - "target": "src/roslyn/eng/build.ps1", - "line": 339, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "b6aecc1d8697beab291f9925633b5ec3e37a088033efc7e93928fd9cac96cda4": { - "signature": "b6aecc1d8697beab291f9925633b5ec3e37a088033efc7e93928fd9cac96cda4", - "alternativeSignatures": [ - "985838b2d1518f507c85ae0f635951bad92dde58eb24c252d7e56fb6ccda6191" - ], - "target": "src/aspnetcore/src/DataProtection/CreateTestCert.ps1", - "line": 11, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "32eb952e8561b331092ec83b626102388202071d192f9eb22c233b06ea90d2a1": { - "signature": "32eb952e8561b331092ec83b626102388202071d192f9eb22c233b06ea90d2a1", - "alternativeSignatures": [ - "cce04b0a7c54b775c1464a32d85804de7d1777ac2a6d21da8b080c29ac46162c" - ], - "target": "src/diagnostics/eng/common/SetupNugetSources.ps1", - "line": 38, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingUsernameAndPasswordParams", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "7d3c27b6bd42f58e624890a1669c188c6afee080e6330673942d364641876d52": { - "signature": "7d3c27b6bd42f58e624890a1669c188c6afee080e6330673942d364641876d52", - "alternativeSignatures": [ - "29d9fec9e2b10d721512bb68a68759baa33b6bbc0683a2d3d5cdcb74894917ee" - ], - "target": "src/diagnostics/eng/common/SetupNugetSources.ps1", - "line": 56, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingUsernameAndPasswordParams", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "42c9ee2033a50a53e2fcc83cb08b3a8c38a5c9e2230414ae0590d3c8f45a9a8d": { - "signature": "42c9ee2033a50a53e2fcc83cb08b3a8c38a5c9e2230414ae0590d3c8f45a9a8d", - "alternativeSignatures": [ - "44e2cd3b2773d63b155f2093202415744b74f8b5c47612ad92f2ffee3939cb2f" - ], - "target": "src/diagnostics/eng/common/SetupNugetSources.ps1", - "line": 88, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingUsernameAndPasswordParams", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "11d1ee60346a9d183bdfead22ccfd12efe5b121e24d50ea479e6ed51c5b284f8": { - "signature": "11d1ee60346a9d183bdfead22ccfd12efe5b121e24d50ea479e6ed51c5b284f8", - "alternativeSignatures": [ - "f1095a63813963bb218b2e2a11bcfdf33c712ac8e182a37903ac05aa27618431" - ], - "target": "src/scenario-tests/eng/common/SetupNugetSources.ps1", - "line": 38, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingUsernameAndPasswordParams", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "df1e4e250d2fec7e1df1b811d11ee5fde3f74ad34a4cfbb3c347fa0fa1f5f021": { - "signature": "df1e4e250d2fec7e1df1b811d11ee5fde3f74ad34a4cfbb3c347fa0fa1f5f021", - "alternativeSignatures": [ - "5721e98504beccf9da5a70c8ea673f82adfa53a36883886e1c81097e7d2dc3a8" - ], - "target": "src/scenario-tests/eng/common/SetupNugetSources.ps1", - "line": 56, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingUsernameAndPasswordParams", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "697b46955be8c055972365abf2b21287b19595c0204245465e3d05869bdf3b2b": { - "signature": "697b46955be8c055972365abf2b21287b19595c0204245465e3d05869bdf3b2b", - "alternativeSignatures": [ - "fcef36ad5176c97ff601e5636a327fb6a2d7e89b0767b2a3c515f6f10b21ed4a" - ], - "target": "src/scenario-tests/eng/common/SetupNugetSources.ps1", - "line": 88, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingUsernameAndPasswordParams", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "148a534bb099170811f8dcc0d51c1caa399488739a5ee98fb12bee51c7a9244d": { - "signature": "148a534bb099170811f8dcc0d51c1caa399488739a5ee98fb12bee51c7a9244d", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/xunit/appveyor.yml", - "line": 7, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0130", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "0a527cd60eacba9f7c0c83e3a97e25270578b40a637372cdf80b702b9b87b261": { - "signature": "0a527cd60eacba9f7c0c83e3a97e25270578b40a637372cdf80b702b9b87b261", - "alternativeSignatures": [], - "target": "src/aspire/tests/Aspire.Dashboard.Tests/Integration/OtlpServiceTests.cs", - "line": 128, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0130", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "6ddef357a244a95890f464728bfe7d498172c7d0a154a1b7505de8cf5d2e6940": { - "signature": "6ddef357a244a95890f464728bfe7d498172c7d0a154a1b7505de8cf5d2e6940", - "alternativeSignatures": [], - "target": "src/aspire/tests/Aspire.Hosting.Tests/RabbitMQ/AddRabbitMQTests.cs", - "line": 66, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-MSFT0090", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "7b17c8b64bd83dc326d4257677bed760c9cf6ab817acfbc7472f13f64b855e40": { - "signature": "7b17c8b64bd83dc326d4257677bed760c9cf6ab817acfbc7472f13f64b855e40", - "alternativeSignatures": [], - "target": "src/aspire/tests/Aspire.Hosting.Tests/RabbitMQ/AddRabbitMQTests.cs", - "line": 81, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-MSFT0090", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "5c2b6a4651bcb596fc2e5db714b851d389abfea6e55903a8d0582ce51da047ff": { - "signature": "5c2b6a4651bcb596fc2e5db714b851d389abfea6e55903a8d0582ce51da047ff", - "alternativeSignatures": [], - "target": "src/aspire/tests/Aspire.Hosting.Tests/SqlServer/AddSqlServerTests.cs", - "line": 76, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-MSFT0090", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "80a85deb6369e399563ca12ec488875ae9fadc6a4c8d4a4343fe2294ddf2a7a4": { - "signature": "80a85deb6369e399563ca12ec488875ae9fadc6a4c8d4a4343fe2294ddf2a7a4", - "alternativeSignatures": [], - "target": "src/aspire/tests/Aspire.Hosting.Tests/SqlServer/AddSqlServerTests.cs", - "line": 84, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-MSFT0090", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "0b30610f2eb9817ff650cd53154bc2ac98d6209750a9d628c5af700608bdb36e": { - "signature": "0b30610f2eb9817ff650cd53154bc2ac98d6209750a9d628c5af700608bdb36e", - "alternativeSignatures": [], - "target": "src/aspire/tests/Aspire.Hosting.Tests/SqlServer/AddSqlServerTests.cs", - "line": 100, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-MSFT0090", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "52cfa490ade643a3ec287dec67888d444752a73f7e4355a7f1924b0af54df466": { - "signature": "52cfa490ade643a3ec287dec67888d444752a73f7e4355a7f1924b0af54df466", - "alternativeSignatures": [], - "target": "src/aspire/tests/Shared/TestCertificates/eku.client.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-04-17 11:08:48Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "d43d77b6bd95a33891a3f76e3b20bf3001f300e0fe05b477faa4b74a35735740": { - "signature": "d43d77b6bd95a33891a3f76e3b20bf3001f300e0fe05b477faa4b74a35735740", - "alternativeSignatures": [], - "target": "src/aspire/tests/Shared/TestCertificates/testCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "3c494c3cdc3d2ab897a96f5b498fbf1731ba2c6dcc73e49399083635bc084e8a": { - "signature": "3c494c3cdc3d2ab897a96f5b498fbf1731ba2c6dcc73e49399083635bc084e8a", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/aspnetdevcert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "8bb20ad2a210dc906e39ceb48b0a6a39b240878688ad6854161240ae3a597c87": { - "signature": "8bb20ad2a210dc906e39ceb48b0a6a39b240878688ad6854161240ae3a597c87", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/eku.client.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "486f45a6c6f00cc927a87f4b7b122829bee893d6f523fed279e7e2deda450aff": { - "signature": "486f45a6c6f00cc927a87f4b7b122829bee893d6f523fed279e7e2deda450aff", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/eku.code_signing.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "643ded93447723ad1faad1de45b19108d986db08e488174a5422f3f1f7f0f7a3": { - "signature": "643ded93447723ad1faad1de45b19108d986db08e488174a5422f3f1f7f0f7a3", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/eku.multiple_usages.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "51d877cdee6cab498e1a0fd4c4dd2702b3e5da9eb308e0a631d2104e2d3d2a8c": { - "signature": "51d877cdee6cab498e1a0fd4c4dd2702b3e5da9eb308e0a631d2104e2d3d2a8c", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/eku.server.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "849b1bea0ba2f8d1c24a58896b9d230ca317e8cff7e9540f73d578dd1aba12cb": { - "signature": "849b1bea0ba2f8d1c24a58896b9d230ca317e8cff7e9540f73d578dd1aba12cb", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-aspnet.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "c535332f090c89ae22a79aac4b9d344333c5479b891b79d72d252611c9364450": { - "signature": "c535332f090c89ae22a79aac4b9d344333c5479b891b79d72d252611c9364450", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-dsa-protected.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "bc8ce9f1fd92dd123db1b6f8c33d15123bc8f3c4cb4fd42c54b4a2c5210bb158": { - "signature": "bc8ce9f1fd92dd123db1b6f8c33d15123bc8f3c4cb4fd42c54b4a2c5210bb158", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-dsa.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "9507f913c4445bebb9bdd471960011afa198c1e42d19c45d44aea58af61a137d": { - "signature": "9507f913c4445bebb9bdd471960011afa198c1e42d19c45d44aea58af61a137d", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-ecdsa-protected.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "9ac9e0a5efc7c0d1e6d89422ca8e70e913eaba647ef42650f0bbc50da080a556": { - "signature": "9ac9e0a5efc7c0d1e6d89422ca8e70e913eaba647ef42650f0bbc50da080a556", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-ecdsa.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "5d49433b67f4a2f1b6b323c498722d16aeda2d8781dafe9fcb9faaf9db4ee3e1": { - "signature": "5d49433b67f4a2f1b6b323c498722d16aeda2d8781dafe9fcb9faaf9db4ee3e1", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-ecdsa.key", - "line": 4, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "71ee57f56c77339e4a0cb3f5bdfd05d15191136fc8ad887cef26fe1488522529": { - "signature": "71ee57f56c77339e4a0cb3f5bdfd05d15191136fc8ad887cef26fe1488522529", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-rsa-protected.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "74b8ab85959da39f4da6710c6375080c44c8929d6b68f59a06dede355aeffacc": { - "signature": "74b8ab85959da39f4da6710c6375080c44c8929d6b68f59a06dede355aeffacc", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/https-rsa.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "ca37e6fb6eb26bdec92893b3f6b08f8f41e6241f573a1b8e14d4e4d4ff1d2c7a": { - "signature": "ca37e6fb6eb26bdec92893b3f6b08f8f41e6241f573a1b8e14d4e4d4ff1d2c7a", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/intermediate2_ca.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "d7657bb2e0603e7b353f7b1e1d884306fe44f116c7665192fd6b33003333ef7a": { - "signature": "d7657bb2e0603e7b353f7b1e1d884306fe44f116c7665192fd6b33003333ef7a", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/intermediate_ca.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "90b7e7a132c8df4864a9ee49670cbaec9cbc5f5c53bf009eba5a583e0934a24f": { - "signature": "90b7e7a132c8df4864a9ee49670cbaec9cbc5f5c53bf009eba5a583e0934a24f", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/leaf.com.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "8a5003e2db05146eaba3a7fc7aba715f51a5506b741a6ac2662e47e39c6165aa": { - "signature": "8a5003e2db05146eaba3a7fc7aba715f51a5506b741a6ac2662e47e39c6165aa", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/no_extensions.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "02590eb0efbb241f09bae58f60907c6dee5b33507519a4be87e168a458c2b9cb": { - "signature": "02590eb0efbb241f09bae58f60907c6dee5b33507519a4be87e168a458c2b9cb", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/root_ca.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "df250772236d85876a9d789cca90b48e5eb79ad6cb13782465c8c88366c5d845": { - "signature": "df250772236d85876a9d789cca90b48e5eb79ad6cb13782465c8c88366c5d845", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Shared/TestCertificates/testCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "0d9b21b17336fcaa4d1e6360b228eef8db6a2afe199d9db14a245eba8e59f9f7": { - "signature": "0d9b21b17336fcaa4d1e6360b228eef8db6a2afe199d9db14a245eba8e59f9f7", - "alternativeSignatures": [], - "target": "src/msbuild/src/Tasks.UnitTests/TestResources/mycert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "3cd8e3eb9b94b01c93591c685406ea91d9d31b16aace0f109734e4bacb3838f2": { - "signature": "3cd8e3eb9b94b01c93591c685406ea91d9d31b16aace0f109734e4bacb3838f2", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DefaultBuilder/test/Microsoft.AspNetCore.FunctionalTests/testCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "e91e45a96bf36327f551eadf27d9598b3d058fc051b0f9f0f1da9420410dc79a": { - "signature": "e91e45a96bf36327f551eadf27d9598b3d058fc051b0f9f0f1da9420410dc79a", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Servers/IIS/tools/TestCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "1c8a3d52bb83c1fbd1208b94663769b6452e73988540113dff20bfb4df4ca010": { - "signature": "1c8a3d52bb83c1fbd1208b94663769b6452e73988540113dff20bfb4df4ca010", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/SignalR/common/Shared/testCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "8839c1c5ab6e962faf123ad7b79a584170d6491855f69555664986a425984a36": { - "signature": "8839c1c5ab6e962faf123ad7b79a584170d6491855f69555664986a425984a36", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/SignalR/common/Shared/testCertECC.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "d2df996be35f179b45a3bdc28fcd9d5254a924ab52d2ca14b068bfea35e65284": { - "signature": "d2df996be35f179b45a3bdc28fcd9d5254a924ab52d2ca14b068bfea35e65284", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/SelfSigned1024_SHA1.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "7a20b01096651f581c51904be7cd1281150c40efc61352b70aabbca3c40ea177": { - "signature": "7a20b01096651f581c51904be7cd1281150c40efc61352b70aabbca3c40ea177", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/SelfSigned1024_SHA256.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "ef394eaa05e6eb5af1f5e523fd01f4e970f36cb2c7eacb3d363b47c9f70b0fec": { - "signature": "ef394eaa05e6eb5af1f5e523fd01f4e970f36cb2c7eacb3d363b47c9f70b0fec", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/SelfSigned2048_SHA256.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "cb83a69b59f2de3fa1d049750ddeb855030d5662c43a1c5fea6b95f01e21547f": { - "signature": "cb83a69b59f2de3fa1d049750ddeb855030d5662c43a1c5fea6b95f01e21547f", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/SelfSigned2048_SHA256_2.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "d08376cdfec80b5c0884a8b85f18c8b34ffee19f1395d12aef1ffc2821120f03": { - "signature": "d08376cdfec80b5c0884a8b85f18c8b34ffee19f1395d12aef1ffc2821120f03", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/SelfSigned2048_SHA384.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "ef471993ee9839701feba16b5b56a926545a165bf95224130d6c8a2bdafdd451": { - "signature": "ef471993ee9839701feba16b5b56a926545a165bf95224130d6c8a2bdafdd451", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/SelfSigned2048_SHA512.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "d742600df5b4b6b71f65cf0079b09ec36a5d58bb4b8b07923b13ab8458f68a15": { - "signature": "d742600df5b4b6b71f65cf0079b09ec36a5d58bb4b8b07923b13ab8458f68a15", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 31, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "fd9536ec348269dbb12b813270403b7410fc13575d1cbb7770604dcf54ee776b": { - "signature": "fd9536ec348269dbb12b813270403b7410fc13575d1cbb7770604dcf54ee776b", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 40, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "1614f1f0821f8900c7c8d2cb3a784272518ef6b86fb82070bda88b4bac9dbda8": { - "signature": "1614f1f0821f8900c7c8d2cb3a784272518ef6b86fb82070bda88b4bac9dbda8", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 50, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "3479973e9ab00c84264e70c5d7290a5bfda506aafdb08c3277cb1df5db688ab9": { - "signature": "3479973e9ab00c84264e70c5d7290a5bfda506aafdb08c3277cb1df5db688ab9", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 56, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "e5bd231f55be121ed2579da9651c4ec0e661a386991ef8463facf3588c306a06": { - "signature": "e5bd231f55be121ed2579da9651c4ec0e661a386991ef8463facf3588c306a06", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 65, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "19661fe89c5e1f59089cdec06cbdf6bdda2439b52731dfd630b50ff5885d6223": { - "signature": "19661fe89c5e1f59089cdec06cbdf6bdda2439b52731dfd630b50ff5885d6223", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 75, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "3bf81d57b0872ef6c8ac7878513cb8f58044e07238883f71f24b09542a8d1a07": { - "signature": "3bf81d57b0872ef6c8ac7878513cb8f58044e07238883f71f24b09542a8d1a07", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 80, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "2e07fdf491a04fc8a6cc50ae299f8345a81798499bda961a118e974970bb71a8": { - "signature": "2e07fdf491a04fc8a6cc50ae299f8345a81798499bda961a118e974970bb71a8", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 86, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "560fdab2979120fa3cfd2d9865d1ce2c0ba164982cc086cdc871b7e16fd12466": { - "signature": "560fdab2979120fa3cfd2d9865d1ce2c0ba164982cc086cdc871b7e16fd12466", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 92, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "489c5d92c47b3c961db0d5c32426a4d5fb48311e46ae49791be0f6ef03ddfc6e": { - "signature": "489c5d92c47b3c961db0d5c32426a4d5fb48311e46ae49791be0f6ef03ddfc6e", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 101, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "5890ec8b0f533c8186a824f1b46b2d99c2d54e7ed09917e5fedcdaea19b34706": { - "signature": "5890ec8b0f533c8186a824f1b46b2d99c2d54e7ed09917e5fedcdaea19b34706", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Microsoft.IdentityModel.TestUtils/KeyingMaterial.cs", - "line": 230, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0140", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "70a8cd9f176fa02a78470ae78c285f56b617060ec339f0c8dfda095a5b0fc6c9": { - "signature": "70a8cd9f176fa02a78470ae78c285f56b617060ec339f0c8dfda095a5b0fc6c9", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/humanizer/src/Humanizer.Tests.Uwp/Humanizer.Tests.Uwp_TemporaryKey.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "7afd296a74705d2e561497c0ab8c3750179c1eff425f496297d3b877ff718526": { - "signature": "7afd296a74705d2e561497c0ab8c3750179c1eff425f496297d3b877ff718526", - "alternativeSignatures": [], - "target": "src/source-build-externals/src/humanizer/src/Humanizer.Tests.Uwp.Runner/Humanizer.Tests.Uwp.Runner_TemporaryKey.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "6ffd69e0724ed3b57e926224932b0aeeed7a834ee5dc1ad24c3262deb49172d7": { - "signature": "6ffd69e0724ed3b57e926224932b0aeeed7a834ee5dc1ad24c3262deb49172d7", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DataProtection/Extensions/test/TestFiles/TestCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "ca298b6b96ebfae8f14e29993264310b89fd738b365c2e7ca04e7af1a5cd67b7": { - "signature": "ca298b6b96ebfae8f14e29993264310b89fd738b365c2e7ca04e7af1a5cd67b7", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DataProtection/Extensions/test/TestFiles/TestCert2.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "8764975fced41745e1a9c844144b2aacd30d3fcd77a8c4b1067adc5f2cd8b990": { - "signature": "8764975fced41745e1a9c844144b2aacd30d3fcd77a8c4b1067adc5f2cd8b990", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DataProtection/Extensions/test/TestFiles/TestCert3.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "7cc3b3782554547d94e0f2e8817dbf823a84de8a95b6b358bdd29067bcff64c3": { - "signature": "7cc3b3782554547d94e0f2e8817dbf823a84de8a95b6b358bdd29067bcff64c3", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DataProtection/Extensions/test/TestFiles/TestCert3WithoutPrivateKey.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "db15b8200219494e427c3943404a81e931bf17af175823bc51da9b85b63a6831": { - "signature": "db15b8200219494e427c3943404a81e931bf17af175823bc51da9b85b63a6831", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DataProtection/Extensions/test/TestFiles/TestCertWithoutPrivateKey.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "979582e68b87ec6e4cd7d90df4e05f01a6f9150ed07a0abc205112a241f0c16f": { - "signature": "979582e68b87ec6e4cd7d90df4e05f01a6f9150ed07a0abc205112a241f0c16f", - "alternativeSignatures": [], - "target": "src/diagnostics/src/SOS/SOS.UnitTests/Debuggees/WebApp3/testCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "56b251ecea166720fac682142922d79e01699a8cc576683b6d8944dfd3158de2": { - "signature": "56b251ecea166720fac682142922d79e01699a8cc576683b6d8944dfd3158de2", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 72, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "cbcd76cbd2a6b0a8028fd6c3d1d11ee2e211519af2420396399c3c111a4da667": { - "signature": "cbcd76cbd2a6b0a8028fd6c3d1d11ee2e211519af2420396399c3c111a4da667", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 73, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "8060e90601237ded928ae57570ef982dd3a57e7bffbec010fcd37e0bda518f10": { - "signature": "8060e90601237ded928ae57570ef982dd3a57e7bffbec010fcd37e0bda518f10", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 90, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "bc4b0a2231b13e5472e1548250ef4d7174d130daf559bca81f5d3c2c0c169690": { - "signature": "bc4b0a2231b13e5472e1548250ef4d7174d130daf559bca81f5d3c2c0c169690", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 91, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "91f0752674a19d0db604c50e23950746ff4d231cc76e40a7fa0f53dd5e855f4d": { - "signature": "91f0752674a19d0db604c50e23950746ff4d231cc76e40a7fa0f53dd5e855f4d", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 109, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "889e33f8e52ecb1d2b98d28772c572c2a10f0dc0c22fcc03b1da03df008d5f91": { - "signature": "889e33f8e52ecb1d2b98d28772c572c2a10f0dc0c22fcc03b1da03df008d5f91", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 110, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "6969ae787ed7e1caef670545de569929814479666e60a227abcb36395c3d3f60": { - "signature": "6969ae787ed7e1caef670545de569929814479666e60a227abcb36395c3d3f60", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 111, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "81adfccafd8eb134b75b59de6d4d0d8198c4639a3972d8072b61c67c9e1a104d": { - "signature": "81adfccafd8eb134b75b59de6d4d0d8198c4639a3972d8072b61c67c9e1a104d", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/GetCredentialsResponseTests.cs", - "line": 112, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "cf0223227addcd8b17bc89e4e5f0ee9174bca83c9ffc5b5493ef74940b33b58c": { - "signature": "cf0223227addcd8b17bc89e4e5f0ee9174bca83c9ffc5b5493ef74940b33b58c", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/SetCredentialsRequestTests.cs", - "line": 49, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "fc000248c70e613f381ee770fb96dfd28e26766fa9627d28e5b9eb5fb314a3c8": { - "signature": "fc000248c70e613f381ee770fb96dfd28e26766fa9627d28e5b9eb5fb314a3c8", - "alternativeSignatures": [], - "target": "src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/Plugins/Messages/SetCredentialsRequestTests.cs", - "line": 72, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "b93b213c68cbbde7c5d0f64b48ad5289efccfcb18e202930a256ac7dbdd2264a": { - "signature": "b93b213c68cbbde7c5d0f64b48ad5289efccfcb18e202930a256ac7dbdd2264a", - "alternativeSignatures": [], - "target": "src/roslyn/src/EditorFeatures/CSharpTest2/EmbeddedLanguages/Json/CSharpJsonParserTests_BasicTests.cs", - "line": 4207, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "5ac1e0f1847cf476ae1c810ac0a74ee5993d05873feca939c0df1ac691a1527c": { - "signature": "5ac1e0f1847cf476ae1c810ac0a74ee5993d05873feca939c0df1ac691a1527c", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs", - "line": 3441, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0060", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "2987ea627ea4f2effb417244c4aac8f554bf42136d6ebe0fef1df440410be09c": { - "signature": "2987ea627ea4f2effb417244c4aac8f554bf42136d6ebe0fef1df440410be09c", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs", - "line": 2743, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "4c2880cbace8da677942b80be039a982e356c18c827ebeddab265175c9640427": { - "signature": "4c2880cbace8da677942b80be039a982e356c18c827ebeddab265175c9640427", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs", - "line": 2879, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "849ea2c1bdff1b36df8848a7f8898f11e981c3ba8f9b033abd9d1e8b1a03c8ca": { - "signature": "849ea2c1bdff1b36df8848a7f8898f11e981c3ba8f9b033abd9d1e8b1a03c8ca", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/System.Security.Cryptography/tests/X509Certificates/TestData.cs", - "line": 2962, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "1706aea6ec9bfbbe540cfab3713db9b1a9ebc7f475b49f2348860e3ee6d8e682": { - "signature": "1706aea6ec9bfbbe540cfab3713db9b1a9ebc7f475b49f2348860e3ee6d8e682", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DataProtection/DataProtection/test/Microsoft.AspNetCore.DataProtection.Tests/TestFiles/TestCert1.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "8369054f43a96d4f463976b23773b2d22f8081d95f715161f019ceb58296d64a": { - "signature": "8369054f43a96d4f463976b23773b2d22f8081d95f715161f019ceb58296d64a", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/DataProtection/DataProtection/test/Microsoft.AspNetCore.DataProtection.Tests/TestFiles/TestCert2.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "4ab520e2ed77b36c88f9eeeb5473205fd7f8f0a761eacee4cbbff389368dad8f": { - "signature": "4ab520e2ed77b36c88f9eeeb5473205fd7f8f0a761eacee4cbbff389368dad8f", - "alternativeSignatures": [ - "7ad51ffeb7d5438f15781162de5183c58d5db2d195f96e8c3527451adeb4e02c" - ], - "target": "src/aspnetcore/src/Hosting/Server.IntegrationTesting/src/Deployers/RemoteWindowsDeployer/RemotePSSessionHelper.ps1", - "line": 40, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "96ab8bbaf30065be77880d679174d028a151c0fc888fca38a79038d341710563": { - "signature": "96ab8bbaf30065be77880d679174d028a151c0fc888fca38a79038d341710563", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Security/Authentication/Negotiate/samples/NegotiateAuthSample/Startup.cs", - "line": 30, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-MSFT0090", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "7bda7ae4037698bbdf188b4d3fb8a82e99063a8df2dcfe5f66ef747e3bd3f1a0": { - "signature": "7bda7ae4037698bbdf188b4d3fb8a82e99063a8df2dcfe5f66ef747e3bd3f1a0", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Security/Authentication/Negotiate/test/Negotiate.FunctionalTest/negotiateAuthCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "a2dcb4a5d7e266049f9f865b27e69af19447e94f63ec9de8290763ddf901c756": { - "signature": "a2dcb4a5d7e266049f9f865b27e69af19447e94f63ec9de8290763ddf901c756", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Security/Authentication/Negotiate/test/Negotiate.Test/LdapSettingsValidationTests.cs", - "line": 25, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-MSFT0090", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "3aaf66a9a1f5bfba3b78eb7964ce8bf4dcabf7132465a31e219c6961f53dec56": { - "signature": "3aaf66a9a1f5bfba3b78eb7964ce8bf4dcabf7132465a31e219c6961f53dec56", - "alternativeSignatures": [], - "target": "src/aspnetcore/src/Middleware/WebSockets/test/ConformanceTests/AutobahnTestApp/TestResources/testCert.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "c6ed8bf76382b72621892d895d0659eb8ed66ef400f5d38506a3b62129b0f60e": { - "signature": "c6ed8bf76382b72621892d895d0659eb8ed66ef400f5d38506a3b62129b0f60e", - "alternativeSignatures": [ - "07873a6bbdd04caf121ed279cd4c24e55fb79ae3e86083c413b839d8d5e81cba" - ], - "target": "src/runtime/src/libraries/Common/tests/System/Net/Prerequisites/Deployment/setup_activedirectory_domaincontroller.ps1", - "line": 36, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "c511a0f0c15b79748a62ee0198689e7a0c8c2af102730c337823f6cd52b3ec66": { - "signature": "c511a0f0c15b79748a62ee0198689e7a0c8c2af102730c337823f6cd52b3ec66", - "alternativeSignatures": [ - "7142b2e2126a0c0e5bf2ad08e9e56d405620fbb9f12dfcd3f90a9dfcc30f8bf5" - ], - "target": "src/runtime/src/libraries/Common/tests/System/Net/Prerequisites/Deployment/setup_iisserver.ps1", - "line": 82, - "memberOf": [ - "default" - ], - "tool": "psscriptanalyzer", - "ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "bfe258b52e19062b9009a68549bff3b2c99a6105f493cbf14332b3366691d446": { - "signature": "bfe258b52e19062b9009a68549bff3b2c99a6105f493cbf14332b3366691d446", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DSA/DSAKeyPemTests.cs", - "line": 54, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "52364f6839cf4bc824f1c82a31f3c7ee1cfb228383b3bee476ef7442526c0de8": { - "signature": "52364f6839cf4bc824f1c82a31f3c7ee1cfb228383b3bee476ef7442526c0de8", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/DSA/DSAKeyPemTests.cs", - "line": 358, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "cef12040ed2c91d3bd7eba717e6c4bff8e547cb6d2b40363f1d859b02c873276": { - "signature": "cef12040ed2c91d3bd7eba717e6c4bff8e547cb6d2b40363f1d859b02c873276", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/EC/ECKeyPemTests.cs", - "line": 61, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "ab290d190fa6582f2826c9b8524a4013ea67380f65328bc39c31dbcba59ec63c": { - "signature": "ab290d190fa6582f2826c9b8524a4013ea67380f65328bc39c31dbcba59ec63c", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/EC/ECKeyPemTests.cs", - "line": 168, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "710963884a4d1e73d1ff4da0db7e1c8e1eeae25fe4a9e3c1de8b5019bb5d9d74": { - "signature": "710963884a4d1e73d1ff4da0db7e1c8e1eeae25fe4a9e3c1de8b5019bb5d9d74", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/EC/ECKeyPemTests.cs", - "line": 412, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "db276fb1ea2a8e74e7ab80522362b8f402d361652ca823d7cab59465d038eb82": { - "signature": "db276fb1ea2a8e74e7ab80522362b8f402d361652ca823d7cab59465d038eb82", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyPemTests.cs", - "line": 229, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "807277ed6647bcdc3eab2e24d8fbcaca0a6506d2ed455248b0497ceb42831e30": { - "signature": "807277ed6647bcdc3eab2e24d8fbcaca0a6506d2ed455248b0497ceb42831e30", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyPemTests.cs", - "line": 328, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "685288ad132baddbcdf7a2201960f6d48805151f1aef2e094c4dbc16841b3e54": { - "signature": "685288ad132baddbcdf7a2201960f6d48805151f1aef2e094c4dbc16841b3e54", - "alternativeSignatures": [], - "target": "src/runtime/src/libraries/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyPemTests.cs", - "line": 489, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "e972eb97ea7ea4a9524820036a42557f13a48240b6083c7baa0d465c00adfdee": { - "signature": "e972eb97ea7ea4a9524820036a42557f13a48240b6083c7baa0d465c00adfdee", - "alternativeSignatures": [], - "target": "src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/gRPC/grpc-dotnet/testassets/Certs/InteropTests/server1.key", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - }, - "1b2c907630acaff5b6e62eb4895043c82e93d885331f1f46296812634fd30abe": { - "signature": "1b2c907630acaff5b6e62eb4895043c82e93d885331f1f46296812634fd30abe", - "alternativeSignatures": [], - "target": "src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/gRPC/grpc-dotnet/testassets/Certs/InteropTests/server1.pfx", - "line": 1, - "memberOf": [ - "default" - ], - "tool": "credscan", - "ruleId": "CSCAN-GENERAL0020", - "createdDate": "2024-03-25 18:56:33Z", - "expirationDate": "2024-09-11 20:34:12Z", - "justification": "This error is baselined with an expiration date of 180 days from 2024-03-25 20:34:12Z" - } - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/.devcontainer/README.md b/src/SourceBuild/content/.devcontainer/README.md deleted file mode 100644 index 58f036171..000000000 --- a/src/SourceBuild/content/.devcontainer/README.md +++ /dev/null @@ -1,59 +0,0 @@ - - -This Codespace can help you debug the source build of .NET. This build takes about -45 minutes and, after completion, produces an archived .NET SDK located in -`/workspaces/dotnet/artifacts/assets/Release`. In case you selected the `prebuilt-sdk` -Codespace, the built-from-source SDK will already be there. - -## Build the SDK - -To build the repository, run one of the following: -```bash -# Microsoft based build -./build.sh -``` -or - -```bash -# Building from source only -./prep-source-build.sh && ./build.sh -sb -``` - -> Please note that, at this time, the build modifies some of the checked-in sources so it might -be preferential to rebuild the Codespace between attempts (or reset the working tree changes). - -For more details, see the instructions at https://github.com/dotnet/dotnet. - -## Synchronize your changes in locally - -When debugging the build, you have two options how to test your changes in this environment. - -### Making changes to the VMR directly - -You can make the changes directly to the local checkout of the VMR at `/workspaces/dotnet`. You -can then try to build the VMR and see if the change works for you. - -### Pull changes into the Codespace from your fork - -You can also make a fix in the individual source repository (e.g. `dotnet/runtime`) and push the -fix into a branch; can be in your fork too. Once you have the commit pushed, you can pull this -version of the repository into the Codespace by running: - -``` -/workspaces/synchronize-vmr.sh \ - --repository : \ - --remote : -``` - -You can now proceed building the VMR in the Codespace using instructions above. You can repeat -this process and sync a new commit from your fork. Only note that, at this time, Source-Build -modifies some of the checked-in sources so you'll need to revert the working tree changes -between attempts. diff --git a/src/SourceBuild/content/.devcontainer/devcontainer.json b/src/SourceBuild/content/.devcontainer/devcontainer.json deleted file mode 100644 index b0e1db0a4..000000000 --- a/src/SourceBuild/content/.devcontainer/devcontainer.json +++ /dev/null @@ -1,22 +0,0 @@ -// Container contains checked-out source code only -{ - "name": "Default", - "image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39", - "hostRequirements": { - // A completely source built .NET is >64 GB with all the repos/artifacts - "storage": "128gb" - }, - "customizations": { - "vscode": { - "extensions": [ - "ms-dotnettools.csharp" - ] - }, - "codespaces": { - "openFiles": [ - ".devcontainer/README.md" - ] - } - }, - "onCreateCommand": ".devcontainer/init.sh" -} diff --git a/src/SourceBuild/content/.devcontainer/init.sh b/src/SourceBuild/content/.devcontainer/init.sh deleted file mode 100755 index 9fa9e81f7..000000000 --- a/src/SourceBuild/content/.devcontainer/init.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -set -eux - -source="${BASH_SOURCE[0]}" -script_root="$( cd -P "$( dirname "$source" )" && pwd )" - -workspace_dir=$(realpath "$script_root/../../") -tmp_dir=$(realpath "$workspace_dir/tmp") -vmr_dir=$(realpath "$workspace_dir/dotnet") - -cp "$vmr_dir/.devcontainer/synchronize-vmr.sh" "$workspace_dir" - -mkdir -p "$tmp_dir" diff --git a/src/SourceBuild/content/.devcontainer/prebuilt-sdk/devcontainer.json b/src/SourceBuild/content/.devcontainer/prebuilt-sdk/devcontainer.json deleted file mode 100644 index d7d96d1c1..000000000 --- a/src/SourceBuild/content/.devcontainer/prebuilt-sdk/devcontainer.json +++ /dev/null @@ -1,22 +0,0 @@ -// Container contains a pre-built SDK -{ - "name": "Pre-built .NET SDK", - "image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39", - "hostRequirements": { - // A completely source built .NET is >64 GB with all the repos/artifacts - "storage": "128gb" - }, - "customizations": { - "vscode": { - "extensions": [ - "ms-dotnettools.csharp" - ] - }, - "codespaces": { - "openFiles": [ - ".devcontainer/README.md" - ] - } - }, - "onCreateCommand": ".devcontainer/prebuilt-sdk/init.sh" -} diff --git a/src/SourceBuild/content/.devcontainer/prebuilt-sdk/init.sh b/src/SourceBuild/content/.devcontainer/prebuilt-sdk/init.sh deleted file mode 100644 index 517ed6229..000000000 --- a/src/SourceBuild/content/.devcontainer/prebuilt-sdk/init.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -source="${BASH_SOURCE[0]}" -script_root="$( cd -P "$( dirname "$source" )" && pwd )" - -"$script_root"/../../prep-source-build.sh - -cp "$script_root/../synchronize-vmr.sh" "/workspaces/" -"$script_root"/../../build.sh --online --clean-while-building || exit 0 diff --git a/src/SourceBuild/content/.devcontainer/synchronize-vmr.sh b/src/SourceBuild/content/.devcontainer/synchronize-vmr.sh deleted file mode 100755 index 091ae0e26..000000000 --- a/src/SourceBuild/content/.devcontainer/synchronize-vmr.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -(cd /workspaces/dotnet/src/installer \ - && ./eng/vmr-sync.sh --vmr /workspaces/dotnet --tmp /workspaces/tmp $*) diff --git a/src/SourceBuild/content/.gitignore b/src/SourceBuild/content/.gitignore deleted file mode 100644 index 1f77e38b1..000000000 --- a/src/SourceBuild/content/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/.dotnet -/.packages -/artifacts -/prereqs/packages -/src/nuget-client/NuGet.config -*.binlog diff --git a/src/SourceBuild/content/.sscignore b/src/SourceBuild/content/.sscignore deleted file mode 100644 index 47012eb58..000000000 --- a/src/SourceBuild/content/.sscignore +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cfs" : [ - "CFS0001", - "CFS0013" - ] -} diff --git a/src/SourceBuild/content/CODE_OF_CONDUCT.md b/src/SourceBuild/content/CODE_OF_CONDUCT.md deleted file mode 100644 index 775f221c9..000000000 --- a/src/SourceBuild/content/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,6 +0,0 @@ -# Code of Conduct - -This project has adopted the code of conduct defined by the Contributor Covenant -to clarify expected behavior in our community. - -For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). diff --git a/src/SourceBuild/content/CONTRIBUTING.md b/src/SourceBuild/content/CONTRIBUTING.md deleted file mode 100644 index 1b23b661b..000000000 --- a/src/SourceBuild/content/CONTRIBUTING.md +++ /dev/null @@ -1,7 +0,0 @@ -Contributing -============ - -See [dotnet/runtime](./src/runtime/CONTRIBUTING.md) for general contribution guidelines such as allowed licenses. - -At this time, the VMR will not accept any changes and is a read-only mirror of the development repositories only. -Please, make the changes in the respective development repositories (e.g., [dotnet/runtime](https://github.com/dotnet/runtime) or [dotnet/sdk](https://github.com/dotnet/sdk)) and they will get synchronized into the VMR automatically. \ No newline at end of file diff --git a/src/SourceBuild/content/Directory.Build.props b/src/SourceBuild/content/Directory.Build.props deleted file mode 100644 index 465fbad19..000000000 --- a/src/SourceBuild/content/Directory.Build.props +++ /dev/null @@ -1,199 +0,0 @@ - - - - Release - true - dotnet - - - - linux - osx - freebsd - netbsd - illumos - solaris - haiku - windows - $(BuildOS) - $(TargetOS) - - - - - true - true - true - true - true - true - true - true - true - - true - - true - - runtime - - - - - - $([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant) - - $(BuildArchitecture) - - $(TargetArchitecture) - - AnyCPU - - - - - $(__DistroRid) - $([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier) - win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant) - - $(BuildRid.Substring(0, $(BuildRid.LastIndexOf('-'))))-$(TargetArchitecture) - $(TargetRid) - - - false - true - - $(__PortableTargetOS)-$(TargetArchitecture) - freebsd-$(TargetArchitecture) - osx-$(TargetArchitecture) - linux-$(TargetArchitecture) - linux-musl-$(TargetArchitecture) - win-$(TargetArchitecture) - - $(PortableRid) - $(TargetOS)-$(TargetArchitecture) - win-$(TargetArchitecture) - - - - - - $([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', '.packages')) - $(RestorePackagesPath) - - - - - - - - $([MSBuild]::NormalizeDirectory('$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'global.json'))')) - - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'obj')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'eng')) - - - $(Platform) - $(MSBuildProjectName) - - $([System.IO.Path]::GetFullPath('$(ArtifactsBinDir)$(OutDirName)\')) - $(BaseOutputPath)$(Configuration)\ - $(BaseOutputPath)$(PlatformName)\$(Configuration)\ - - $([System.IO.Path]::GetFullPath('$(ArtifactsObjDir)$(OutDirName)\')) - $(BaseIntermediateOutputPath)$(Configuration)\ - $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\ - - - net9.0 - - - - - - - - false - - false - - true - - true - - true - - - - minimal - - .cmd - .sh - - - .zip - .tar.gz - - - - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src')) - $([MSBuild]::NormalizeDirectory('$(RepositoryEngineeringDir)', 'tools')) - $([MSBuild]::NormalizeDirectory('$(ToolsDir)', 'tasks')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'repo-projects')) - - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'prereqs')) - $([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'keys')) - $([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'packages')) - - - $([MSBuild]::NormalizeDirectory('$(NuGetPackageRoot)', 'BootstrapPackages')) - $(NuGetPackageRoot) - - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'toolset', 'VSSdkResolvers')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'Symbols')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'AssetManifests')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'assets', '$(Configuration)')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'extracted-dotnet-sdk')) - - $([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'prebuilt')) - $([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previouslyRestored')) - $([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previously-source-built')) - $([MSBuild]::EnsureTrailingSlash('$(CustomPrebuiltSourceBuiltPackagesPath)')) - - $([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'git-info')) - - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'prebuilt-report')) - $([MSBuild]::NormalizeDirectory('$(PackageReportDir)', 'prebuilt-packages')) - - $([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'reference')) - Private.SourceBuilt.Artifacts - Private.SourceBuilt.Prebuilts - - $(ToolsDir)prebuilt-baseline.xml - - - - - $([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.UnifiedBuild.Tasks', '$(Configuration)', 'Microsoft.DotNet.UnifiedBuild.Tasks.dll')) - $([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection', '$(Configuration)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.dll')) - - - - .prebuilt.xml - $(PackageReportDir)poison-catalog.xml - $(PackageReportDir)poisoned.txt - $(PackageReportDir)poison-usage.xml - - - - $(ArtifactsDir)VerticalManifest.xml - - - diff --git a/src/SourceBuild/content/Directory.Build.rsp b/src/SourceBuild/content/Directory.Build.rsp deleted file mode 100644 index 34e4c4fdd..000000000 --- a/src/SourceBuild/content/Directory.Build.rsp +++ /dev/null @@ -1 +0,0 @@ --tl:false \ No newline at end of file diff --git a/src/SourceBuild/content/Directory.Build.targets b/src/SourceBuild/content/Directory.Build.targets deleted file mode 100644 index 41405bafd..000000000 --- a/src/SourceBuild/content/Directory.Build.targets +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - dotnet-sdk- - - - - - - - - - %(SdkTarballItem.Filename)%(SdkTarballItem.Extension) - %(SdkTarballItem.Identity) - $(SdkFilename.Replace('$(SdkFilenamePrefix)','').Replace('-$(TargetRid)$(ArchiveExtension)','')) - - - - diff --git a/src/SourceBuild/content/Directory.Packages.props b/src/SourceBuild/content/Directory.Packages.props deleted file mode 100644 index cef6eb18b..000000000 --- a/src/SourceBuild/content/Directory.Packages.props +++ /dev/null @@ -1,26 +0,0 @@ - - - - true - - $(NoWarn);NU1507 - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/LICENSE.TXT b/src/SourceBuild/content/LICENSE.TXT deleted file mode 100644 index a616ed188..000000000 --- a/src/SourceBuild/content/LICENSE.TXT +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright (c) .NET Foundation and Contributors - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/src/SourceBuild/content/NuGet.config b/src/SourceBuild/content/NuGet.config deleted file mode 100644 index 5225fd440..000000000 --- a/src/SourceBuild/content/NuGet.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/src/SourceBuild/content/README.md b/src/SourceBuild/content/README.md deleted file mode 100644 index a1082deb0..000000000 --- a/src/SourceBuild/content/README.md +++ /dev/null @@ -1,205 +0,0 @@ -# dotnet/dotnet - Home of the .NET VMR - -This repository is a **Virtual Monolithic Repository (VMR)** which includes all the source code and infrastructure needed to build the .NET SDK. - -What this means: -- **Monolithic** - a join of multiple repositories that make up the whole product, such as [dotnet/runtime](https://github.com/dotnet/runtime) or [dotnet/sdk](https://github.com/dotnet/sdk). -- **Virtual** - a mirror (not replacement) of product repos where sources from those repositories are synchronized into. - -In the VMR, you can find: -- source files of [each product repository](#list-of-components) which are mirrored inside of their respective directories under [`src/`](https://github.com/dotnet/dotnet/tree/main/src), -- tooling that enables [building the whole .NET product from source](https://github.com/dotnet/source-build) on Linux platforms, -- small customizations, in the form of [patches](https://github.com/dotnet/dotnet/tree/main/src/installer/src/SourceBuild/patches), applied on top of the original code to make the build possible, -- *[in future]* E2E tests for the whole .NET product. - -Just like the development repositories, the VMR will have a release branch for every feature band (e.g. `release/8.0.1xx`). -Similarly, VMR's `main` branch will follow `main` branches of product repositories (see [Synchronization Based on Declared Dependencies](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#synchronization-based-on-declared-dependencies)). - -More in-depth documentation about the VMR can be found in [VMR Design And Operation](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#layout). -See also [dotnet/source-build](https://github.com/dotnet/source-build) for more information about our whole-product source-build. - -## Goals - -- The main purpose of the [dotnet/dotnet](https://github.com/dotnet/dotnet) repository is to have all source code necessary to build the .NET product available in one repository and identified by a single commit. -- The VMR also aims to become the place from which we release and service future versions of .NET to reduce the complexity of the product construction process. This should allow our partners and and 3rd parties to easily build, test and modify .NET using their custom infrastructure as well as make the process available to the community. -- Lastly, we hope to solve other problems that the current multi-repo setup brings: - - Enable the standard [down-/up-stream open-source model](src/arcade/Documentation/UnifiedBuild/VMR-Upstream-Downstream.md). - - Fulfill requirements of .NET distro builders such as RedHat or Canonical to natively include .NET in their distribution repositories. - - Simplify scenarios such as client-run testing of bug fixes and improvements. The build should work in an offline environment too for certain platforms. - - 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.** -There are considerable limitations to what is possible at the moment. For an extensive list of current limitations, please see [Temporary Mechanics](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#temporary-mechanics). -See the [Unified Build roadmap](src/arcade/Documentation/UnifiedBuild/Roadmap.md) for more details. - -### Supported platforms - -* 8.0 - * source-build configuration on Linux -* 9.0+ (WIP) - * source-build configuration on Linux - * non-source-build configuration on Linux, Mac, and Windows - -For the latest information about Source-Build support for new .NET versions, please check our [GitHub Discussions page](https://github.com/dotnet/source-build/discussions) for announcements. - -### Code flow -For the time being, the source code only flows one way - from the development repos into the VMR. -More details on this process: - -- [Source Synchronization Process](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#source-synchronization-process) -- [Synchronization Based on Declared Dependencies](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#synchronization-based-on-declared-dependencies) -- [Moving Code and Dependencies between the VMR and Development Repos](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#moving-code-and-dependencies-between-the-vmr-and-development-repos) - -We expect the code flow to start working both ways in the .NET 9 timeframe. -See the [Unified Build roadmap](src/arcade/Documentation/UnifiedBuild/Roadmap.md) for more details. - -### Contribution - -At this time, the VMR will not accept any changes and is a read-only mirror of the development repositories only. -Please, make the changes in the respective development repositories (e.g., [dotnet/runtime](https://github.com/dotnet/runtime) or [dotnet/sdk](https://github.com/dotnet/sdk)) and they will get synchronized into the VMR automatically. - -## Dev instructions - -Please note that **this repository is a work-in-progress** and there are some usability issues connected to this. -These can be nuisances such as some checked-in files getting modified by the build itself and similar. -For the latest information about Source-Build support, please watch for announcements posted on our [GitHub Discussions page](https://github.com/dotnet/source-build/discussions). - -### Prerequisites - -The dependencies for building can be found [here](https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/). -In case you don't want to / cannot prepare your environment per the requirements, consider [using Docker](#building-using-docker). - -### Building - -1. **Clone the repository** - - ```bash - git clone https://github.com/dotnet/dotnet dotnet-dotnet - cd dotnet-dotnet - ``` - -2. **Build the .NET SDK** - - Choose one of the following build modes: - - - **Microsoft based build** - - For Unix: - ```bash - ./build.sh --clean-while-building - ``` - - For Windows: - ```cmd - .\build.cmd -cleanWhileBuilding - ``` - - - **Building from source** - ```bash - # Prep the source to build on your distro. - # This downloads a .NET SDK and a number of .NET packages needed to build .NET from source. - ./prep-source-build.sh - - # Build the .NET SDK - ./build.sh -sb --clean-while-building - ``` - - The resulting SDK is placed at `artifacts/assets/Release/dotnet-sdk-9.0.100-[your-RID].tar.gz` (for Unix) or `artifacts/assets/Release/dotnet-sdk-9.0.100-[your-RID].zip` (for Windows). - -4. *(Optional)* **Unpack and install the .NET SDK** - - For Unix: - ```bash - mkdir -p $HOME/dotnet - tar zxf artifacts/assets/Release/dotnet-sdk-9.0.100-[your-RID].tar.gz -C $HOME/dotnet - ln -s $HOME/dotnet/dotnet /usr/bin/dotnet - ``` - - For Windows: - ```cmd - mkdir %userprofile%\dotnet - tar -xf artifacts/assets/Release/dotnet-sdk-9.0.100-[your RID].zip -C %userprofile%\dotnet - set "PATH=%userprofile%\dotnet;%PATH%" - ``` - - To test your built SDK, run the following: - - ```bash - dotnet --info - ``` - -> [!NOTE] -> Run `./build.sh --help` (for Unix) or `.\build.cmd -help` (for Windows) to see more information about supported build options. - -### Building using Docker - -You can also build the repository using a Docker image which has the required prerequisites inside. -The example below creates a Docker volume named `vmr` and clones and builds the VMR there. - -```sh -docker run --rm -it -v vmr:/vmr -w /vmr mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8 -git clone https://github.com/dotnet/dotnet . - -# - Microsoft based build -./build.sh --clean-while-building - -# - Building from source -./prep-source-build.sh && ./build.sh -sb --clean-while-building - -mkdir -p $HOME/.dotnet -tar -zxf artifacts/assets/Release/dotnet-sdk-9.0.100-centos.8-x64.tar.gz -C $HOME/.dotnet -ln -s $HOME/.dotnet/dotnet /usr/bin/dotnet -``` - -### Codespaces - -You can also utilize [GitHub Codespaces](https://github.com/features/codespaces) where you can find preset containers in this repository. - -### Building from released sources - -You can also build from sources (and not from a context of a git repository), such as the ones you can acquire from a [dotnet/dotnet release](https://github.com/dotnet/dotnet/releases). -In this case, you need to provide additional information which includes the original repository and commit hash the code was built from so that the SDK can provide a better debugging experience (think the `Step into..` functionality). -Usually, this means the [dotnet/dotnet repository](https://github.com/dotnet/dotnet) together with the commit the release tag is connected to. - -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 either start a [dotnet/dotnet](https://github.com/dotnet/dotnet) Codespace - you will see instructions right after it starts. Alternatively, you can clone the repository locally and use the [vmr-sync.sh](src/installer/eng/vmr-sync.sh) or [vmr-sync.ps1](src/installer/eng/vmr-sync.ps1) script to pull your changes in. Please refer to the documentation in the script for more details. - -## List of components - -The full list of components synchronized into the VMR is [here (Components.md)](./Components.md). - -The repository also contains a [JSON manifest](https://github.com/dotnet/dotnet/blob/main/src/source-manifest.json) listing all components in a machine-readable format. - -## Filing Issues - -This repo does not accept issues as of now. Please file issues to the appropriate development repos. -For issues with the VMR itself, please use the [source-build repository](https://github.com/dotnet/source-build). - -## Useful Links - -- Design documentation for the VMR - a set of documents describing the high-level design and the why's and how's - - [Design and Operation](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md) - - [Upstream/Downstream Relationships](src/arcade/Documentation/UnifiedBuild/VMR-Upstream-Downstream.md) - - [Code and Build Workflow](src/arcade/Documentation/UnifiedBuild/VMR-Code-And-Build-Workflow.md) - - [Strategy for Managing External Source Dependencies](src/arcade/Documentation/UnifiedBuild/VMR-Strategy-For-External-Source.md) -- [.NET Source-Build](https://github.com/dotnet/source-build) -- [What is .NET](https://dotnet.microsoft.com) - -## .NET Foundation - -.NET Runtime is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project. - -## License - -.NET is licensed under the [MIT](LICENSE.TXT) license. diff --git a/src/SourceBuild/content/SECURITY.md b/src/SourceBuild/content/SECURITY.md deleted file mode 100644 index e0dfff56a..000000000 --- a/src/SourceBuild/content/SECURITY.md +++ /dev/null @@ -1,41 +0,0 @@ - - -## Security - -Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). - -If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below. - -## Reporting Security Issues - -**Please do not report security vulnerabilities through public GitHub issues.** - -Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). - -If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). - -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). - -Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: - - * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) - * Full paths of source file(s) related to the manifestation of the issue - * The location of the affected source code (tag/branch/commit or direct URL) - * Any special configuration required to reproduce the issue - * Step-by-step instructions to reproduce the issue - * Proof-of-concept or exploit code (if possible) - * Impact of the issue, including how an attacker might exploit the issue - -This information will help us triage your report more quickly. - -If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. - -## Preferred Languages - -We prefer all communications to be in English. - -## Policy - -Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). - - diff --git a/src/SourceBuild/content/build.cmd b/src/SourceBuild/content/build.cmd deleted file mode 100644 index c70d2b375..000000000 --- a/src/SourceBuild/content/build.cmd +++ /dev/null @@ -1,9 +0,0 @@ -@echo off -setlocal - -set _args=%* -if "%~1"=="-?" set _args=-help -if "%~1"=="/?" set _args=-help - -powershell -ExecutionPolicy ByPass -NoProfile -Command "& '%~dp0eng\build.ps1'" %_args% -exit /b %ERRORLEVEL% \ No newline at end of file diff --git a/src/SourceBuild/content/build.proj b/src/SourceBuild/content/build.proj deleted file mode 100644 index 30ab2745b..000000000 --- a/src/SourceBuild/content/build.proj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - false - false - false - - - - - - - - - - - - - - - - - - - source-build - non-source-build - - - - - - - - - - - - diff --git a/src/SourceBuild/content/build.sh b/src/SourceBuild/content/build.sh deleted file mode 100755 index 086c56a20..000000000 --- a/src/SourceBuild/content/build.sh +++ /dev/null @@ -1,426 +0,0 @@ -#!/usr/bin/env bash - -# Stop script if unbound variable found (use ${var:-} if intentional) -set -u - -# Stop script if command returns non-zero exit code. -# Prevents hidden errors caused by missing error code propagation. -set -e - -usage() -{ - echo "Common settings:" - echo " --binaryLog Create MSBuild binary log (short: -bl)" - echo " --configuration Build configuration: 'Debug' or 'Release' (short: -c)" - echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)" - echo "" - - echo "Actions:" - echo " --clean Clean the solution" - echo " --help Print help and exit (short: -h)" - echo " --test Run tests (short: -t)" - echo "" - - echo "Source-only settings:" - echo " --source-only, --source-build Source-build the solution (short: -so, -sb)" - echo " --online Build using online sources" - echo " --poison Build with poisoning checks" - echo " --release-manifest A JSON file, an alternative source of Source Link metadata" - echo " --source-repository Source Link repository URL, required when building from tarball" - echo " --source-version Source Link revision, required when building from tarball" - echo " --with-packages Use the specified directory of previously-built packages" - echo " --with-sdk Use the SDK in the specified directory for bootstrapping" - echo "" - - echo "Non-source-only settings:" - echo " --build-repo-tests Build repository tests" - echo " --dev Use -dev or -ci versioning instead of .NET official build versions" - - - echo "Advanced settings:" - echo " --ci Set when running on CI server" - echo " --clean-while-building Cleans each repo after building (reduces disk space usage, short: -cwb)" - echo " --excludeCIBinarylog Don't output binary log (short: -nobl)" - echo " --prepareMachine Prepare machine for CI run, clean up processes after build" - echo " --use-mono-runtime Output uses the mono runtime" - echo "" - echo "Command line arguments not listed above are passed thru to msbuild." - echo "Arguments can also be passed in with a single hyphen." -} - -source="${BASH_SOURCE[0]}" - -# resolve $source until the file is no longer a symlink -while [[ -h "$source" ]]; do - scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - source="$(readlink "$source")" - # if $source was a relative symlink, we need to resolve it relative to the path where the - # symlink file was located - [[ $source != /* ]] && source="$scriptroot/$source" -done -scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - -packagesRestoredDir="$scriptroot/.packages/" - -# Common settings -binary_log=false -configuration='Release' -verbosity='minimal' - -# Actions -clean=false -test=false - -# Source-only settings -sourceOnly=false -releaseManifest='' -sourceRepository='' -sourceVersion='' -CUSTOM_PACKAGES_DIR='' -CUSTOM_SDK_DIR='' -packagesDir="$scriptroot/prereqs/packages/" -packagesArchiveDir="${packagesDir}archive/" -packagesPreviouslySourceBuiltDir="${packagesDir}previously-source-built/" - -# Advanced settings -ci=false -exclude_ci_binary_log=false -prepare_machine=false -use_dev_versioning=false - -properties=() -while [[ $# > 0 ]]; do - opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")" - case "$opt" in - # Common settings - -binarylog|-bl) - binary_log=true - ;; - -configuration|-c) - configuration=$2 - shift - ;; - -verbosity|-v) - verbosity=$2 - shift - ;; - - # Actions - -clean) - clean=true - ;; - -help|-h|-\?|/?) - usage - exit 0 - ;; - -test|-t) - test=true - ;; - - # Source-only settings - -source-only|-source-build|-so|-sb) - sourceOnly=true - properties+=( "/p:DotNetBuildSourceOnly=true" ) - ;; - -online) - properties+=( "/p:DotNetBuildWithOnlineFeeds=true" ) - ;; - -poison) - properties+=( "/p:EnablePoison=true" ) - ;; - -release-manifest) - releaseManifest="$2" - shift - ;; - -source-repository) - sourceRepository="$2" - shift - ;; - -source-version) - sourceVersion="$2" - shift - ;; - -with-packages) - CUSTOM_PACKAGES_DIR="$(cd -P "$2" && pwd)" - if [ ! -d "$CUSTOM_PACKAGES_DIR" ]; then - echo "Custom prviously built packages directory '$CUSTOM_PACKAGES_DIR' does not exist" - exit 1 - fi - shift - ;; - -with-sdk) - CUSTOM_SDK_DIR="$(cd -P "$2" && pwd)" - if [ ! -d "$CUSTOM_SDK_DIR" ]; then - echo "Custom SDK directory '$CUSTOM_SDK_DIR' does not exist" - exit 1 - fi - if [ ! -x "$CUSTOM_SDK_DIR/dotnet" ]; then - echo "Custom SDK '$CUSTOM_SDK_DIR/dotnet' does not exist or is not executable" - exit 1 - fi - shift - ;; - - # Advanced settings - -build-repo-tests) - properties+=( "/p:DotNetBuildTests=true" ) - ;; - -ci) - ci=true - ;; - -clean-while-building|-cwb) - properties+=( "/p:CleanWhileBuilding=true" ) - ;; - -excludecibinarylog|-nobl) - exclude_ci_binary_log=true - ;; - -preparemachine) - prepare_machine=true - ;; - -use-mono-runtime) - properties+=( "/p:SourceBuildUseMonoRuntime=true" ) - ;; - -dev) - use_dev_versioning=true - ;; - *) - properties+=( "$1" ) - ;; - esac - - shift -done - -if [[ "$ci" == true ]]; then - if [[ "$exclude_ci_binary_log" == false ]]; then - binary_log=true - fi -fi - -if [[ "$use_dev_versioning" == true && "$sourceOnly" != true ]]; then - properties+=( "/p:UseOfficialBuildVersioning=false" ) -fi - -# Never use the global nuget cache folder -use_global_nuget_cache=false - -. "$scriptroot/eng/common/tools.sh" - -project="$scriptroot/build.proj" -targets="/t:Build" - -# This repo uses the VSTest integration instead of the Arcade Test target -if [[ "$test" == true ]]; then - project="$scriptroot/test/tests.proj" - targets="$targets;VSTest" -fi - -function Build { - if [[ "$sourceOnly" != "true" ]]; then - - InitializeToolset - - # Manually unset NUGET_PACKAGES as InitializeToolset sets it unconditionally. - # The env var shouldn't be set so that the RestorePackagesPath msbuild property is respected. - unset NUGET_PACKAGES - - local bl="" - if [[ "$binary_log" == true ]]; then - bl="/bl:\"$log_dir/Build.binlog\"" - fi - - MSBuild --restore \ - $project \ - $targets \ - $bl \ - /p:Configuration=$configuration \ - "${properties[@]}" - - ExitWithExitCode 0 - - else - - if [ "$ci" == "true" ]; then - properties+=( "/p:ContinuousIntegrationBuild=true" ) - fi - - if [ "$test" != "true" ]; then - initSourceOnlyBinaryLog="" - if [[ "$binary_log" == true ]]; then - initSourceOnlyBinaryLog="/bl:\"$log_dir/init-source-only.binlog\"" - fi - - "$CLI_ROOT/dotnet" build-server shutdown - "$CLI_ROOT/dotnet" msbuild "$scriptroot/eng/init-source-only.proj" $initSourceOnlyBinaryLog "${properties[@]}" - # kill off the MSBuild server so that on future invocations we pick up our custom SDK Resolver - "$CLI_ROOT/dotnet" build-server shutdown - fi - - # Point MSBuild to the custom SDK resolvers folder, so it will pick up our custom SDK Resolver - export MSBUILDADDITIONALSDKRESOLVERSFOLDER="$scriptroot/artifacts/toolset/VSSdkResolvers/" - - local bl="" - if [[ "$binary_log" == true ]]; then - bl="/bl:\"$log_dir/Build.binlog\"" - fi - - "$CLI_ROOT/dotnet" msbuild --restore "$project" $bl $targets "${properties[@]}" - fi -} - -if [[ "$clean" == true ]]; then - if [ -d "$artifacts_dir" ]; then - rm -rf $artifacts_dir - echo "Artifacts directory deleted." - fi - exit 0 -fi - -# Initialize __DistroRid and __PortableTargetOS -source $scriptroot/eng/common/native/init-os-and-arch.sh -source $scriptroot/eng/common/native/init-distro-rid.sh -initDistroRidGlobal "$os" "$arch" "" - -# Source-only settings -if [[ "$sourceOnly" == "true" ]]; then - # For build purposes, we need to make sure we have all the SourceLink information - if [ "$test" != "true" ]; then - GIT_DIR="$scriptroot/.git" - if [ -f "$GIT_DIR/index" ]; then # We check for index because if outside of git, we create config and HEAD manually - if [ -n "$sourceRepository" ] || [ -n "$sourceVersion" ] || [ -n "$releaseManifest" ]; then - echo "ERROR: Source Link arguments cannot be used in a git repository" - exit 1 - fi - else - if [ -z "$releaseManifest" ]; then - if [ -z "$sourceRepository" ] || [ -z "$sourceVersion" ]; then - echo "ERROR: $scriptroot is not a git repository, either --release-manifest or --source-repository and --source-version must be specified" - exit 1 - fi - else - if [ -n "$sourceRepository" ] || [ -n "$sourceVersion" ]; then - echo "ERROR: --release-manifest cannot be specified together with --source-repository and --source-version" - exit 1 - fi - - get_property() { - local json_file_path="$1" - local property_name="$2" - grep -oP '(?<="'$property_name'": ")[^"]*' "$json_file_path" - } - - sourceRepository=$(get_property "$releaseManifest" sourceRepository) \ - || (echo "ERROR: Failed to find sourceRepository in $releaseManifest" && exit 1) - sourceVersion=$(get_property "$releaseManifest" sourceVersion) \ - || (echo "ERROR: Failed to find sourceVersion in $releaseManifest" && exit 1) - - if [ -z "$sourceRepository" ] || [ -z "$sourceVersion" ]; then - echo "ERROR: sourceRepository and sourceVersion must be specified in $releaseManifest" - exit 1 - fi - fi - - # We need to add "fake" .git/ files when not building from a git repository - mkdir -p "$GIT_DIR" - echo '[remote "origin"]' > "$GIT_DIR/config" - echo "url=\"$sourceRepository\"" >> "$GIT_DIR/config" - echo "$sourceVersion" > "$GIT_DIR/HEAD" - fi - fi - - # Support custom source built package locations - if [ "$CUSTOM_PACKAGES_DIR" != "" ]; then - if [ "$test" == "true" ]; then - properties+=( "/p:CustomSourceBuiltPackagesPath=$CUSTOM_PACKAGES_DIR" ) - else - properties+=( "/p:CustomPrebuiltSourceBuiltPackagesPath=$CUSTOM_PACKAGES_DIR" ) - fi - fi - - if [ ! -d "$scriptroot/.git" ]; then - echo "ERROR: $scriptroot is not a git repository." - exit 1 - fi - - # Allow a custom SDK directory to be specified - if [ -d "$CUSTOM_SDK_DIR" ]; then - export SDK_VERSION=$("$CUSTOM_SDK_DIR/dotnet" --version) - export CLI_ROOT="$CUSTOM_SDK_DIR" - export _InitializeDotNetCli="$CLI_ROOT/dotnet" - export DOTNET_INSTALL_DIR="$CLI_ROOT" - echo "Using custom bootstrap SDK from '$CLI_ROOT', version '$SDK_VERSION'" - else - sdkLine=$(grep -m 1 'dotnet' "$scriptroot/global.json") - sdkPattern="\"dotnet\" *: *\"(.*)\"" - if [[ $sdkLine =~ $sdkPattern ]]; then - export SDK_VERSION=${BASH_REMATCH[1]} - export CLI_ROOT="$scriptroot/.dotnet" - fi - fi - - # Find the Arcade SDK version and set env vars for the msbuild sdk resolver - packageVersionsPath='' - - if [[ "$CUSTOM_PACKAGES_DIR" != "" && -f "$CUSTOM_PACKAGES_DIR/PackageVersions.props" ]]; then - packageVersionsPath="$CUSTOM_PACKAGES_DIR/PackageVersions.props" - elif [ -d "$packagesArchiveDir" ]; then - sourceBuiltArchive=$(find "$packagesArchiveDir" -maxdepth 1 -name 'Private.SourceBuilt.Artifacts*.tar.gz') - if [ -f "${packagesPreviouslySourceBuiltDir}PackageVersions.props" ]; then - packageVersionsPath=${packagesPreviouslySourceBuiltDir}PackageVersions.props - elif [ -f "$sourceBuiltArchive" ]; then - tar -xzf "$sourceBuiltArchive" -C /tmp PackageVersions.props - packageVersionsPath=/tmp/PackageVersions.props - fi - fi - - if [ ! -f "$packageVersionsPath" ]; then - echo "Cannot find PackagesVersions.props. Debugging info:" - echo " Attempted custom PVP path: $CUSTOM_PACKAGES_DIR/PackageVersions.props" - echo " Attempted previously-source-built path: ${packagesPreviouslySourceBuiltDir}PackageVersions.props" - echo " Attempted archive path: $packagesArchiveDir" - exit 1 - fi - - # Extract toolset packages - - # Ensure that by default, the bootstrap version of the toolset SDK is used. Source-build infra - # projects use bootstrap toolset SDKs, and would fail to find it in the build. The repo - # projects overwrite this so that they use the source-built toolset SDK instad. - - # 1. Microsoft.DotNet.Arcade.Sdk - arcadeSdkLine=$(grep -m 1 'MicrosoftDotNetArcadeSdkVersion' "$packageVersionsPath") - arcadeSdkPattern="(.*)" - if [[ $arcadeSdkLine =~ $arcadeSdkPattern ]]; then - export ARCADE_BOOTSTRAP_VERSION=${BASH_REMATCH[1]} - - export SOURCE_BUILT_SDK_ID_ARCADE=Microsoft.DotNet.Arcade.Sdk - export SOURCE_BUILT_SDK_VERSION_ARCADE=$ARCADE_BOOTSTRAP_VERSION - export SOURCE_BUILT_SDK_DIR_ARCADE=$packagesRestoredDir/BootstrapPackages/microsoft.dotnet.arcade.sdk/$ARCADE_BOOTSTRAP_VERSION - fi - - # 2. Microsoft.Build.NoTargets - notargetsSdkLine=$(grep -m 1 'Microsoft.Build.NoTargets' "$scriptroot/global.json") - notargetsSdkPattern="\"Microsoft\.Build\.NoTargets\" *: *\"(.*)\"" - if [[ $notargetsSdkLine =~ $notargetsSdkPattern ]]; then - export NOTARGETS_BOOTSTRAP_VERSION=${BASH_REMATCH[1]} - - export SOURCE_BUILT_SDK_ID_NOTARGETS=Microsoft.Build.NoTargets - export SOURCE_BUILT_SDK_VERSION_NOTARGETS=$NOTARGETS_BOOTSTRAP_VERSION - export SOURCE_BUILT_SDK_DIR_NOTARGETS=$packagesRestoredDir/BootstrapPackages/microsoft.build.notargets/$NOTARGETS_BOOTSTRAP_VERSION - fi - - # 3. Microsoft.Build.Traversal - traversalSdkLine=$(grep -m 1 'Microsoft.Build.Traversal' "$scriptroot/global.json") - traversalSdkPattern="\"Microsoft\.Build\.Traversal\" *: *\"(.*)\"" - if [[ $traversalSdkLine =~ $traversalSdkPattern ]]; then - export TRAVERSAL_BOOTSTRAP_VERSION=${BASH_REMATCH[1]} - - export SOURCE_BUILT_SDK_ID_TRAVERSAL=Microsoft.Build.Traversal - export SOURCE_BUILT_SDK_VERSION_TRAVERSAL=$TRAVERSAL_BOOTSTRAP_VERSION - export SOURCE_BUILT_SDK_DIR_TRAVERSAL=$packagesRestoredDir/BootstrapPackages/microsoft.build.traversal/$TRAVERSAL_BOOTSTRAP_VERSION - fi - - echo "Found bootstrap versions: SDK $SDK_VERSION, Arcade $ARCADE_BOOTSTRAP_VERSION, NoTargets $NOTARGETS_BOOTSTRAP_VERSION and Traversal $TRAVERSAL_BOOTSTRAP_VERSION" -fi - -Build diff --git a/src/SourceBuild/content/docs/license-scanning.md b/src/SourceBuild/content/docs/license-scanning.md deleted file mode 100644 index 6007776ab..000000000 --- a/src/SourceBuild/content/docs/license-scanning.md +++ /dev/null @@ -1,24 +0,0 @@ -# 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/Build.props b/src/SourceBuild/content/eng/Build.props deleted file mode 100644 index cb6ad7cc6..000000000 --- a/src/SourceBuild/content/eng/Build.props +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/SourceBuild/content/eng/Version.Details.xml b/src/SourceBuild/content/eng/Version.Details.xml deleted file mode 100644 index eec4a8c5b..000000000 --- a/src/SourceBuild/content/eng/Version.Details.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - https://github.com/dotnet/arcade - 020255bcf7d0b8beed7de05338d97396982ae527 - - - diff --git a/src/SourceBuild/content/eng/Versions.props b/src/SourceBuild/content/eng/Versions.props deleted file mode 100644 index c589f907f..000000000 --- a/src/SourceBuild/content/eng/Versions.props +++ /dev/null @@ -1,41 +0,0 @@ - - - - 0.1.0 - alpha.1 - true - - - - 9.0.100-preview.5.24256.1 - 9.0.100-preview.5.24256.1 - 9.0.100-preview.5.24256.1 - - 2.0.0-beta4.24126.1 - - 17.8.3 - - 8.0.0 - 8.0.0 - 8.0.0 - - 13.0.3 - 6.9.1 - - diff --git a/src/SourceBuild/content/eng/allowed-sb-binaries.txt b/src/SourceBuild/content/eng/allowed-sb-binaries.txt deleted file mode 100644 index a90f99dee..000000000 --- a/src/SourceBuild/content/eng/allowed-sb-binaries.txt +++ /dev/null @@ -1,59 +0,0 @@ -# Contains the binaries that are allowed for source build - -# This file is used by the Binary Tool to remove binaries from the VMR -# If importing a file, include the relative path to the file - -**/*.bmp -**/*.doc -**/*.docx -**/*.gif -**/*.ico -**/*.jpg -**/*.JPG -**/*.pdf -**/*.png -**/*.PNG -**/*.rtf -**/*.snk -**/*.vsd -**/*.vsdx -**/*.xlsx -**/*.ttf -**/*.cur -**/*.icm -**/*.reg - -# aspnetcore -src/aspnetcore/src/**/samples/**/*.eot -src/aspnetcore/src/**/samples/**/*.pfx -src/aspnetcore/src/**/samples/**/*.woff* -src/aspnetcore/src/**/Samples/**/*.woff* -src/aspnetcore/src/Components/benchmarkapps/BlazingPizza.Server/wwwroot/css/font/quicksand-v8-latin-*.woff* -src/aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js # JavaScript files with a null bytes -src/aspnetcore/src/ProjectTemplates/Web.ProjectTemplates/**/app.db -src/aspnetcore/src/submodules/Node-Externals/cache/**/* # https://github.com/dotnet/source-build/issues/4161 - -# fsharp -src/fsharp/src/fsi/fsi.res # Icon - -# razor -src/razor/**/SampleApp/**/fonts/**/*.eot -src/razor/**/SampleApp/**/fonts/**/*.otf -src/razor/**/SampleApp/**/fonts/**/*.woff - -# roslyn -src/roslyn/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/Resources/WindowsProxy.winmd - -# runtime -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 -src/runtime/src/native/external/brotli/common/dictionary.bin.br - -# source-build-externals -src/source-build-externals/src/humanizer/src/Humanizer.Tests**/*.pfx -src/source-build-externals/src/newtonsoft-json/Src/Newtonsoft.Json.Tests/SpaceShipV2.bson -src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/build/strongNameBypass.reg # UTF16-LE text file -src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/build/strongNameBypass2.reg # UTF16-LE text file -src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/*.pfx -src/source-build-externals/src/azure-activedirectory-identitymodel-extensions-for-dotnet/test/Certs/*.cer \ No newline at end of file diff --git a/src/SourceBuild/content/eng/allowed-vmr-binaries.txt b/src/SourceBuild/content/eng/allowed-vmr-binaries.txt deleted file mode 100644 index 3cdbabc20..000000000 --- a/src/SourceBuild/content/eng/allowed-vmr-binaries.txt +++ /dev/null @@ -1,154 +0,0 @@ -# Contains the binaries that are allowed in the VMR - -# This file is used by the Binary Tool to detect new binaries that get added to the VMR - -# Import the allowed souce-build binaries (a stricter set). -import:allowed-sb-binaries.txt - -**/testCert*.pfx -**/TestCert*.pfx - -# arcade -src/arcade/src/Microsoft.DotNet.*.Tests/**/* -src/arcade/src/Microsoft.DotNet.NuGetRepack/tests/Resources/*.nupkg -src/arcade/src/Microsoft.DotNet.NuGetRepack/tests/Resources/.signature.p7s - -# aspire -src/aspire/tests/Shared/TestCertificates/*.pfx - -# aspnetcore -src/aspnetcore/src/submodules/MessagePack-CSharp/**/*.dll -src/aspnetcore/src/SignalR/clients/java/signalr/gradle/wrapper/gradle-wrapper.jar -src/aspnetcore/src/Components/**/testassets/**/*.woff* -src/aspnetcore/src/Security/Authentication/Negotiate/test/Negotiate.FunctionalTest/negotiateAuthCert.pfx -src/aspnetcore/src/**/test/**/*.cer -src/aspnetcore/src/Shared/TestCertificates/*.pfx -src/aspnetcore/src/Shared/TestCertificates/*.crt - -# cecil -src/cecil/Test/Resources/assemblies/*.netmodule -src/cecil/Test/Resources/assemblies/*.winmd -src/cecil/Test/Resources/assemblies/*.exe -src/cecil/Test/Resources/assemblies/*.dll -src/cecil/Test/Resources/assemblies/*.pdb -src/cecil/Test/Resources/assemblies/*.mdb -src/cecil/rocks/Test/Resources/assemblies/*.dll -src/cecil/symbols/**/Test/Resources/assemblies/*.exe -src/cecil/symbols/**/Test/Resources/assemblies/*.pdb -src/cecil/symbols/**/Test/Resources/assemblies/*.dll -src/cecil/symbols/**/Test/Resources/assemblies/*.mdb - -# diagnostics -src/diagnostics/src/tests/Microsoft.FileFormats.UnitTests/TestBinaries/**/* -src/diagnostics/src/tests/Microsoft.SymbolStore.UnitTests/TestBinaries/**/* - -# efcore -src/efcore/test/EFCore.Sqlite.FunctionalTests/northwind.db # https://github.com/dotnet/source-build/issues/4326 -src/efcore/benchmark/EFCore.Sqlite.Benchmarks/AdventureWorks2014.db # https://github.com/dotnet/source-build/issues/4326 - -# fsharp -src/fsharp/tests/**/*.resources -src/fsharp/tests/**/*.dll -src/fsharp/tests/**/*.exe -src/fsharp/tests/fsharp/core/resources/chimes.wav - -# msbuild -src/msbuild/src/Tasks.UnitTests/TestResources/*.pfx -src/msbuild/src/Tasks.UnitTests/AssemblyDependency/CacheFileSamples/Microsoft.VisualStudio.LanguageServices.Implementation.csprojAssemblyReference.cache - -# nuget-client -src/nuget-client/test/EndToEnd/Packages/**/*.nupkg -src/nuget-client/test/EndToEnd/Packages/**/*.zip -src/nuget-client/test/EndToEnd/Packages/**/*.dll -src/nuget-client/test/NuGet.Clients.Tests/NuGet.CommandLine.Test/compiler/resources/*.nupkg -src/nuget-client/test/NuGet.Clients.Tests/NuGet.PackageManagement.UI.Test/Resources/customMetadata.jpeg -src/nuget-client/test/NuGet.Core.Tests/NuGet.Commands.Test/compiler/resources/EmptyCertificateStore.p7b -src/nuget-client/test/NuGet.Core.Tests/NuGet.Protocol.Tests/compiler/resources/*.dll -src/nuget-client/test/NuGet.Core.FuncTests/NuGet.Packaging.FuncTest/compiler/resources/*.nupkg -src/nuget-client/test/NuGet.Core.FuncTests/NuGet.Packaging.FuncTest/compiler/resources/*.zip -src/nuget-client/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/compiler/resources/*.nupkg -src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/*.crt -src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/.signature.p7s -src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/*.nupkg -src/nuget-client/test/TestUtilities/Test.Utility/compiler/resources/*.zip - -# razor -src/razor/src/Razor/test/Microsoft.VisualStudio.Razor.IntegrationTests/TestFiles/BlazorProject.zip -src/razor/src/Razor/benchmarks/Microsoft.AspNetCore.Razor.Microbenchmarks/Resources/project.razor.bin - -# roslyn -src/roslyn/src/Compilers/Test/Resources/Core/**/*.metadata -src/roslyn/src/Compilers/Test/Resources/Core/**/*.winmd -src/roslyn/src/Compilers/Test/Resources/Core/**/*.mod -src/roslyn/src/Compilers/Test/Resources/Core/**/*.netmodule -src/roslyn/src/Compilers/Test/Resources/Core/**/*.obj -src/roslyn/src/Compilers/Test/Resources/Core/**/*.dll -src/roslyn/src/Compilers/Test/Resources/Core/**/*.exe -src/roslyn/src/Compilers/Test/Resources/Core/**/*.Dll -src/roslyn/src/Workspaces/MSBuildTest/Resources/Dlls/*.dll -src/roslyn/**/CodeAnalysisTest/**/*.res -src/roslyn/**/CodeAnalysisTest/**/*.blah -src/roslyn/**/CodeAnalysisTest/**/*.RES - -# runtime -src/runtime/src/mono/mono/eglib/test/*.txt -src/runtime/src/mono/mono/tests/exiting/*.out -src/runtime/src/**/tests/**/*.res -src/runtime/src/**/tests/**/*.resources -src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/gRPC/grpc-dotnet/testassets/Certs/InteropTests/server1.pfx -src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/AOT_PROFILED/*.mibc -src/runtime/src/tests/FunctionalTests/Android/Device_Emulator/AOT_PROFILED/*.nettrace -src/runtime/src/libraries/System.Runtime.Serialization.Xml/tests/Canonicalization/baselines/ReaderWriter_C14N_BaselineXML_Binary.xml -src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/NetModule/*.mod -src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/WinRT/Lib.winmd -src/runtime/src/libraries/System.Reflection.Metadata/tests/Resources/Misc/CPPClassLibrary2.obj -src/runtime/src/libraries/System.Console/tests/TestData/ncursesFormats/s/screen-256color -src/runtime/src/libraries/System.Console/tests/TestData/ncursesFormats/x/xterm -src/runtime/src/mono/wasm/testassets/**/*.dat -src/runtime/src/mono/wasm/testassets/**/*.o -src/runtime/src/libraries/**/tests/**/*.dll -src/runtime/src/libraries/**/tests/**/*.exe -src/runtime/src/libraries/**/tests/**/*.pdb - -# sdk -src/sdk/src/Assets/TestProjects/**/*.dat -src/sdk/src/Assets/TestProjects/**/*.cache -src/sdk/src/Assets/TestProjects/**/*.tlb -src/sdk/src/Assets/TestPackages/dotnet-new/nupkg_templates/* -src/sdk/test/Microsoft.DotNet.ShellShim.Tests/WpfBinaryTestAsssets/*.dll -src/sdk/test/Microsoft.NET.Sdk.Publish.Tasks.Tests/Resources/*.zip - -# source-build-externals -src/source-build-externals/src/application-insights*/WEB/Src/WindowsServer/WindowsServer.Tests/**/*.dll - -# symreader -src/symreader/src/PdbTestResources/Resources/* - -# templating -src/templating/test/Microsoft.TemplateEngine.TestTemplates/nupkg_templates/*.nupkg - -# test-templates -src/test-templates/Templates/**/*.nupkg - -# vstest -src/vstest/samples/Microsoft.TestPlatform.*/Adapter/Microsoft.VisualStudio.TestPlatform.*.dll -src/vstest/temp/cpp/**/*.dll -src/vstest/test/Microsoft.TestPlatform.CoreUtilities.UnitTests/TestAssets/*.exe -src/vstest/test/Microsoft.TestPlatform.CoreUtilities.UnitTests/TestAssets/dotnetMac* -src/vstest/test/Microsoft.TestPlatform.Utilities.UnitTests/TestFiles/fullcovered.coverage -src/vstest/test/TestAssets/LegacySettingsUnitTestProject/DependencyAssembly/DependencyAssemblyForTest.dll - -# winforms -src/winforms/src/System.Windows.Forms/tests/IntegrationTests/MauiTests/lib/*.dll -src/winforms/src/System.Windows.Forms/tests/IntegrationTests/WinformsControlsTest/Resources/media.mpg -src/winforms/src/System.Windows.Forms/tests/UnitTests/bitmaps/milkmateya01.emf -src/winforms/src/System.Windows.Forms/tests/UnitTests/TestResources/VB6/SimpleControl.vb6 -src/winforms/src/System.Windows.Forms*/**/*.wmf -src/winforms/src/System.Windows.Forms.Design/src/Resources/colordlg.data - -# wpf -src/wpf/src/Microsoft.DotNet.Wpf/src/ReachFramework/Resources/generated/*.resources -src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Resources/Hyphenation/Hyphen_en.lex -src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Resources/Hyphenation/Hyphen_en.hdict -src/wpf/src/Microsoft.DotNet.Wpf/src/Shared/Tracing/resources/*.BIN -src/wpf/src/Microsoft.DotNet.Wpf/src/Shared/Tracing/resources/*.bin diff --git a/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props b/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props deleted file mode 100644 index 4da9c2172..000000000 --- a/src/SourceBuild/content/eng/bootstrap/OverrideBootstrapVersions.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - 7.0.4-servicing.23107.6 - - $(NonshippingRuntimeVersionFor700) - - diff --git a/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj b/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj deleted file mode 100644 index f81507fe7..000000000 --- a/src/SourceBuild/content/eng/bootstrap/buildBootstrapPreviouslySB.csproj +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - net7.0 - $(MSBuildProjectDirectory)/artifacts/ - $(MSBuildProjectDirectory)/artifacts/restoredPkgs/ - $(MSBuildProjectDirectory)/artifacts/unpacked/ - $(ArchiveDir)Private.SourceBuilt.Artifacts.Bootstrap.tar.gz - - - - - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %(UnixRid.Identity) - - - - - %(UnixRid.Identity) - - - - - - - %(RuntimePackWithUnixRid.Identity).%(RuntimePackWithUnixRid.UnixRid) - - - - - %(PortablePackageWithUnixRid.Identity) - - - - - runtime.%(PortablePackageWithUnixRid.UnixRid).%(PortablePackageWithUnixRid.Identity) - - - runtime.%(PortablePackageWithUnixRid.UnixRid).runtime.native.%(PortablePackageWithUnixRid.Identity) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @(SourceFileName->'%(Filename)') - $(DestinationFileName.Replace('$(PackageName.ToLower()).','')) - - - - - - $([System.String]::concat('%3C','$(PackageName)','Version','%3E').Replace('.','')) - $([System.String]::concat('%3C','$(PackageName)','PackageVersion','%3E').Replace('.','')) - $(DestinationPath)PackageVersions.props - - - - diff --git a/src/SourceBuild/content/eng/build.ps1 b/src/SourceBuild/content/eng/build.ps1 deleted file mode 100644 index 128315cab..000000000 --- a/src/SourceBuild/content/eng/build.ps1 +++ /dev/null @@ -1,118 +0,0 @@ -[CmdletBinding(PositionalBinding=$false)] -Param( - # Common settings - [switch][Alias('bl')]$binaryLog, - [string][Alias('c')]$configuration = "Release", - [string][Alias('v')]$verbosity = "minimal", - - # Actions - [switch]$clean, - [switch][Alias('h')]$help, - [switch][Alias('t')]$test, - - # Advanced settings - [switch]$buildRepoTests, - [switch]$ci, - [switch][Alias('cwb')]$cleanWhileBuilding, - [switch][Alias('nobl')]$excludeCIBinarylog, - [switch] $prepareMachine, - [switch] $dev, - [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties -) - -function Get-Usage() { - Write-Host "Common settings:" - Write-Host " -binaryLog Output binary log (short: -bl)" - Write-Host " -configuration Build configuration: 'Debug' or 'Release' (short: -c). [Default: Release]" - Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)" - Write-Host "" - - Write-Host "Actions:" - Write-Host " -clean Clean the solution" - Write-Host " -help Print help and exit (short: -h)" - Write-Host " -test Run tests (repo tests omitted by default) (short: -t)" - Write-Host "" - - Write-Host "Advanced settings:" - Write-Host " -buildRepoTests Build repository tests" - Write-Host " -ci Set when running on CI server" - Write-Host " -cleanWhileBuilding Cleans each repo after building (reduces disk space usage, short: -cwb)" - Write-Host " -excludeCIBinarylog Don't output binary log (short: -nobl)" - Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build" - Write-Host " -dev Use -dev or -ci versioning instead of .NET official build versions" - Write-Host "" -} - -$useGlobalNuGetCache=$false - -. $PSScriptRoot\common\tools.ps1 - -if ($help) { - Get-Usage - exit 0 -} - -$project = Join-Path $RepoRoot "build.proj" -$arguments = @() -$targets = "/t:Build" - -# This repo uses the VSTest integration instead of the Arcade Test target -if ($test) { - $project = Join-Path (Join-Path $RepoRoot "test") "tests.proj" - $targets += ";VSTest" -} - -if ($buildRepoTests) { - $arguments += "/p:DotNetBuildTests=true" -} - -if ($cleanWhileBuilding) { - $arguments += "/p:CleanWhileBuilding=true" -} - -if ($dev) { - $arguments += "/p:UseOfficialBuildVersioning=false" -} - -function Build { - InitializeToolset - - # Manually unset NUGET_PACKAGES as InitializeToolset sets it unconditionally. - # The env var shouldn't be set so that the RestorePackagesPath msbuild property is respected. - $env:NUGET_PACKAGES='' - - $bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' } - - MSBuild -restore ` - $project ` - $bl ` - $targets ` - /p:Configuration=$configuration ` - @properties ` - @arguments -} - -try { - if ($clean) { - if (Test-Path $ArtifactsDir) { - Remove-Item -Recurse -Force $ArtifactsDir - Write-Host 'Artifacts directory deleted.' - } - exit 0 - } - - if ($ci) { - if (-not $excludeCIBinarylog) { - $binaryLog = $true - } - } - - Build -} -catch { - Write-Host $_.ScriptStackTrace - Write-PipelineTelemetryError -Category 'Build' -Message $_ - ExitWithExitCode 1 -} - -ExitWithExitCode 0 diff --git a/src/SourceBuild/content/eng/detect-binaries.sh b/src/SourceBuild/content/eng/detect-binaries.sh deleted file mode 100755 index f43c708f0..000000000 --- a/src/SourceBuild/content/eng/detect-binaries.sh +++ /dev/null @@ -1,139 +0,0 @@ -#!/usr/bin/env bash - -### Usage: $0 -### -### Prepares and runs the binary tooling to detect binaries in the VMR. Default behavior is to report any binaries -### not found in the allowed-binaries file. To remove binaries not specified in the allowed-binaries file, pass --clean. -### -### Options: -### --clean Clean the VMR of binaries not in the specified allowed-binaries file. -### --allowed-binaries-file Path to the file containing the list of binaries to be -### ignored for either cleaning or validating. -### Defaults to eng/allowed-vmr-binaries.txt. -### --log-level Set the log level for the binary tooling. Defaults to Debug. -### --with-packages Use the specified directory as the packages source feed. -### Defaults to online dotnet-public and dotnet-libraries feeds. -### --with-sdk Use the specified directory as the dotnet SDK. -### Defaults to .dotnet. - -set -euo pipefail -IFS=$'\n\t' - -source="${BASH_SOURCE[0]}" -REPO_ROOT="$( cd -P "$( dirname "$0" )/../" && pwd )" -BINARY_TOOL="$REPO_ROOT/eng/tools/BinaryToolKit" - -function print_help () { - sed -n '/^### /,/^$/p' "$source" | cut -b 5- -} - -defaultDotnetSdk="$REPO_ROOT/.dotnet" -defaultAllowedBinariesFile="$REPO_ROOT/eng/allowed-vmr-binaries.txt" - -# Set default values -allowedBinariesFile=$defaultAllowedBinariesFile -mode='validate' -logLevel='Debug' -propsDir='' -packagesDir='' -restoreSources='' -dotnetSdk=$defaultDotnetSdk - -positional_args=() -while :; do - if [ $# -le 0 ]; then - break - fi - lowerI="$(echo "$1" | awk '{print tolower($0)}')" - case $lowerI in - "-?"|-h|--help) - print_help - exit 0 - ;; - --clean) - mode="clean" - ;; - --allowed-binaries-file) - allowedBinariesFile=$2 - shift - ;; - --log-level) - logLevel=$2 - shift - ;; - --with-packages) - packagesDir=$2 - if [ ! -d "$packagesDir" ]; then - echo "ERROR: The specified packages directory does not exist." - exit 1 - elif [ ! -f "$packagesDir/PackageVersions.props" ]; then - echo "ERROR: The specified packages directory does not contain PackageVersions.props." - exit 1 - fi - shift - ;; - --with-sdk) - dotnetSdk=$2 - if [ ! -d "$dotnetSdk" ]; then - echo "Custom SDK directory '$dotnetSdk' does not exist" - exit 1 - fi - if [ ! -x "$dotnetSdk/dotnet" ]; then - echo "Custom SDK '$dotnetSdk/dotnet' does not exist or is not executable" - exit 1 - fi - shift - ;; - *) - positional_args+=("$1") - ;; - esac - - shift -done - -function ParseBinaryArgs -{ - # Check allowed binaries file - if [ ! -f "$allowedBinariesFile" ]; then - echo "ERROR: The specified allowed-binaries file does not exist." - exit 1 - fi - - # Check dotnet sdk - if [ "$dotnetSdk" == "$defaultDotnetSdk" ]; then - if [ ! -d "$dotnetSdk" ]; then - . "$REPO_ROOT/eng/common/tools.sh" - InitializeDotNetCli true - fi - else if [ ! -x "$dotnetSdk/dotnet" ]; then - echo "'$dotnetSdk/dotnet' does not exist or is not executable" - exit 1 - fi - fi - - # Check the packages directory - if [ -z "$packagesDir" ]; then - # Use dotnet-public and dotnet-libraries feeds as the default packages source feeds - restoreSources="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json%3Bhttps://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries/nuget/v3/index.json" - else - restoreSources=$(realpath ${packagesDir}) - fi -} - -function RunBinaryTool -{ - targetDir="$REPO_ROOT" - outputDir="$REPO_ROOT/artifacts/log/binary-report" - BinaryToolCommand=""$dotnetSdk/dotnet" run --project "$BINARY_TOOL" -c Release --property:RestoreSources="$restoreSources" "$mode" "$targetDir" -o "$outputDir" -ab "$allowedBinariesFile" -l "$logLevel"" - - if [ -n "$packagesDir" ]; then - BinaryToolCommand=""$BinaryToolCommand" -p CustomPackageVersionsProps="$packagesDir/PackageVersions.props"" - fi - - # Run the Binary Tool - eval "$BinaryToolCommand" -} - -ParseBinaryArgs -RunBinaryTool diff --git a/src/SourceBuild/content/eng/extract-sdk-archive.proj b/src/SourceBuild/content/eng/extract-sdk-archive.proj deleted file mode 100644 index d170c4395..000000000 --- a/src/SourceBuild/content/eng/extract-sdk-archive.proj +++ /dev/null @@ -1,20 +0,0 @@ - - - - $(NetCurrent) - - - - - - - - - diff --git a/src/SourceBuild/content/eng/finish-source-only.proj b/src/SourceBuild/content/eng/finish-source-only.proj deleted file mode 100644 index f6d93bcb2..000000000 --- a/src/SourceBuild/content/eng/finish-source-only.proj +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - false - $(NetCurrent) - - - - - - - - - - - - - - - - - - $(ArtifactsAssetsDir)dotnet-symbols-all-$(SourceBuiltSdkVersion)-$(TargetRid)$(ArchiveExtension) - $(ArtifactsAssetsDir)dotnet-symbols-sdk-$(SourceBuiltSdkVersion)-$(TargetRid)$(ArchiveExtension) - - - - - - - - - - - - - - - - - - - - $(BaseIntermediateOutputPath)SdkSymbols - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(PackageReportDir)PrebuiltBurndownData.csv - - - - - - - - - - - - - - - - - - - - - - - - $(ArtifactsAssetsDir)$(SourceBuiltPrebuiltsTarballName).$(SourceBuiltSdkVersion).$(TargetRid)$(ArchiveExtension) - $(ResultingPrebuiltPackagesDir) - - - - - - - - - - - - - - - - - - - - - - - - $([MSBuild]::NormalizeDirectory('$(BaseIntermediateOutputPath)', 'artifacts-layout')) - - - $(ArtifactsAssetsDir)$(SourceBuiltArtifactsTarballName).$(SourceBuiltSdkVersion).$(TargetRid)$(ArchiveExtension) - $(SourceBuiltLayoutDir).version - $(SourceBuiltLayoutDir)PackageVersions.props - $(SourceBuiltLayoutDir)%(MergedAssetManifest.Filename)%(MergedAssetManifest.Extension) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/eng/init-cross-build.proj b/src/SourceBuild/content/eng/init-cross-build.proj deleted file mode 100644 index f017ae51d..000000000 --- a/src/SourceBuild/content/eng/init-cross-build.proj +++ /dev/null @@ -1,22 +0,0 @@ - - - - $(NetCurrent) - - - - - ROOTFS_DIR=$(ArtifactsObjDir)crossrootfs/arm - ROOTFS_DIR=$(ArtifactsObjDir)crossrootfs/armel - - - - - - - diff --git a/src/SourceBuild/content/eng/init-poison.proj b/src/SourceBuild/content/eng/init-poison.proj deleted file mode 100644 index d1497ccd9..000000000 --- a/src/SourceBuild/content/eng/init-poison.proj +++ /dev/null @@ -1,39 +0,0 @@ - - - - $(NetCurrent) - - - - - - - - - - .source-built.xml - $(PackageReportDir)poison-source-built-catalog.xml - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/eng/init-source-only.proj b/src/SourceBuild/content/eng/init-source-only.proj deleted file mode 100644 index f45d4a70c..000000000 --- a/src/SourceBuild/content/eng/init-source-only.proj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - true - - netstandard2.0 - true - false - - - - - - - - - - $([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'archive')) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/eng/merge-asset-manifests.proj b/src/SourceBuild/content/eng/merge-asset-manifests.proj deleted file mode 100644 index fb05993aa..000000000 --- a/src/SourceBuild/content/eng/merge-asset-manifests.proj +++ /dev/null @@ -1,27 +0,0 @@ - - - - $(NetCurrent) - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/eng/pipelines/ci.yml b/src/SourceBuild/content/eng/pipelines/ci.yml deleted file mode 100644 index 59ce02278..000000000 --- a/src/SourceBuild/content/eng/pipelines/ci.yml +++ /dev/null @@ -1,91 +0,0 @@ -# This yml is used by these pipelines and triggers: -# NOTE: the triggers are defined in the Azure DevOps UI as they are too complex -# -# - dotnet-source-build (public) -# https://dev.azure.com/dnceng-public/public/_build?definitionId=240 -# - PR: ultralite build -# - CI: release/* only, every batched commit, full build -# - Schedule: main only, full build -# -# - dotnet-unified-build (public) -# https://dev.azure.com/dnceng-public/public/_build?definitionId=278 -# - PR: lite build -# - CI: release/* only, every batched commit, full build -# - Schedule: main only, full build -# -# - dotnet-source-build (internal) -# https://dev.azure.com/dnceng/internal/_build?definitionId=1219 -# - PR: ultralite build -# - CI: release/* and internal/release/* only, every batched commit, full build -# - Schedule: main only, full build -# -# - dotnet-source-build-lite (internal) -# https://dev.azure.com/dnceng/internal/_build?definitionId=1299 -# - PR: release/* and main, lite build, on-demand trigger -# - CI: main only, every batched commit, lite build -# -# - dotnet-unified-build (internal) -# https://dev.azure.com/dnceng/internal/_build?definitionId=1330 -# - PR: lite build -# - CI: release/*, internal/release/* and main, every batched commit, full build - -variables: -# enable source-only build for pipelines that contain the -source-build string -- name: isSourceOnlyBuild - value: ${{ contains(variables['Build.DefinitionName'], '-source-build') }} - -- name: isSourceOnlyBuildLite - value: ${{ contains(variables['Build.DefinitionName'], '-source-build-lite') }} - -- name: isScheduleTrigger - value: ${{ eq(variables['Build.Reason'], 'Schedule') }} - -- name: isPRTrigger - value: ${{ eq(variables['Build.Reason'], 'PullRequest') }} - -- template: /eng/common/templates-official/variables/pool-providers.yml@self - -resources: - repositories: - - repository: 1ESPipelineTemplates - type: git - name: 1ESPipelineTemplates/1ESPipelineTemplates - ref: refs/tags/release - -extends: - template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates - parameters: - sdl: - sourceAnalysisPool: - name: $(DncEngInternalBuildPool) - image: 1es-windows-2022 - os: windows - - codeql: - compiled: - enabled: true - # Runs analysis in the SDL stage and not every job - # https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/sdlanalysis/codeql#improving-codeql-performance - runSourceLanguagesInSourceAnalysis: true - - baseline: - baselineFile: $(Build.SourcesDirectory)\.config\guardian\.gdnbaselines - - stages: - - ${{ if and(ne(variables.isPRTrigger, 'true'), eq(variables['System.TeamProject'], 'internal')) }}: - - template: /eng/pipelines/templates/stages/vmr-scan.yml@self - - - template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml@self - parameters: - isBuiltFromVmr: true - isSourceOnlyBuild: ${{ variables.isSourceOnlyBuild }} - ${{ if eq(variables.isScheduleTrigger, 'true') }}: - scope: full - ${{ elseif eq(variables.isSourceOnlyBuildLite, 'true') }}: - scope: lite - ${{ elseif and(eq(variables.isPRTrigger, 'true'), eq(variables.isSourceOnlyBuild, 'true')) }}: - scope: ultralite - ${{ elseif and(eq(variables.isPRTrigger, 'true'), ne(variables.isSourceOnlyBuild, 'true')) }}: - scope: lite - ${{ else }}: - scope: full diff --git a/src/SourceBuild/content/eng/pipelines/pr.yml b/src/SourceBuild/content/eng/pipelines/pr.yml deleted file mode 100644 index 6553c2a90..000000000 --- a/src/SourceBuild/content/eng/pipelines/pr.yml +++ /dev/null @@ -1,50 +0,0 @@ -# This yml is used by these PR pipelines and triggers: -# NOTE: the triggers are defined in the Azure DevOps UI as they are too complex -# -# - dotnet-source-build (public) -# https://dev.azure.com/dnceng-public/public/_build?definitionId=240 -# - PR: ultralite build -# - CI: release/* only, every batched commit, full build -# - Schedule: main only, full build -# -# - dotnet-unified-build (public) -# https://dev.azure.com/dnceng-public/public/_build?definitionId=278 -# - PR: lite build -# - CI: release/* only, every batched commit, full build -# - Schedule: main only, full build -# - -variables: -# enable source-only build for pipelines that contain the -source-build string -- name: isSourceOnlyBuild - value: ${{ contains(variables['Build.DefinitionName'], '-source-build') }} - -- name: isSourceOnlyBuildLite - value: ${{ contains(variables['Build.DefinitionName'], '-source-build-lite') }} - -- name: isScheduleTrigger - value: ${{ eq(variables['Build.Reason'], 'Schedule') }} - -- name: isPRTrigger - value: ${{ eq(variables['Build.Reason'], 'PullRequest') }} - -- name: Codeql.Enabled # we run CodeQL on internal builds only - value: false - -- template: /eng/common/templates/variables/pool-providers.yml@self - -stages: -- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml - parameters: - isBuiltFromVmr: true - isSourceOnlyBuild: ${{ variables.isSourceOnlyBuild }} - ${{ if eq(variables.isScheduleTrigger, 'true') }}: - scope: full - ${{ elseif eq(variables.isSourceOnlyBuildLite, 'true') }}: - scope: lite - ${{ elseif and(eq(variables.isPRTrigger, 'true'), eq(variables.isSourceOnlyBuild, 'true')) }}: - scope: ultralite - ${{ elseif and(eq(variables.isPRTrigger, 'true'), ne(variables.isSourceOnlyBuild, 'true')) }}: - scope: lite - ${{ else }}: - scope: full diff --git a/src/SourceBuild/content/eng/pipelines/source-build-sdk-diff-tests.yml b/src/SourceBuild/content/eng/pipelines/source-build-sdk-diff-tests.yml deleted file mode 100644 index 0303a17c0..000000000 --- a/src/SourceBuild/content/eng/pipelines/source-build-sdk-diff-tests.yml +++ /dev/null @@ -1,68 +0,0 @@ -schedules: -- cron: "0 11 * * 1-5" - displayName: Run on weekdays at 11am UTC - branches: - include: - - main - -# Relies on dotnet-source-build being in the same repo as this pipeline -# https://learn.microsoft.com/en-us/azure/devops/pipelines/process/pipeline-triggers?view=azure-devops#branch-considerations -resources: - pipelines: - - pipeline: dotnet-source-build - source: dotnet-source-build - trigger: - branches: - include: - - release/*.0.1xx* - - internal/release/*.0.1xx* - -pr: none -trigger: none - -pool: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals 1es-ubuntu-2004 - -parameters: -- name: dotnetDotnetRunId - displayName: 'Specific dotnet-dotnet run ID number (e.g `2108850`)' - type: string - default: ' ' - -jobs: -- template: templates/jobs/sdk-diff-tests.yml - parameters: - buildName: CentOSStream9_Offline_MsftSdk - targetRid: centos.9-x64 - architecture: x64 - dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} - includeArtifactsSize: true - -- template: templates/jobs/sdk-diff-tests.yml - parameters: - buildName: Alpine319_Online_MsftSdk - targetRid: alpine.3.19-x64 - architecture: x64 - dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} - -- template: templates/jobs/sdk-diff-tests.yml - parameters: - buildName: Fedora39_Offline_MsftSdk - targetRid: fedora.39-x64 - architecture: x64 - dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} - -- template: templates/jobs/sdk-diff-tests.yml - parameters: - buildName: Ubuntu2204_Offline_MsftSdk - targetRid: ubuntu.22.04-x64 - architecture: x64 - dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} - -- template: templates/jobs/sdk-diff-tests.yml - parameters: - buildName: Ubuntu2204Arm64_Offline_MsftSdk - targetRid: ubuntu.22.04-arm64 - architecture: arm64 - dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }} diff --git a/src/SourceBuild/content/eng/pipelines/templates/jobs/sdk-diff-tests.yml b/src/SourceBuild/content/eng/pipelines/templates/jobs/sdk-diff-tests.yml deleted file mode 100644 index 2f08059bd..000000000 --- a/src/SourceBuild/content/eng/pipelines/templates/jobs/sdk-diff-tests.yml +++ /dev/null @@ -1,167 +0,0 @@ -parameters: -- name: buildName - type: string - -- name: targetRid - type: string - -- name: architecture - type: string - -- name: dotnetDotnetRunId - type: string - -- name: includeArtifactsSize - type: boolean - default: false - -jobs: -- job: ${{ parameters.buildName }}_${{ parameters.architecture }} - timeoutInMinutes: 150 - pool: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals 1es-ubuntu-2004 - variables: - - template: ../variables/pipelines.yml - steps: - - script: | - dotnet_dotnet_build='${{ replace(parameters.dotnetDotnetRunId, ' ', '') }}' - - if [[ -z "$dotnet_dotnet_build" ]]; then - dotnet_dotnet_build=$(az pipelines runs list --branch '$(Build.SourceBranch)' --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --pipeline-ids '$(DOTNET_DOTNET_CI_PIPELINE_ID)' --status completed --top 1 --query "[].id" --output tsv) - fi - - if [[ -z "$dotnet_dotnet_build" ]]; then - echo "Could not find a completed dotnet-dotnet build for branch '$(Build.SourceBranch)'" - exit 1 - fi - - echo "Dotnet-dotnet build: https://dev.azure.com/dnceng/internal/_build/results?buildId=$dotnet_dotnet_build&view=results" - - installer_sha=$(az pipelines build tag list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --build-id $dotnet_dotnet_build --query "[?contains(@, 'installer')]" --output tsv | sed "s,installer ,,g") - installer_build=$(az pipelines runs list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --pipeline-ids '$(INSTALLER_OFFICIAL_CI_PIPELINE_ID)' --query "[?sourceVersion == '$installer_sha'].id" --output tsv) - if [[ -z "$installer_build" ]]; then - echo "Could not find a build of installer for commit '$installer_sha'" - exit 1 - fi - - echo "Installer build: https://dev.azure.com/dnceng/internal/_build/results?buildId=$installer_build&view=results" - - echo "##vso[build.addbuildtag]installer $installer_sha" - echo "##vso[task.setvariable variable=InstallerBuildId]$installer_build" - echo "##vso[task.setvariable variable=DotnetDotnetBuildId]$dotnet_dotnet_build" - displayName: Find associated builds - name: Get_Build_Ids - env: - AZURE_DEVOPS_EXT_PAT: $(System.AccessToken) - - - 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: '**/assets/Release/dotnet-sdk-+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*)-${{ parameters.targetRid }}.tar.gz' - displayName: Download Source Build SDK - - - template: ../steps/download-vmr-artifact.yml - parameters: - buildName: ${{ parameters.buildName }} - architecture: ${{ parameters.architecture }} - patterns: '**/assets/Release/Private.SourceBuilt.Artifacts.+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*).${{ parameters.targetRid }}.tar.gz' - displayName: Download Source Built Artifacts - - - script: | - find $(Pipeline.Workspace)/Artifacts -type f -exec mv {} $(Pipeline.Workspace)/Artifacts \; - displayName: Move Artifacts to root - - - script: | - platform="linux" - if [[ ${{ parameters.targetRid }} =~ "alpine" ]]; then - platform="$platform-musl" - fi - msft_sdk_tarball_name=$(find "$(Pipeline.Workspace)/Artifacts" -name "dotnet-sdk-*-$platform-${{ parameters.architecture }}.tar.gz" -exec basename {} \;) - - if [[ -z "$msft_sdk_tarball_name" ]]; then - echo "Microsoft SDK tarball does not exist in '$(Pipeline.Workspace)/Artifacts'. The associated build https://dev.azure.com/dnceng/internal/_build/results?buildId=$(InstallerBuildId) might have failed." - exit 1 - fi - - sdk_tarball_name=$(find "$(Pipeline.Workspace)/Artifacts" -name "dotnet-sdk-*-${{ parameters.targetRid }}.tar.gz" -exec basename {} \;) - - if [[ -z "$sdk_tarball_name" ]]; then - echo "Source-build SDK tarball 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 - - 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)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj --restore - - echo "##vso[task.setvariable variable=Platform]$platform" - 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) - - - script: > - .dotnet/dotnet test - $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj - --filter "Category=SdkContent" - --logger:'trx;LogFileName=$(Agent.JobName)_SDKDiffTests.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 - /p:MsftSdkTarballPath=$(MsftSdkTarballPath) - /p:SdkTarballPath=$(SdkTarballPath) - /p:SourceBuiltArtifactsPath=$(SourceBuiltArtifactsPath) - /p:SmokeTestsWarnOnSdkContentDiffs=false - /p:SmokeTestsIncludeArtifactsSizeTests=${{ parameters.includeArtifactsSize }} - /p:TargetRid=${{ parameters.targetRid }} - /p:PortableRid=$(Platform)-${{ parameters.architecture }} - displayName: Run Tests - workingDirectory: $(Build.SourcesDirectory) - - - script: | - set -x - targetFolder=$(Build.StagingDirectory)/BuildLogs/ - mkdir -p ${targetFolder} - cd "$(Build.SourcesDirectory)" - find artifacts/log/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/log/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.log" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.diff" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "Updated*.txt" -exec cp {} --parents -t ${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)/artifacts/TestResults - mergeTestResults: true - publishRunAttachments: true - testRunTitle: $(Agent.JobName) diff --git a/src/SourceBuild/content/eng/pipelines/templates/stages/vmr-scan.yml b/src/SourceBuild/content/eng/pipelines/templates/stages/vmr-scan.yml deleted file mode 100644 index ca377cca8..000000000 --- a/src/SourceBuild/content/eng/pipelines/templates/stages/vmr-scan.yml +++ /dev/null @@ -1,43 +0,0 @@ -stages: -- stage: Tag_n_Scan - displayName: Tag & Scan - dependsOn: [] - jobs: - - job: Tag_n_Scan - displayName: Tag & Scan - pool: - name: $(DncEngInternalBuildPool) - image: 1es-ubuntu-2004 - os: linux - - steps: - - checkout: self - - - script: | - source ./eng/common/tools.sh - InitializeDotNetCli true - ./.dotnet/dotnet tool restore - displayName: Initialize tooling - workingDirectory: $(Build.SourcesDirectory)/src/installer - - - script: | - set -e - sha=`./.dotnet/dotnet darc vmr get-version --vmr "$(Build.SourcesDirectory)" installer` - echo "##vso[build.addbuildtag]$sha" - displayName: Tag the build - workingDirectory: $(Build.SourcesDirectory)/src/installer - - - script: | - ./eng/detect-binaries.sh - displayName: Scan for binaries - workingDirectory: $(Build.SourcesDirectory) - continueOnError: true - - - script: > - ./.dotnet/dotnet darc vmr scan-cloaked-files - --vmr "$(Build.SourcesDirectory)" - --tmp "$(Agent.TempDirectory)" - || (echo '##[error]Found cloaked files in the VMR' && exit 1) - displayName: Scan for cloaked files - workingDirectory: $(Build.SourcesDirectory)/src/installer - continueOnError: true \ No newline at end of file diff --git a/src/SourceBuild/content/eng/pipelines/templates/steps/download-pipeline-artifact.yml b/src/SourceBuild/content/eng/pipelines/templates/steps/download-pipeline-artifact.yml deleted file mode 100644 index 21df363d7..000000000 --- a/src/SourceBuild/content/eng/pipelines/templates/steps/download-pipeline-artifact.yml +++ /dev/null @@ -1,35 +0,0 @@ -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/src/SourceBuild/content/eng/pipelines/templates/steps/download-vmr-artifact.yml b/src/SourceBuild/content/eng/pipelines/templates/steps/download-vmr-artifact.yml deleted file mode 100644 index 2e2266c42..000000000 --- a/src/SourceBuild/content/eng/pipelines/templates/steps/download-vmr-artifact.yml +++ /dev/null @@ -1,22 +0,0 @@ -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/src/SourceBuild/content/eng/pipelines/templates/variables/pipelines.yml b/src/SourceBuild/content/eng/pipelines/templates/variables/pipelines.yml deleted file mode 100644 index 2db47a1be..000000000 --- a/src/SourceBuild/content/eng/pipelines/templates/variables/pipelines.yml +++ /dev/null @@ -1,11 +0,0 @@ -variables: -- name: AZDO_PROJECT - value: internal -- name: AZDO_ORG - value: https://dev.azure.com/dnceng/ -- name: INSTALLER_OFFICIAL_CI_PIPELINE_ID - value: 286 -- name: INSTALLER_TARBALL_BUILD_CI_PIPELINE_ID - value: 1011 -- name: DOTNET_DOTNET_CI_PIPELINE_ID - value: 1219 \ No newline at end of file diff --git a/src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml b/src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml deleted file mode 100644 index d73cceecf..000000000 --- a/src/SourceBuild/content/eng/pipelines/vmr-license-scan.yml +++ /dev/null @@ -1,143 +0,0 @@ -# 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: | - source ./eng/common/tools.sh - InitializeDotNetCli true - displayName: Install .NET SDK - workingDirectory: $(Build.SourcesDirectory) - - - 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 - /p:SmokeTestsLicenseScanPath=$(repoPath) - /p:SmokeTestsWarnOnLicenseScanDiffs=false - /p:TargetRid=linux-x64 - /p:PortableRid=linux-x64 - displayName: Run Tests - workingDirectory: $(Build.SourcesDirectory) - - - script: | - set -x - targetFolder=$(Build.StagingDirectory)/BuildLogs/ - mkdir -p ${targetFolder} - cd "$(Build.SourcesDirectory)" - find artifacts/log/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/log/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "*.log" -exec cp {} --parents -t ${targetFolder} \; - echo "Updated:" - find artifacts/TestResults/ -type f -name "UpdatedLicenseExclusions*.txt" - find artifacts/TestResults/ -type f -name "UpdatedLicenseExclusions*.txt" -exec cp {} --parents -t ${targetFolder} \; - find artifacts/TestResults/ -type f -name "Updated*.json" - find artifacts/TestResults/ -type f -name "Updated*.json" -exec cp {} --parents -t ${targetFolder} \; - echo "Results:" - find artifacts/TestResults/ -type f -name "scancode-results*.json" -exec cp {} --parents -t ${targetFolder} \; - echo "All:" - ls -R artifacts/TestResults/ - 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/src/SourceBuild/content/eng/restore-build-edited-files.ps1 b/src/SourceBuild/content/eng/restore-build-edited-files.ps1 deleted file mode 100644 index d817e177c..000000000 --- a/src/SourceBuild/content/eng/restore-build-edited-files.ps1 +++ /dev/null @@ -1,45 +0,0 @@ -<# -.SYNOPSIS - Script to perform git restore for a set of commonly edited paths when building the VMR. - -.DESCRIPTION - This script restores the specified paths using git restore command. It provides options for logging, confirmation, and parameterized restore. - -.PARAMETER PathsToRestore - Specifies the paths to be restored. Default paths are: - - src/*/eng/common/* - - src/*global.json - -.PARAMETER LogPath - Specifies the path to save the log file. Default is 'restore.log' in the script directory. - -.PARAMETER NoPrompt - Indicates whether to skip the confirmation prompt. If specified, the script will restore the paths without confirmation. - -#> - -param ( - [string[]]$PathsToRestore = @( - "src/*/eng/common/*", - "src/*global.json" - ), - [Alias("y")] - [switch]$NoPrompt = $false -) - -# Confirmation prompt -if (-not $NoPrompt) { - Write-Host "Will restore changes in the following paths:" - foreach ($path in $PathsToRestore) { - Write-Host " $path" - } - $choice = Read-Host "Do you want to proceed with restoring the paths? (Y/N)" - if (-not $($choice -ieq "Y")) { - exit 0 - } -} - -# Perform git restore for each path -foreach ($path in $PathsToRestore) { - git -C (Split-Path -Path $PSScriptRoot -Parent) restore $path -} diff --git a/src/SourceBuild/content/eng/restore-build-edited-files.sh b/src/SourceBuild/content/eng/restore-build-edited-files.sh deleted file mode 100755 index 651256af7..000000000 --- a/src/SourceBuild/content/eng/restore-build-edited-files.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash - -# Help message -show_help() { - echo "Script to perform git restore for a set of commonly edited paths when building the VMR." - echo "" - echo "Usage: $0 [-h] [-p ] [-n]" - echo "" - echo "Options:" - echo " -h, --help Show this help message and exit" - echo " -p, --path Specify the paths to be restored (default: src/*/eng/common/*, src/*global.json)" - echo " -y, --noprompt Skip the confirmation prompt" - echo "" - echo "Example:" - echo " $0 -p \"src/*/eng/common/*\" -p \"src/*global.json\"" - echo "" - exit 0 -} - -source="${BASH_SOURCE[0]}" -# resolve $source until the file is no longer a symlink -while [[ -h "$source" ]]; do - scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - source="$(readlink "$source")" - # if $source was a relative symlink, we need to resolve it relative to the path where the - # symlink file was located - [[ $source != /* ]] && source="$scriptroot/$source" -done -scriptroot="$( cd -P "$( dirname "$source" )" && pwd )" - -# Default paths to restore -DefaultPathsToRestore=( - "src/*/eng/common/*" - "src/*global.json" -) -PathsToRestore=() -NoPrompt=false - -# Parse command line arguments -while [[ $# -gt 0 ]]; do - case $1 in - -h|--help) - show_help - ;; - -p|--path) - shift - PathsToRestore+=("$1") - ;; - -y|--noprompt) - NoPrompt=true - ;; - *) - echo "Invalid option: $1" - show_help - ;; - esac - shift -done - -# Use default paths if no paths are passed -if [ ${#PathsToRestore[@]} -eq 0 ]; then - PathsToRestore=("${DefaultPathsToRestore[@]}") -fi - -# Confirmation prompt -if [ "$NoPrompt" = false ]; then - echo "Will restore changes in the following paths:" - for path in "${PathsToRestore[@]}"; do - echo " $path" - done - read -p "Do you want to proceed with restoring the paths? (Y/N)" choice - if [[ ! "$choice" =~ ^[Yy]$ ]]; then - exit 0 - fi -fi - -# Perform git restore for each path -for path in "${PathsToRestore[@]}"; do - git -C "$(dirname "$scriptroot")" restore "$path" -done diff --git a/src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryTool.cs b/src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryTool.cs deleted file mode 100644 index 67907a22f..000000000 --- a/src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryTool.cs +++ /dev/null @@ -1,123 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace BinaryToolKit; - -public class BinaryTool -{ - public async Task ExecuteAsync( - string targetDirectory, - string outputReportDirectory, - string? allowedBinariesFile, - Modes mode) - { - DateTime startTime = DateTime.Now; - - Log.LogInformation($"Starting binary tool at {startTime} in {mode} mode"); - - // Parse args - targetDirectory = GetAndValidateFullPath( - "TargetDirectory", - targetDirectory, - isDirectory: true, - createIfNotExist: false, - isRequired: true)!; - outputReportDirectory = GetAndValidateFullPath( - "OutputReportDirectory", - outputReportDirectory, - isDirectory: true, - createIfNotExist: true, - isRequired: true)!; - allowedBinariesFile = GetAndValidateFullPath( - "AllowedBinariesFile", - allowedBinariesFile, - isDirectory: false, - createIfNotExist: false, - isRequired: false); - - // Run the tooling - var detectedBinaries = await DetectBinaries.ExecuteAsync(targetDirectory, outputReportDirectory, allowedBinariesFile); - - if (mode == Modes.Validate) - { - ValidateBinaries(detectedBinaries, outputReportDirectory); - } - - else if (mode == Modes.Clean) - { - RemoveBinaries(detectedBinaries, targetDirectory); - } - - Log.LogInformation("Finished all binary tasks. Took " + (DateTime.Now - startTime).TotalSeconds + " seconds."); - - return Log.GetExitCode(); - } - - private string? GetAndValidateFullPath( - string parameterName, - string? path, - bool isDirectory, - bool createIfNotExist, - bool isRequired) - { - if (string.IsNullOrWhiteSpace(path)) - { - if (isRequired) - { - Log.LogError($"Required path for '{parameterName}' is empty or contains whitespace."); - Environment.Exit(1); - } - return null; - } - - string fullPath = Path.GetFullPath(path); - bool exists = isDirectory ? Directory.Exists(fullPath) : File.Exists(fullPath); - - if (!exists) - { - if (createIfNotExist && isDirectory) - { - Log.LogInformation($"Creating directory '{fullPath}' for '{parameterName}'."); - Directory.CreateDirectory(fullPath); - } - else - { - Log.LogError($"{(isDirectory ? "Directory" : "File")} '{fullPath}' for '{parameterName}' does not exist."); - Environment.Exit(1); - } - } - return fullPath; - } - - private static void ValidateBinaries(IEnumerable newBinaries, string outputReportDirectory) - { - if (newBinaries.Any()) - { - string newBinariesFile = Path.Combine(outputReportDirectory, "NewBinaries.txt"); - - Log.LogDebug("New binaries:"); - - File.WriteAllLines(newBinariesFile, newBinaries); - - foreach (var binary in newBinaries) - { - Log.LogDebug($" {binary}"); - } - - Log.LogError($"ERROR: {newBinaries.Count()} new binaries. Check '{newBinariesFile}' for details."); - } - } - - private static void RemoveBinaries(IEnumerable binariesToRemove, string targetDirectory) - { - Log.LogInformation($"Removing binaries from '{targetDirectory}'..."); - - foreach (var binary in binariesToRemove) - { - File.Delete(Path.Combine(targetDirectory, binary)); - Log.LogDebug($" {binary}"); - } - - Log.LogInformation($"Finished binary removal. Removed {binariesToRemove.Count()} binaries."); - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryToolKit.csproj b/src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryToolKit.csproj deleted file mode 100644 index fa8d420c1..000000000 --- a/src/SourceBuild/content/eng/tools/BinaryToolKit/BinaryToolKit.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - $(NetCurrent) - enable - enable - - Exe - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/BinaryToolKit/DetectBinaries.cs b/src/SourceBuild/content/eng/tools/BinaryToolKit/DetectBinaries.cs deleted file mode 100644 index 6e7296075..000000000 --- a/src/SourceBuild/content/eng/tools/BinaryToolKit/DetectBinaries.cs +++ /dev/null @@ -1,245 +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.Diagnostics; -using Microsoft.Extensions.FileSystemGlobbing; -using System.Text.RegularExpressions; - -namespace BinaryToolKit; - -public static class DetectBinaries -{ - private const string Utf16Marker = "UTF-16"; - private const int ChunkSize = 4096; - private static readonly Regex GitCleanRegex = new Regex(@"Would (remove|skip)( repository)? (.*)"); - - public static async Task> ExecuteAsync( - string targetDirectory, - string outputReportDirectory, - string? allowedBinariesFile) - { - Log.LogInformation($"Detecting binaries in '{targetDirectory}' not listed in '{allowedBinariesFile}'..."); - - var matcher = new Matcher(StringComparison.Ordinal); - matcher.AddInclude("**/*"); - matcher.AddExcludePatterns(await GetIgnoredPatternsAsync(targetDirectory)); - - IEnumerable matchingFiles = matcher.GetResultsInFullPath(targetDirectory); - - var tasks = matchingFiles - .Select(async file => - { - return await IsBinaryAsync(file) ? file.Substring(targetDirectory.Length + 1) : null; - }); - - var binaryFiles = (await Task.WhenAll(tasks)).OfType(); - - var unmatchedBinaryFiles = GetUnmatchedBinaries( - binaryFiles, - allowedBinariesFile, - outputReportDirectory, - targetDirectory).ToList(); - - Log.LogInformation($"Finished binary detection."); - - return unmatchedBinaryFiles; - } - - private static async Task> GetIgnoredPatternsAsync(string targetDirectory) - { - string gitDirectory = Path.Combine(targetDirectory, ".git"); - bool isGitRepo = Directory.Exists(gitDirectory); - - try - { - if (!isGitRepo) - { - // Configure a fake git repo to use so that we can run git clean -ndx - await ExecuteProcessAsync("git", $"-C {targetDirectory} init -q"); - } - - await ExecuteProcessAsync("git", $"-C {targetDirectory} config --global safe.directory {targetDirectory}"); - - string output = await ExecuteProcessAsync("git", $"-C {targetDirectory} clean -ndx"); - - List ignoredPaths = output.Split(Environment.NewLine) - .Select(line => GitCleanRegex.Match(line)) - .Where(match => match.Success) - .Select(match => match.Groups[3].Value) - .ToList(); - - if (isGitRepo) - { - ignoredPaths.Add(".git"); - } - - return ignoredPaths; - } - finally - { - // Ensure .git directory is deleted if it wasn't originally a git repo - if (!isGitRepo && Directory.Exists(gitDirectory)) - { - Directory.Delete(gitDirectory, true); - } - } - } - - private static async Task IsBinaryAsync(string filePath) - { - // Using the GNU diff heuristic to determine if a file is binary or not. - // For more details, refer to the GNU diff manual: - // https://www.gnu.org/software/diffutils/manual/html_node/Binary.html - - using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) - using (BinaryReader br = new BinaryReader(fs)) - { - byte[] buffer = new byte[ChunkSize]; - int bytesRead = br.Read(buffer, 0, ChunkSize); - for (int i = 0; i < bytesRead; i++) - { - if (buffer[i] == 0) - { - // Need to check that the file is not UTF-16 encoded - // because heuristic can return false positives - return await IsNotUTF16Async(filePath); - } - } - } - return false; - } - - private static async Task IsNotUTF16Async(string file) - { - if (Environment.OSVersion.Platform == PlatformID.Unix) - { - string output = await ExecuteProcessAsync("file", $"\"{file}\""); - output = output.Split(":")[1].Trim(); - - if (output.Contains(Utf16Marker)) - { - return false; - } - } - return true; - } - - private static async Task ExecuteProcessAsync(string executable, string arguments) - { - ProcessStartInfo psi = new () - { - FileName = executable, - Arguments = arguments, - CreateNoWindow = true, - RedirectStandardOutput = true, - RedirectStandardError = true - }; - - var proc = Process.Start(psi)!; - - string output = await proc.StandardOutput.ReadToEndAsync(); - string error = await proc.StandardError.ReadToEndAsync(); - - await proc.WaitForExitAsync(); - - if (!string.IsNullOrEmpty(error)) - { - Log.LogError(error); - } - - return output; - } - - private static IEnumerable GetUnmatchedBinaries( - IEnumerable searchFiles, - string? allowedBinariesFile, - string outputReportDirectory, - string targetDirectory) - { - HashSet unmatchedFiles = new HashSet(searchFiles); - - var filesToPatterns = new Dictionary>(); - ParseAllowedBinariesFile(allowedBinariesFile, ref filesToPatterns); - - foreach (var fileToPatterns in filesToPatterns) - { - var patterns = fileToPatterns.Value; - HashSet unusedPatterns = new HashSet(patterns); - - foreach (string pattern in patterns) - { - Matcher matcher = new Matcher(StringComparison.Ordinal); - matcher.AddInclude(pattern); - - var matches = matcher.Match(targetDirectory, searchFiles); - if (matches.HasMatches) - { - unusedPatterns.Remove(pattern); - unmatchedFiles.ExceptWith(matches.Files.Select(file => file.Path)); - } - } - - UpdateAllowedBinariesFile(fileToPatterns.Key, outputReportDirectory, unusedPatterns); - } - - return unmatchedFiles; - } - - private static void ParseAllowedBinariesFile(string? file, ref Dictionary> result) - { - if (!File.Exists(file)) - { - return; - } - - if (!result.ContainsKey(file)) - { - result[file] = new HashSet(); - } - - foreach (var line in File.ReadLines(file)) - { - var trimmedLine = line.Trim(); - if (string.IsNullOrWhiteSpace(trimmedLine) || trimmedLine.StartsWith("#")) - { - continue; - } - - if (trimmedLine.StartsWith("import:")) - { - var importFile = trimmedLine.Substring("import:".Length).Trim(); - if (!Path.IsPathFullyQualified(importFile)) - { - var currentDirectory = Path.GetDirectoryName(file)!; - importFile = Path.Combine(currentDirectory, importFile); - } - if (result.ContainsKey(importFile)) - { - Log.LogWarning($" Duplicate import {importFile}. Skipping."); - continue; - } - - ParseAllowedBinariesFile(importFile, ref result); - } - else - { - result[file].Add(trimmedLine.Split('#')[0].Trim()); - } - } - } - - private static void UpdateAllowedBinariesFile(string? file, string outputReportDirectory, HashSet unusedPatterns) - { - if(File.Exists(file) && unusedPatterns.Any()) - { - var lines = File.ReadAllLines(file); - var newLines = lines.Where(line => !unusedPatterns.Contains(line)).ToList(); - - string updatedFile = Path.Combine(outputReportDirectory, "Updated" + Path.GetFileName(file)); - - File.WriteAllLines(updatedFile, newLines); - - Log.LogInformation($" Updated allowed binaries file '{Path.GetFileName(file)}' written to '{updatedFile}'"); - } - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/BinaryToolKit/Directory.Build.props b/src/SourceBuild/content/eng/tools/BinaryToolKit/Directory.Build.props deleted file mode 100644 index 560e3a358..000000000 --- a/src/SourceBuild/content/eng/tools/BinaryToolKit/Directory.Build.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - true - - - - - diff --git a/src/SourceBuild/content/eng/tools/BinaryToolKit/Log.cs b/src/SourceBuild/content/eng/tools/BinaryToolKit/Log.cs deleted file mode 100644 index 10e0081dd..000000000 --- a/src/SourceBuild/content/eng/tools/BinaryToolKit/Log.cs +++ /dev/null @@ -1,68 +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 Microsoft.Extensions.Logging; - -namespace BinaryToolKit; - -public static class Log -{ - public static LogLevel Level = LogLevel.Information; - - private static bool WarningLogged = false; - - private static bool ErrorLogged = false; - - private static readonly Lazy _logger = new Lazy(ConfigureLogger); - - public static void LogDebug(string message) - { - _logger.Value.LogDebug(message); - } - - public static void LogInformation(string message) - { - _logger.Value.LogInformation(message); - } - - public static void LogWarning(string message) - { - _logger.Value.LogWarning(message); - WarningLogged = true; - } - - public static void LogError(string message) - { - _logger.Value.LogError(message); - ErrorLogged = true; - } - - private static ILogger ConfigureLogger() - { - using ILoggerFactory loggerFactory = - LoggerFactory.Create(builder => - builder.AddSimpleConsole(options => - { - options.SingleLine = true; - options.TimestampFormat = "HH:mm:ss "; - options.UseUtcTimestamp = true; - }) - .SetMinimumLevel(Level)); - return loggerFactory.CreateLogger("BinaryTool"); - } - - public static int GetExitCode() - { - if (ErrorLogged) - { - return 1; - } - - if (WarningLogged) - { - return 2; - } - - return 0; - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/BinaryToolKit/Modes.cs b/src/SourceBuild/content/eng/tools/BinaryToolKit/Modes.cs deleted file mode 100644 index 98eae85c8..000000000 --- a/src/SourceBuild/content/eng/tools/BinaryToolKit/Modes.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace BinaryToolKit; - -public enum Modes -{ - Validate, - Clean -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/BinaryToolKit/Program.cs b/src/SourceBuild/content/eng/tools/BinaryToolKit/Program.cs deleted file mode 100644 index 5feb90aad..000000000 --- a/src/SourceBuild/content/eng/tools/BinaryToolKit/Program.cs +++ /dev/null @@ -1,86 +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 System.CommandLine; -using Microsoft.Extensions.Logging; - -namespace BinaryToolKit; - -public class Program -{ - public static readonly CliArgument TargetDirectory = new("target-directory") - { - Description = "The directory to run the binary tooling on.", - Arity = ArgumentArity.ExactlyOne - }; - - public static readonly CliOption OutputReportDirectory = new("--output-directory", "-o") - { - Description = "The directory to output the report to.", - Arity = ArgumentArity.ZeroOrOne, - DefaultValueFactory = _ => Path.Combine(Directory.GetCurrentDirectory(), "binary-report") - }; - - public static readonly CliOption Level = new("--log-level", "-l") - { - Description = "The log level to run the tool in.", - Arity = ArgumentArity.ZeroOrOne, - DefaultValueFactory = _ => LogLevel.Information, - Recursive = true - }; - - public static readonly CliOption AllowedBinariesFile = new("--allowed-binaries-file", "-ab") - { - Description = "The file containing the list of allowed binaries that are ignored for cleaning or validating.\n", - Arity = ArgumentArity.ZeroOrOne - }; - - public static int ExitCode = 0; - - public static async Task Main(string[] args) - { - var cleanCommand = CreateCommand("clean", "Clean the binaries in the target directory."); - var validateCommand = CreateCommand("validate", "Detect new binaries in the target directory."); - - var rootCommand = new CliRootCommand("Tool for detecting, validating, and cleaning binaries in the target directory.") - { - Level, - cleanCommand, - validateCommand - }; - - SetCommandAction(cleanCommand, Modes.Clean); - SetCommandAction(validateCommand, Modes.Validate); - - await rootCommand.Parse(args).InvokeAsync(); - - return ExitCode; - } - - private static CliCommand CreateCommand(string name, string description) - { - return new CliCommand(name, description) - { - TargetDirectory, - OutputReportDirectory, - AllowedBinariesFile - }; - } - - private static void SetCommandAction(CliCommand command, Modes mode) - { - command.SetAction(async (result, CancellationToken) => - { - Log.Level = result.GetValue(Level); - - var binaryTool = new BinaryTool(); - - ExitCode = await binaryTool.ExecuteAsync( - result.GetValue(TargetDirectory)!, - result.GetValue(OutputReportDirectory)!, - result.GetValue(AllowedBinariesFile), - mode); - }); - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/Directory.Build.props b/src/SourceBuild/content/eng/tools/Directory.Build.props deleted file mode 100644 index 7c1442273..000000000 --- a/src/SourceBuild/content/eng/tools/Directory.Build.props +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - $(ReferencePackagesDir);$(PrebuiltPackagesPath);$(PrebuiltSourceBuiltPackagesPath) - - - - - - - - diff --git a/src/SourceBuild/content/eng/tools/EmptySdk/Sdk/Sdk.props b/src/SourceBuild/content/eng/tools/EmptySdk/Sdk/Sdk.props deleted file mode 100644 index 25bc36ee8..000000000 --- a/src/SourceBuild/content/eng/tools/EmptySdk/Sdk/Sdk.props +++ /dev/null @@ -1,14 +0,0 @@ - - - - $([MSBuild]::NormalizeDirectory('$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'global.json'))')) - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'eng')) - - - - - false - - - - diff --git a/src/SourceBuild/content/eng/tools/EmptySdk/Sdk/Sdk.targets b/src/SourceBuild/content/eng/tools/EmptySdk/Sdk/Sdk.targets deleted file mode 100644 index 8fda6a64c..000000000 --- a/src/SourceBuild/content/eng/tools/EmptySdk/Sdk/Sdk.targets +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogFileEntry.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogFileEntry.cs deleted file mode 100644 index 268d50fc5..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogFileEntry.cs +++ /dev/null @@ -1,26 +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.Collections.Generic; -using System.Text; -using System.Xml.Linq; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - internal class CatalogFileEntry - { - const string ElementName = "File"; - - internal string Path { get; set; } - internal byte[] OriginalHash { get; set; } - internal byte[] PoisonedHash { get; set; } - - public XElement ToXml() => new XElement(ElementName, - new XAttribute(nameof(Path), Path), - new XAttribute(nameof(OriginalHash), OriginalHash.ToHexString()), - PoisonedHash == null ? null : new XAttribute(nameof(PoisonedHash), PoisonedHash.ToHexString()) - ); - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogPackageEntry.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogPackageEntry.cs deleted file mode 100644 index e52e1aaa2..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CatalogPackageEntry.cs +++ /dev/null @@ -1,38 +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.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Linq; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - internal class CatalogPackageEntry - { - const string ElementName = "Package"; - - internal string Path { get; set; } - internal string Id { get; set; } - internal string Version { get; set; } - internal byte[] OriginalHash { get; set; } - internal byte[] PoisonedHash { get; set; } - internal List Files { get; } - - public CatalogPackageEntry() - { - this.Files = new List(); - } - - public XElement ToXml() => new XElement(ElementName, - new XAttribute(nameof(Path), Path), - new XAttribute(nameof(Id), Id), - new XAttribute(nameof(Version), Version), - new XAttribute(nameof(OriginalHash), OriginalHash.ToHexString()), - PoisonedHash == null ? null : new XAttribute(nameof(PoisonedHash), PoisonedHash.ToHexString()), - Files.Select(f => f.ToXml()) - ); - } -} 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 deleted file mode 100644 index b60804502..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/CheckForPoison.cs +++ /dev/null @@ -1,479 +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; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -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; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - public class CheckForPoison : Task - { - /// - /// The files to check for poison and/or hash matches. Zips and - /// nupkgs will be extracted and checked recursively. - /// %(Identity): Path to the initial set of files. - /// Add SourceBuildReferencePackage metadata and set to true to - /// indicate that the file comes from SBRP. - /// - [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. - /// - public string PoisonReportOutputFilePath { get; set; } - - /// - /// The path of a previously-generated file hash catalog, if - /// hash checked is desired. If not, only assembly attributes - /// and package marker file checked will be done. - /// - public string HashCatalogFilePath { get; set; } - - /// - /// The marker file name to check for in poisoned nupkg files. - /// - public string MarkerFileName { get; set; } - - /// - /// If true, fails the build if any poisoned files are found. - /// - public bool FailOnPoisonFound { get; set; } - - /// - /// Use this directory instead of the system temp directory for staging. - /// Intended for Linux systems with limited /tmp space, like Azure VMs. - /// - public string OverrideTempPath { get; set; } - - private static readonly string[] ZipFileExtensions = - { - ".zip", - ".nupkg", - }; - - private static readonly string[] TarFileExtensions = - { - ".tar", - }; - - private static readonly string[] TarGzFileExtensions = - { - ".tgz", - ".tar.gz", - }; - - private static readonly string[] FileNamesToSkip = - { - "_._", - "-.-", - ".bowerrc", - ".gitignore", - ".gitkeep", - ".rels", - "LICENSE", - "prefercliruntime", - "RunCsc", - "RunVbc", - }; - - private static readonly string[] FileExtensionsToSkip = - { - ".config", - ".cs", - ".cshtml", - ".csproj", - ".css", - ".db", - ".editorconfig", - ".eot", - ".fs", - ".fsproj", - ".h", - ".html", - ".ico", - ".js", - ".json", - ".map", - ".md", - ".nuspec", - ".otf", - ".png", - ".props", - ".proto", - ".proj", - ".psmdcp", - ".pubxml", - ".razor", - ".rtf", - ".scss", - ".sln", - ".svg", - ".targets", - ".transform", - ".ts", - ".ttf", - ".txt", - ".vb", - ".vbproj", - ".win32manifest", - ".woff", - ".woff2", - ".xaml", - ".xml", - }; - - private const string PoisonMarker = "POISONED"; - - private const string SbrpAttributeType = "System.Reflection.AssemblyMetadataAttribute"; - - private const string SbrpMetadataName = "IsSourceBuildReferencePackage"; - - private record CandidateFileEntry(string ExtractedPath, string DisplayPath, bool IsSourceBuildReferencePackage); - - public override bool Execute() - { - IEnumerable poisons = GetPoisonedFiles(FilesToCheck, HashCatalogFilePath, MarkerFileName); - - // if we should write out the poison report, do that - if (!string.IsNullOrWhiteSpace(PoisonReportOutputFilePath)) - { - File.WriteAllText(PoisonReportOutputFilePath, (new XElement("PrebuiltLeakReport", poisons.OrderBy(p => p.Path).Select(p => p.ToXml()))).ToString()); - } - - if (FailOnPoisonFound && poisons.Count() > 0) - { - Log.LogError($"Forced build error: {poisons.Count()} marked files leaked to output. See complete report '{PoisonReportOutputFilePath}' for details."); - return false; - } - else if (poisons.Count() > 0) - { - Log.LogWarning($"{poisons.Count()} marked files leaked to output. See complete report '{PoisonReportOutputFilePath}' for details."); - } - - return !Log.HasLoggedErrors; - } - - /// - /// Internal helper to allow other tasks to check for poisoned files. - /// - /// Initial queue of candidate files (will be cleared when done) - /// File path to the file hash catalog - /// Marker file name to check for in poisoned nupkgs - /// List of poisoned packages and files found and reasons for each - internal IEnumerable GetPoisonedFiles(IEnumerable initialCandidates, string catalogedPackagesFilePath, string markerFileName) - { - IEnumerable catalogedPackages = ReadCatalog(catalogedPackagesFilePath); - var poisons = new List(); - var candidateQueue = new Queue(initialCandidates.Select(candidate => - new CandidateFileEntry(candidate.ItemSpec, - Utility.MakeRelativePath(candidate.ItemSpec, ProjectDirPath), - candidate.GetMetadata(SbrpMetadataName) == "true"))); - - if (!string.IsNullOrWhiteSpace(OverrideTempPath)) - { - Directory.CreateDirectory(OverrideTempPath); - } - var tempDirName = Path.GetRandomFileName(); - var tempDir = Directory.CreateDirectory(Path.Combine(OverrideTempPath ?? Path.GetTempPath(), tempDirName)); - - while (candidateQueue.Any()) - { - 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 => candidate.ExtractedPath.ToLowerInvariant().EndsWith(e))) - { - Log.LogMessage($"Zip or NuPkg file to check: {candidate.ExtractedPath}"); - - var tempCheckingDir = Path.Combine(tempDir.FullName, Path.GetFileNameWithoutExtension(candidate.ExtractedPath)); - PoisonedFileEntry result = ExtractAndCheckZipFileOnly(catalogedPackages, candidate, markerFileName, tempCheckingDir, candidateQueue); - if (result != null) - { - poisons.Add(result); - } - } - else - { - PoisonedFileEntry result = CheckSingleFile(catalogedPackages, candidate); - if (result != null) - { - poisons.Add(result); - } - } - } - - tempDir.Delete(true); - - return poisons; - } - - 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)) - { - return null; - } - - var poisonEntry = new PoisonedFileEntry(); - poisonEntry.Path = candidate.DisplayPath; - - // There seems to be some weird issues with using file streams both for hashing and assembly loading. - // Copy everything into a memory stream to avoid these problems. - var memStream = new MemoryStream(); - using (var stream = File.OpenRead(fileToCheck)) - { - stream.CopyTo(memStream); - } - - memStream.Seek(0, SeekOrigin.Begin); - using (var sha = SHA256.Create()) - { - poisonEntry.Hash = sha.ComputeHash(memStream); - } - - foreach (var p in catalogedPackages) - { - // This hash can match either the original hash (we couldn't poison the file, or redownloaded it) or - // the poisoned hash (the obvious failure case of a poisoned file leaked). - foreach (var matchingCatalogedFile in p.Files.Where(f => f.OriginalHash.SequenceEqual(poisonEntry.Hash) || (f.PoisonedHash?.SequenceEqual(poisonEntry.Hash) ?? false))) - { - poisonEntry.Type |= PoisonType.Hash; - var match = new PoisonMatch - { - File = matchingCatalogedFile.Path, - Package = p.Path, - PackageId = p.Id, - PackageVersion = p.Version, - }; - poisonEntry.Matches.Add(match); - } - } - - try - { - AssemblyName asm = AssemblyName.GetAssemblyName(fileToCheck); - if (!candidate.IsSourceBuildReferencePackage && IsAssemblyFromSbrp(fileToCheck)) - { - poisonEntry.Type |= PoisonType.SourceBuildReferenceAssembly; - } - else if (IsAssemblyPoisoned(fileToCheck)) - { - poisonEntry.Type |= PoisonType.AssemblyAttribute; - } - } - catch - { - // this is fine, it's just not an assembly. - } - - return poisonEntry.Type != PoisonType.None ? poisonEntry : null; - } - - private static bool IsAssemblyPoisoned(string path) - { - byte[] buffer = File.ReadAllBytes(path); - byte[] marker = Encoding.UTF8.GetBytes(PoisonMarker); - - // Start at end of file and go backwards - // Marker is likely at the end and this saves time when - // we encounter a poisoned file. - for (int j = buffer.Length - marker.Length; j >= 0; j--) - { - int i; - for (i = 0; i < marker.Length && buffer[j + i] == marker[i]; i++) ; - if (i == marker.Length) - { - return true; - } - } - - return false; - } - - 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) - { - var mref = reader.GetMemberReference((MemberReferenceHandle)attr.Constructor); - if (mref.Parent.Kind == HandleKind.TypeReference) - { - var tref = reader.GetTypeReference((TypeReferenceHandle)mref.Parent); - attributeType = $"{reader.GetString(tref.Namespace)}.{reader.GetString(tref.Name)}"; - } - else if (mref.Parent.Kind == HandleKind.TypeDefinition) - { - var tdef = reader.GetTypeDefinition((TypeDefinitionHandle)mref.Parent); - attributeType = $"{reader.GetString(tdef.Namespace)}.{reader.GetString(tdef.Name)}"; - } - } - else if (attr.Constructor.Kind == HandleKind.MethodDefinition) - { - var mdef = reader.GetMethodDefinition((MethodDefinitionHandle)attr.Constructor); - var tdef = reader.GetTypeDefinition(mdef.GetDeclaringType()); - attributeType = $"{reader.GetString(tdef.Namespace)}.{reader.GetString(tdef.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()) - using (var stream = File.OpenRead(zipToCheck)) - { - poisonEntry.Hash = sha.ComputeHash(stream); - } - - // first check for a matching poisoned or non-poisoned hash match: - // - non-poisoned is a potential error where the package was redownloaded. - // - poisoned is a use of a local package we were not expecting. - foreach (var matchingCatalogedPackage in catalogedPackages.Where(c => c.OriginalHash.SequenceEqual(poisonEntry.Hash) || (c.PoisonedHash?.SequenceEqual(poisonEntry.Hash) ?? false))) - { - poisonEntry.Type |= PoisonType.Hash; - var match = new PoisonMatch - { - Package = matchingCatalogedPackage.Path, - PackageId = matchingCatalogedPackage.Id, - PackageVersion = matchingCatalogedPackage.Version, - }; - poisonEntry.Matches.Add(match); - } - - // now extract and look for the marker file - if (ZipFileExtensions.Any(e => zipToCheck.ToLowerInvariant().EndsWith(e))) - { - ZipFile.ExtractToDirectory(zipToCheck, tempDir, true); - } - else if (TarFileExtensions.Any(e => zipToCheck.ToLowerInvariant().EndsWith(e))) - { - Directory.CreateDirectory(tempDir); - var psi = new ProcessStartInfo("tar", $"xf {zipToCheck} -C {tempDir}"); - Process.Start(psi).WaitForExit(); - } - else if (TarGzFileExtensions.Any(e => zipToCheck.ToLowerInvariant().EndsWith(e))) - { - Directory.CreateDirectory(tempDir); - var psi = new ProcessStartInfo("tar", $"xzf {zipToCheck} -C {tempDir}"); - Process.Start(psi).WaitForExit(); - } - else - { - throw new ArgumentOutOfRangeException($"Don't know how to decompress {zipToCheck}"); - } - - if (!string.IsNullOrWhiteSpace(markerFileName) && File.Exists(Path.Combine(tempDir, markerFileName))) - { - poisonEntry.Type |= PoisonType.NupkgFile; - } - - foreach (var child in Directory.EnumerateFiles(tempDir, "*", SearchOption.AllDirectories)) - { - string displayPath = $"{candidate.DisplayPath}/{child.Replace(tempDir, string.Empty).TrimStart(Path.DirectorySeparatorChar)}"; - - futureFilesToCheck.Enqueue(new CandidateFileEntry(child, displayPath, candidate.IsSourceBuildReferencePackage)); - } - - return poisonEntry.Type != PoisonType.None ? poisonEntry : null; - } - - private static IEnumerable ReadCatalog(string hashCatalogFilePath) - { - // catalog is optional, we can also just check assembly properties or nupkg marker files - if (string.IsNullOrWhiteSpace(hashCatalogFilePath)) - { - return Enumerable.Empty(); - } - - var doc = new XmlDocument(); - using (var stream = File.OpenRead(hashCatalogFilePath)) - { - doc.Load(stream); - } - var packages = new List(); - var catalog = doc.FirstChild; - foreach (XmlElement p in catalog.ChildNodes) - { - var package = new CatalogPackageEntry - { - Id = p.Attributes["Id"].Value, - Version = p.Attributes["Version"].Value, - OriginalHash = p.Attributes["OriginalHash"].Value.ToBytes(), - PoisonedHash = p.Attributes["PoisonedHash"]?.Value?.ToBytes(), - Path = p.Attributes["Path"].Value, - }; - packages.Add(package); - foreach (XmlNode f in p.ChildNodes) - { - var fEntry = new CatalogFileEntry - { - OriginalHash = f.Attributes["OriginalHash"].Value.ToBytes(), - PoisonedHash = f.Attributes["PoisonedHash"]?.Value?.ToBytes(), - Path = f.Attributes["Path"].Value, - }; - package.Files.Add(fEntry); - } - } - return packages; - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/DummyAttributeTypeProvider.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/DummyAttributeTypeProvider.cs deleted file mode 100644 index 158f9cddf..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/DummyAttributeTypeProvider.cs +++ /dev/null @@ -1,37 +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.Reflection; -using System.Reflection.Metadata; -using System.Reflection.Metadata.Ecma335; - -#nullable enable - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - - // An empty ICustomAttributeTypeProvider implementation is necessary to read metadata attribute values. - internal class DummyAttributeTypeProvider : ICustomAttributeTypeProvider - { - 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 deleted file mode 100644 index 3f98cedae..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/MarkAndCatalogPackages.cs +++ /dev/null @@ -1,181 +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 Microsoft.DotNet.UnifiedBuild.Tasks; -using System; -using System.Collections.Generic; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Security.Cryptography; -using System.Text; -using System.Xml.Linq; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - public class MarkAndCatalogPackages : Task - { - private const string CatalogElementName = "HashCatalog"; - private const string PoisonMarker = "POISONED by DotNetSourceBuild - Should not ship"; - - private readonly Type[] AssemblyPropertiesToReplace = new Type[] { - typeof(AssemblyProductAttribute), - typeof(AssemblyInformationalVersionAttribute), - typeof(AssemblyDescriptionAttribute), - typeof(AssemblyTitleAttribute) - }; - - /// - /// The name of the XML file to write the hash catalog out to, - /// for later checking build output against. This is optional - - /// if not used, assemblies will still be poisoned in their attributes. - /// - public string CatalogOutputFilePath { get; set; } - - /// - /// The name of the marker file to drop in the nupkgs. This can vary - /// with the packages, so you can use ".prebuilt" for one set of packages - /// and ".source-built" for another if you would like to tell the difference - /// between two sets of poisoned packages. - /// - public string MarkerFileName { get; set; } - - /// - /// The packages to poison and/or catalog: - /// %(Identity): Path to the nupkg. - /// - [Required] - public ITaskItem[] PackagesToMark { get; set; } - - /// - /// Use this directory instead of the system temp directory for staging. - /// Intended for Linux systems with limited /tmp space, like Azure VMs. - /// - public string OverrideTempPath { get; set; } - - public override bool Execute() - { - var tempDirName = Path.GetRandomFileName(); - if (!string.IsNullOrWhiteSpace(OverrideTempPath)) - { - Directory.CreateDirectory(OverrideTempPath); - } - var tempDir = Directory.CreateDirectory(Path.Combine(OverrideTempPath ?? Path.GetTempPath(), tempDirName)); - - var packageEntries = new List(); - - using (var sha = SHA256.Create()) - { - foreach (var p in PackagesToMark) - { - var packageEntry = new CatalogPackageEntry(); - packageEntries.Add(packageEntry); - packageEntry.Path = p.ItemSpec; - using (var stream = File.OpenRead(p.ItemSpec)) - { - packageEntry.OriginalHash = sha.ComputeHash(stream); - } - var packageIdentity = ReadNuGetPackageInfos.ReadIdentity(p.ItemSpec); - packageEntry.Id = packageIdentity.Id; - packageEntry.Version = packageIdentity.Version.OriginalVersion; - var packageTempPath = Path.Combine(tempDir.FullName, Path.GetFileName(p.ItemSpec)); - ZipFile.ExtractToDirectory(p.ItemSpec, packageTempPath, true); - - foreach (string file in Directory.EnumerateFiles(packageTempPath, "*", SearchOption.AllDirectories)) - { - // remove signatures so we don't later fail validation - if (Path.GetFileName(file) == ".signature.p7s") - { - File.Delete(file); - continue; - } - - var catalogFileEntry = new CatalogFileEntry(); - packageEntry.Files.Add(catalogFileEntry); - catalogFileEntry.Path = Utility.MakeRelativePath(file, packageTempPath); - - // There seem to be some weird issues with using a file stream both for hashing and - // assembly loading, even closing it in between. Use a MemoryStream to avoid issues. - var memStream = new MemoryStream(); - using (var stream = File.OpenRead(file)) - { - stream.CopyTo(memStream); - } - - // First get the original hash of the file - memStream.Seek(0, SeekOrigin.Begin); - catalogFileEntry.OriginalHash = sha.ComputeHash(memStream); - - // Add poison marker to assemblies - try - { - AssemblyName asm = AssemblyName.GetAssemblyName(file); - Poison(file); - - // then get the hash of the now-poisoned file - using (var stream = File.OpenRead(file)) - { - catalogFileEntry.PoisonedHash = sha.ComputeHash(stream); - } - } - catch - { - // this is okay, it's not an assembly - } - - } - - if (!string.IsNullOrWhiteSpace(MarkerFileName)) - { - var markerFilePath = Path.Combine(packageTempPath, MarkerFileName); - - if (File.Exists(markerFilePath)) - { - throw new ArgumentException($"Marker file name '{MarkerFileName}' is not sufficiently unique! Exists in '{p.ItemSpec}'.", nameof(MarkerFileName)); - } - - // mostly we just need to write something unique to this so it's not hashed as a matching file when we check it later. - // but it's also convenient to have the package catalog handy. - File.WriteAllText(markerFilePath, packageEntry.ToXml().ToString()); - } - - // create a temp file for this so if something goes wrong in the process we're not in too weird of a state - var poisonedPackageName = Path.GetFileName(p.ItemSpec) + ".poisoned"; - var poisonedPackagePath = Path.Combine(tempDir.FullName, poisonedPackageName); - ZipFile.CreateFromDirectory(packageTempPath, poisonedPackagePath); - - // Get the hash of the poisoned package (with poisoned marker file and poisoned assemblies inside) - using (var stream = File.OpenRead(poisonedPackagePath)) - { - packageEntry.PoisonedHash = sha.ComputeHash(stream); - } - File.Delete(p.ItemSpec); - File.Move(poisonedPackagePath, p.ItemSpec); - Directory.Delete(packageTempPath, true); - } - } - - // if we should write out the catalog, do that - if (!string.IsNullOrWhiteSpace(CatalogOutputFilePath)) - { - var outputFileDir = Path.GetDirectoryName(CatalogOutputFilePath); - if (!Directory.Exists(outputFileDir)) - { - Directory.CreateDirectory(outputFileDir); - } - File.WriteAllText(CatalogOutputFilePath, (new XElement("HashCatalog", - packageEntries.Select(p => p.ToXml()))).ToString()); - } - - tempDir.Delete(true); - return !Log.HasLoggedErrors; - } - - private void Poison(string path) => File.AppendAllText(path, PoisonMarker); - } -} 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 deleted file mode 100644 index 5eb9d5fcd..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - $(NetCurrent) - true - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/NuGet.Config b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/NuGet.Config deleted file mode 100644 index dc7070857..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonMatch.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonMatch.cs deleted file mode 100644 index 0191b3a26..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonMatch.cs +++ /dev/null @@ -1,28 +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.Collections.Generic; -using System.Text; -using System.Xml.Linq; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - internal class PoisonMatch - { - const string ElementName = "Match"; - - internal string Package { get; set; } - internal string File { get; set; } - internal string PackageId { get; set; } - internal string PackageVersion { get; set; } - - public XElement ToXml() => new XElement(ElementName, - Package == null ? null : new XAttribute(nameof(Package), Package), - PackageId == null ? null : new XAttribute(nameof(PackageId), PackageId), - PackageVersion == null ? null : new XAttribute(nameof(PackageVersion), PackageVersion), - File == null ? null: new XAttribute(nameof(File), File) - ); - } -} 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 deleted file mode 100644 index 4ac37e1cb..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonType.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - [Flags] - internal enum PoisonType - { - None = 0, - Hash = 1, - AssemblyAttribute = 2, - NupkgFile = 4, - SourceBuildReferenceAssembly = 8, - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonedFileEntry.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonedFileEntry.cs deleted file mode 100644 index 1d98fd8cb..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/PoisonedFileEntry.cs +++ /dev/null @@ -1,36 +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.Collections.Generic; -using System.Linq; -using System.Text; -using System.Xml.Linq; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - internal class PoisonedFileEntry - { - const string ElementName = "File"; - - internal byte[] Hash { get; set; } - internal string Path { get; set; } - internal PoisonType Type { get; set; } - internal List Matches { get; } - - internal PoisonedFileEntry() - { - this.Matches = new List(); - } - - public XElement ToXml() => this.ToXml(ElementName); - - protected XElement ToXml(string myElementName) => new XElement(myElementName, - new XAttribute(nameof(Path), Path), - new XElement(nameof(Hash), Hash.ToHexString()), - new XElement(nameof(Type), Type.ToString()), - Matches.Select(m => m.ToXml()) - ); - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Utility.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Utility.cs deleted file mode 100644 index 48df5d261..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/Utility.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection -{ - internal static class Utility - { - internal static string ToHexString(this byte[] bytes) - { - var sb = new StringBuilder(); - foreach (var b in bytes) - { - sb.Append(b.ToString("x2")); - } - return sb.ToString(); - } - - internal static byte[] ToBytes(this string hex) - { - var bytes = new List(); - for (var i = 0; i < hex.Length; i += 2) - { - bytes.Add(Convert.ToByte(hex.Substring(i, 2), 16)); - } - return bytes.ToArray(); - } - - internal static string MakeRelativePath(string filePath, string relativeTo) - { - // Uri.MakeRelativeUri requires the last slash - if (!relativeTo.EndsWith("/") && !relativeTo.EndsWith("\\")) - { - relativeTo += Path.DirectorySeparatorChar; - } - - var uri = new Uri(filePath); - var relativeToUri = new Uri(relativeTo); - return relativeToUri.MakeRelativeUri(uri).ToString(); - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Directory.Build.props b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Directory.Build.props deleted file mode 100644 index 6e73e409c..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Directory.Build.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - true - - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj deleted file mode 100644 index 7e0cd3a59..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - netstandard2.0 - - - - - - - - - - $([MSBuild]::NormalizePath('$(VSMSBuildSdkResolversDir)', '$(MSBuildProjectName)', '$(MSBuildProjectName).xml')) - - - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/UnifiedBuildSdkResolver.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/UnifiedBuildSdkResolver.cs deleted file mode 100644 index 21f38937a..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.MSBuildSdkResolver/UnifiedBuildSdkResolver.cs +++ /dev/null @@ -1,200 +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; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - /// - /// Extends the SDK to handle "SOURCE_BUILT_SDK_*" override environment variables. Each override - /// should provide a set of 3 environment variables: - /// - /// SOURCE_BUILT_SDK_ID_EXAMPLE=Your.Sdk.Example - /// ID of the SDK nuget package to override. - /// - /// SOURCE_BUILT_SDK_DIR_EXAMPLE=/git/repo/bin/extracted/Your.Sdk.Example/ - /// Directory where the sdk/Sdk.props and/or sdk/Sdk.targets files are located. This should be - /// the directory where the override SDK package is extracted. - /// - /// SOURCE_BUILT_SDK_VERSION_EXAMPLE=1.0.0-source-built - /// (Optional) Version of the SDK package to use. This is informational. - /// - public class UnifiedBuildSdkResolver : SdkResolver - { - public override string Name => nameof(UnifiedBuildSdkResolver); - - public override int Priority => 0; - - public override SdkResult Resolve( - SdkReference sdkReference, - SdkResolverContext resolverContext, - SdkResultFactory factory) - { - string sdkDescription = sdkReference.Name; - if (!string.IsNullOrEmpty(sdkReference.Version)) - { - sdkDescription += $" {sdkReference.Version}"; - } - if (!string.IsNullOrEmpty(sdkReference.MinimumVersion)) - { - sdkDescription += $" (>= {sdkReference.MinimumVersion})"; - } - - SourceBuiltSdkOverride[] overrides = Environment.GetEnvironmentVariables() - .Cast() - .Select(SourceBuiltSdkOverride.Create) - .Where(o => o != null) - .ToArray(); - - void LogMessage(string message) - { - resolverContext.Logger.LogMessage($"[{Name}] {message}", MessageImportance.Low); - } - - if (overrides.Any()) - { - string separator = overrides.Length == 1 ? " " : Environment.NewLine; - - LogMessage( - $"Looking for SDK {sdkDescription}. Detected config(s) in env:{separator}" + - string.Join(Environment.NewLine, overrides.Select(o => o.ToString()))); - } - - SourceBuiltSdkOverride[] matches = overrides - .Where(o => sdkReference.Name.Equals(o?.Id, StringComparison.OrdinalIgnoreCase)) - .ToArray(); - - var unresolvableReasons = new List(); - - if (matches.Length != 1) - { - unresolvableReasons.Add( - $"{matches.Length} overrides found for '{sdkReference.Name}'"); - } - else - { - SourceBuiltSdkOverride match = matches[0]; - string[] matchProblems = match.GetValidationErrors().ToArray(); - - if (matchProblems.Any()) - { - unresolvableReasons.Add($"Found match '{match.Group}' with problems:"); - unresolvableReasons.AddRange(matchProblems); - } - else - { - LogMessage($"Overriding {sdkDescription} with '{match.Group}'"); - - return factory.IndicateSuccess(match.SdkDir, match.Version); - } - } - - return factory.IndicateFailure(unresolvableReasons.Select(r => $"[{Name}] {r}")); - } - - /// - /// Takes a directory path (not ending in a separator) and determines if it is the "sdk" - /// directory inside a SDK package with a case-insensitive comparison. - /// - private static bool IsSdkDirectory(string path) - { - return Path.GetFileName(path).Equals("sdk", StringComparison.OrdinalIgnoreCase); - } - - private class SourceBuiltSdkOverride - { - private const string EnvPrefix = "SOURCE_BUILT_SDK_"; - private const string EnvId = EnvPrefix + "ID_"; - private const string EnvVersion = EnvPrefix + "VERSION_"; - private const string EnvDir = EnvPrefix + "DIR_"; - - public static SourceBuiltSdkOverride Create(DictionaryEntry entry) - { - if (entry.Key is string key && key.StartsWith(EnvId)) - { - // E.g. "ARCADE" from "SOURCE_BUILD_SDK_ID_ARCADE=Microsoft.DotNet.Arcade.Sdk". - string group = key.Substring(EnvId.Length); - - if (string.IsNullOrEmpty(group)) - { - return null; - } - - string id = entry.Value as string; - string version = Environment.GetEnvironmentVariable(EnvVersion + group); - string dir = Environment.GetEnvironmentVariable(EnvDir + group); - - if (string.IsNullOrEmpty(version)) - { - version = "1.0.0-source-built"; - } - - string sdkDir = null; - if (!string.IsNullOrEmpty(dir)) - { - sdkDir = Directory.EnumerateDirectories(dir).FirstOrDefault(IsSdkDirectory); - } - - return new SourceBuiltSdkOverride - { - Group = group, - Id = id, - Version = version, - Dir = dir, - SdkDir = sdkDir, - }; - } - return null; - } - - /// - /// Name of the environment variable group, used to associate the multiple env vars. - /// - public string Group { get; set; } - - /// - /// ID of the SDK package. - /// - public string Id { get; set; } - - /// - /// Version of the source-built SDK package to use instead. - /// - public string Version { get; set; } - - /// - /// Directory where the source-built SDK files are found, in extracted form. - /// - public string Dir { get; set; } - - /// - /// Directory where the Sdk.props/Sdk.targets files are found, inside Dir. - /// - public string SdkDir { get; set; } - - public override string ToString() => $"'{Group}' for '{Id}/{Version}' at '{Dir}'"; - - public IEnumerable GetValidationErrors() - { - if (string.IsNullOrEmpty(Id)) - { - yield return $"'{EnvId}{Group}' not specified."; - } - if (string.IsNullOrEmpty(Dir)) - { - yield return $"'{EnvDir}{Group}' not specified."; - } - else if (string.IsNullOrEmpty(SdkDir)) - { - yield return $"Didn't find any 'sdk' directory in SDK package dir '{Dir}'"; - } - } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/AddSourceToNuGetConfig.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/AddSourceToNuGetConfig.cs deleted file mode 100644 index 3b62bbe5f..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/AddSourceToNuGetConfig.cs +++ /dev/null @@ -1,65 +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.Linq; -using System.Xml; -using System.Xml.Linq; -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - /* - * This task adds a source to a well-formed NuGet.Config file. If a source with `SourceName` is already present, then - * the path of the source is changed. Otherwise, the source is added as the first source in the list, after any clear - * elements (if present). - */ - public class AddSourceToNuGetConfig : Task - { - [Required] - public string NuGetConfigFile { get; set; } - - [Required] - public string SourceName { get; set; } - - [Required] - public string SourcePath { get; set; } - - public override bool Execute() - { - string xml = File.ReadAllText(NuGetConfigFile); - string newLineChars = FileUtilities.DetectNewLineChars(xml); - XDocument d = XDocument.Parse(xml); - XElement packageSourcesElement = d.Root.Descendants().First(e => e.Name == "packageSources"); - XElement toAdd = new XElement("add", new XAttribute("key", SourceName), new XAttribute("value", SourcePath)); - XElement clearTag = new XElement("clear"); - - XElement exisitingSourceBuildElement = packageSourcesElement.Descendants().FirstOrDefault(e => e.Name == "add" && e.Attribute(XName.Get("key")).Value == SourceName); - XElement lastClearElement = packageSourcesElement.Descendants().LastOrDefault(e => e.Name == "clear"); - - if (exisitingSourceBuildElement != null) - { - exisitingSourceBuildElement.ReplaceWith(toAdd); - } - else if (lastClearElement != null) - { - lastClearElement.AddAfterSelf(toAdd); - } - else - { - packageSourcesElement.AddFirst(toAdd); - packageSourcesElement.AddFirst(clearTag); - } - - using (var w = XmlWriter.Create(NuGetConfigFile, new XmlWriterSettings { NewLineChars = newLineChars, Indent = true })) - { - d.Save(w); - } - - return true; - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/BuildTask.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/BuildTask.cs deleted file mode 100644 index e8155b072..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/BuildTask.cs +++ /dev/null @@ -1,37 +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; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - public abstract partial class BuildTask : ITask - { - private TaskLoggingHelper _log = null; - - internal TaskLoggingHelper Log - { - get { return _log ?? (_log = new TaskLoggingHelper(this)); } - } - - public BuildTask() - { - } - - public IBuildEngine BuildEngine - { - get; - set; - } - - public ITaskHost HostObject - { - get; - set; - } - - public abstract bool Execute(); - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/CreateSdkSymbolsLayout.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/CreateSdkSymbolsLayout.cs deleted file mode 100644 index 7caabc760..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/CreateSdkSymbolsLayout.cs +++ /dev/null @@ -1,139 +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.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.UnifiedBuild.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 (PdbUtilities.FileInSdkLayoutRequiresAPdb(file, out string guid)) - { - 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 fileRelativePath = file.Substring(SdkLayoutPath.Length); - string destinationPath = - Path.Combine(SdkSymbolsLayoutPath, fileRelativePath) - .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.UnifiedBuild.Tasks/EnumerableExtensions.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/EnumerableExtensions.cs deleted file mode 100644 index 53efc7190..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/EnumerableExtensions.cs +++ /dev/null @@ -1,17 +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.Collections.Generic; -using System.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - internal static class EnumerableExtensions - { - public static IEnumerable NullAsEmpty(this IEnumerable source) - { - return source ?? Enumerable.Empty(); - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/FileUtilities.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/FileUtilities.cs deleted file mode 100644 index 6d534b935..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/FileUtilities.cs +++ /dev/null @@ -1,70 +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; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - public static class FileUtilities - { - public const string CR = "\r"; - public const string CRLF = "\r\n"; - public const string LF = "\n"; - - public static string DetectNewLineChars(string source) - { - if (source == null) - { - throw new ArgumentNullException(nameof(source)); - } - - if (source.Contains(CRLF)) - { - return CRLF; - } - else if (source.Contains(LF)) - { - return LF; - } - else if (source.Contains(CR)) - { - return CR; - } - else - { - throw new ArgumentException("Unsupported new line characters", nameof(source)); - } - } - - public static string NormalizeNewLineChars(string source, string newLineChars) - { - if (source == null) - { - throw new ArgumentNullException(nameof(source)); - } - - source = source.Replace(CRLF, LF).Replace(CR, LF); - if (newLineChars == CRLF) - { - source = source.Replace(LF, CRLF); - } - else if (newLineChars == CR) - { - source = source.Replace(LF, CR); - } - else if (newLineChars != LF) - { - throw new ArgumentException("Unsupported new line characters", nameof(newLineChars)); - } - - // Ensure trailing new line on linux. - if (newLineChars == LF && !source.EndsWith(newLineChars)) - { - source += newLineChars; - } - - return source; - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Log.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Log.cs deleted file mode 100644 index 67b7bae56..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Log.cs +++ /dev/null @@ -1,118 +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; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - internal class Log : ILog - { - private readonly TaskLoggingHelper _logger; - public Log(TaskLoggingHelper logger) - { - _logger = logger; - } - - public void LogError(string message, params object[] messageArgs) - { - _logger.LogError(message, messageArgs); - } - - public void LogMessage(string message, params object[] messageArgs) - { - _logger.LogMessage(message, messageArgs); - } - - public void LogMessage(LogImportance importance, string message, params object[] messageArgs) - { - _logger.LogMessage((MessageImportance)importance, message, messageArgs); - } - - public void LogWarning(string message, params object[] messageArgs) - { - _logger.LogWarning(message, messageArgs); - } - - public bool HasLoggedErrors { get { return _logger.HasLoggedErrors; } } - } - - public enum LogImportance - { - Low = MessageImportance.Low, - Normal = MessageImportance.Normal, - High = MessageImportance.High - } - - - public interface ILog - { - // - // Summary: - // Logs an error with the specified message. - // - // Parameters: - // message: - // The message. - // - // messageArgs: - // Optional arguments for formatting the message string. - // - // Exceptions: - // T:System.ArgumentNullException: - // message is null. - void LogError(string message, params object[] messageArgs); - - // - // Summary: - // Logs a message with the specified string. - // - // Parameters: - // message: - // The message. - // - // messageArgs: - // The arguments for formatting the message. - // - // Exceptions: - // T:System.ArgumentNullException: - // message is null. - void LogMessage(string message, params object[] messageArgs); - - // - // Summary: - // Logs a message with the specified string and importance. - // - // Parameters: - // importance: - // One of the enumeration values that specifies the importance of the message. - // - // message: - // The message. - // - // messageArgs: - // The arguments for formatting the message. - // - // Exceptions: - // T:System.ArgumentNullException: - // message is null. - void LogMessage(LogImportance importance, string message, params object[] messageArgs); - - // - // Summary: - // Logs a warning with the specified message. - // - // Parameters: - // message: - // The message. - // - // messageArgs: - // Optional arguments for formatting the message string. - // - // Exceptions: - // T:System.ArgumentNullException: - // message is null. - void LogWarning(string message, params object[] messageArgs); - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/MergeAssetManifests.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/MergeAssetManifests.cs deleted file mode 100644 index 4ee3fed5e..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/MergeAssetManifests.cs +++ /dev/null @@ -1,104 +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. - -#nullable enable - -using Microsoft.Build.Utilities; -using Microsoft.Build.Framework; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Xml.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - public class MergeAssetManifests : Task - { - /// - /// AssetManifest paths - /// - [Required] - public required ITaskItem[] AssetManifest { get; init; } - - /// - /// Merged asset manifest output path - /// - [Required] - public required string MergedAssetManifestOutputPath { get; init; } - - /// - /// Azure DevOps build number - /// - public string VmrBuildNumber { get; set; } = string.Empty; - - private static readonly string _buildIdAttribute = "BuildId"; - private static readonly string _azureDevOpsBuildNumberAttribute = "AzureDevOpsBuildNumber"; - private static readonly string[] _ignoredAttributes = [_buildIdAttribute, _azureDevOpsBuildNumberAttribute, "IsReleaseOnlyPackageVersion"]; - - public override bool Execute() - { - List assetManifestXmls = AssetManifest.Select(xmlPath => XDocument.Load(xmlPath.ItemSpec)).ToList(); - - VerifyAssetManifests(assetManifestXmls); - - XElement mergedManifestRoot = assetManifestXmls.First().Root - ?? throw new ArgumentException("The root element of the asset manifest is null."); - - // Set the BuildId and AzureDevOpsBuildNumber attributes to the value of VmrBuildNumber - mergedManifestRoot.SetAttributeValue(_buildIdAttribute, VmrBuildNumber); - mergedManifestRoot.SetAttributeValue(_azureDevOpsBuildNumberAttribute, VmrBuildNumber); - - List packageElements = new(); - List blobElements = new(); - - foreach (var assetManifestXml in assetManifestXmls) - { - packageElements.AddRange(assetManifestXml.Descendants("Package")); - blobElements.AddRange(assetManifestXml.Descendants("Blob")); - } - - packageElements = packageElements.OrderBy(packageElement => packageElement.Attribute("Id")?.Value).ToList(); - blobElements = blobElements.OrderBy(blobElement => blobElement.Attribute("Id")?.Value).ToList(); - - XDocument verticalManifest = new(new XElement(mergedManifestRoot.Name, mergedManifestRoot.Attributes(), packageElements, blobElements)); - - File.WriteAllText(MergedAssetManifestOutputPath, verticalManifest.ToString()); - - return !Log.HasLoggedErrors; - } - - private static void VerifyAssetManifests(IReadOnlyList assetManifestXmls) - { - if (assetManifestXmls.Count == 0) - { - throw new ArgumentException("No asset manifests were provided."); - } - - HashSet rootAttributes = assetManifestXmls - .First() - .Root? - .Attributes() - .Select(attribute => attribute.ToString()) - .ToHashSet() - ?? throw new ArgumentException("The root element of the asset manifest is null."); - - if (assetManifestXmls.Skip(1).Any(manifest => manifest.Root?.Attributes().Count() != rootAttributes.Count)) - { - throw new ArgumentException("The asset manifests do not have the same number of root attributes."); - } - - if (assetManifestXmls.Skip(1).Any(assetManifestXml => - !assetManifestXml.Root?.Attributes().Select(attribute => attribute.ToString()) - .All(attribute => - // Ignore BuildId and AzureDevOpsBuildNumber attributes, they're different for different repos, - // TODO this should be fixed with https://github.com/dotnet/source-build/issues/3934 - _ignoredAttributes.Any(ignoredAttribute => attribute.StartsWith(ignoredAttribute)) || rootAttributes.Contains(attribute)) - ?? false)) - { - throw new ArgumentException("The asset manifests do not have the same root attributes."); - } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj deleted file mode 100644 index 63880f202..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Microsoft.DotNet.UnifiedBuild.Tasks.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - $(NetCurrent) - - - - - - - - - - - - diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Models/VersionDetailsXml.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Models/VersionDetailsXml.cs deleted file mode 100644 index 538340ec4..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/Models/VersionDetailsXml.cs +++ /dev/null @@ -1,39 +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.Xml.Serialization; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.Models -{ - [XmlRoot("Dependencies")] - public class VersionDetails - { - [XmlArray("ToolsetDependencies")] - public Dependency[] ToolsetDependencies { get; set; } - [XmlArray("ProductDependencies")] - public Dependency[] ProductDependencies { get; set; } - } - - public class Dependency - { - [XmlAttribute] - public string Name { get; set; } - [XmlAttribute] - public string Version { get; set; } - [XmlAttribute] - public string CoherentParentDependency { get; set; } - [XmlAttribute] - public bool Pinned { get; set; } - // Uri type isn't serializable, so use a string instead - public string Uri { get; set; } - public string Sha { get; set; } - [XmlElement("RepoName")] - public string[] RepoNames { get; set; } - - public override string ToString() - { - return $"{Name}@{Version} ({Uri}@{Sha})"; - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/PdbUtilities.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/PdbUtilities.cs deleted file mode 100644 index 791a9ad90..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/PdbUtilities.cs +++ /dev/null @@ -1,60 +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.Linq; -using System.Reflection.Metadata; -using System.Reflection.PortableExecutable; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - public static class PdbUtilities - { - // Checks if a file in Sdk layout requires an external Pdb. - // Also returns the Pdb GUID, if one was found in PE. - public static bool FileInSdkLayoutRequiresAPdb(string file, out string guid) - { - guid = string.Empty; - - // Files under packs/ are used for build only, no need for Pdbs - return !file.Contains(Path.DirectorySeparatorChar + "packs" + Path.DirectorySeparatorChar) ? - FileHasCompanionPdbInfo(file, out guid) : - false; - } - - // Checks if a file has debug data indicating an external companion Pdb. - // Also returns the Pdb GUID, if one was found in PE. - private static bool FileHasCompanionPdbInfo(string file, out string guid) - { - guid = string.Empty; - - if (file.EndsWith(".dll", StringComparison.InvariantCultureIgnoreCase) && - !file.EndsWith(".resources.dll", StringComparison.InvariantCultureIgnoreCase)) - { - 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)) - { - return false; - } - - 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 - return false; - } - } - - return guid != string.Empty; - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/ReadNuGetPackageInfos.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/ReadNuGetPackageInfos.cs deleted file mode 100644 index 59ce680e4..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/ReadNuGetPackageInfos.cs +++ /dev/null @@ -1,54 +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 NuGet.Packaging; -using NuGet.Packaging.Core; -using System.Collections.Generic; -using System.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - public class ReadNuGetPackageInfos : Task - { - [Required] - public string[] PackagePaths { get; set; } - - /// - /// %(Identity): Path to the original nupkg. - /// %(PackageId): Identity of the package. - /// %(PackageVersion): Version of the package. - /// - [Output] - public ITaskItem[] PackageInfoItems { get; set; } - - public override bool Execute() - { - PackageInfoItems = PackagePaths - .Select(p => - { - PackageIdentity identity = ReadIdentity(p); - return new TaskItem( - p, - new Dictionary - { - ["PackageId"] = identity.Id, - ["PackageVersion"] = identity.Version.OriginalVersion - }); - }) - .ToArray(); - - return !Log.HasLoggedErrors; - } - - public static PackageIdentity ReadIdentity(string nupkgFile) - { - using (var reader = new PackageArchiveReader(nupkgFile)) - { - return reader.GetIdentity(); - } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/RemoveInternetSourcesFromNuGetConfig.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/RemoveInternetSourcesFromNuGetConfig.cs deleted file mode 100644 index ee379657f..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/RemoveInternetSourcesFromNuGetConfig.cs +++ /dev/null @@ -1,86 +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.Collections.Generic; -using System.IO; -using System.Linq; -using System.Xml; -using System.Xml.Linq; -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - /* - * This task removes internet sources from a given NuGet.config. In the offline build mode, it removes all - * feeds that begin with http or https. In the online build mode, it removes only the internal dnceng feeds that - * source-build does not have access to. - */ - public class RemoveInternetSourcesFromNuGetConfig : Task - { - [Required] - public string NuGetConfigFile { get; set; } - - /// - /// Whether to work in offline mode (remove all internet sources) or online mode (remove only authenticated sources) - /// - public bool BuildWithOnlineFeeds { get; set; } - - /// - /// A list of prefix strings that make the task keep a package source unconditionally. For - /// example, a source named 'darc-pub-dotnet-aspnetcore-e81033e' will be kept if the prefix - /// 'darc-pub-dotnet-aspnetcore-' is in this list. - /// - public string[] KeepFeedPrefixes { get; set; } - - public override bool Execute() - { - string xml = File.ReadAllText(NuGetConfigFile); - string newLineChars = FileUtilities.DetectNewLineChars(xml); - XDocument d = XDocument.Parse(xml); - XElement packageSourcesElement = d.Root.Descendants().First(e => e.Name == "packageSources"); - XElement disabledPackageSourcesElement = d.Root.Descendants().FirstOrDefault(e => e.Name == "disabledPackageSources"); - - IEnumerable local = packageSourcesElement.Descendants().Where(e => - { - if (e.Name == "add") - { - string feedName = e.Attribute("key").Value; - if (KeepFeedPrefixes - ?.Any(prefix => feedName.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) - == true) - { - return true; - } - - string feedUrl = e.Attribute("value").Value; - if (BuildWithOnlineFeeds) - { - return !( feedUrl.StartsWith("https://pkgs.dev.azure.com/dnceng/_packaging", StringComparison.OrdinalIgnoreCase) || - feedUrl.StartsWith("https://pkgs.dev.azure.com/dnceng/internal/_packaging", StringComparison.OrdinalIgnoreCase) ); - } - else - { - return !(feedUrl.StartsWith("http://", StringComparison.OrdinalIgnoreCase) || feedUrl.StartsWith("https://", StringComparison.OrdinalIgnoreCase)); - } - } - - return true; - }); - - packageSourcesElement.ReplaceNodes(local.ToArray()); - - // Remove disabledPackageSources element so if any internal packages remain, they are used in source-build - disabledPackageSourcesElement?.ReplaceNodes(new XElement("clear")); - - using (var w = XmlWriter.Create(NuGetConfigFile, new XmlWriterSettings { NewLineChars = newLineChars, Indent = true })) - { - d.Save(w); - } - - return true; - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateJson.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateJson.cs deleted file mode 100644 index cffab0b2b..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateJson.cs +++ /dev/null @@ -1,82 +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.Linq; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - // Takes a path to a path to a json file and a - // string that represents a dotted path to an attribute - // and updates that attribute with the new value provided. - public class UpdateJson : Task - { - [Required] - public string JsonFilePath { get; set; } - - [Required] - public string PathToAttribute { get; set; } - - // New attribute value. May be null. If null, - // the token is removed. - public string NewAttributeValue { get; set; } - - public bool SkipUpdateIfMissingKey { get; set; } - - public override bool Execute() - { - // Using a character that isn't allowed in the package id - const char Delimiter = ':'; - - string json = File.ReadAllText(JsonFilePath); - string newLineChars = FileUtilities.DetectNewLineChars(json); - JObject jsonObj = JObject.Parse(json); - - string[] escapedPathToAttributeParts = PathToAttribute.Split(Delimiter); - for (int i = 0; i < escapedPathToAttributeParts.Length; ++i) - { - escapedPathToAttributeParts[i] = escapedPathToAttributeParts[i]; - } - UpdateAttribute(jsonObj, escapedPathToAttributeParts, NewAttributeValue); - - File.WriteAllText(JsonFilePath, FileUtilities.NormalizeNewLineChars(jsonObj.ToString(), newLineChars)); - return true; - } - - private void UpdateAttribute(JToken jsonObj, string[] path, string newValue) - { - string pathItem = path[0]; - if (jsonObj[pathItem] == null) - { - string message = $"Path item [{nameof(PathToAttribute)}] not found in json file."; - if (SkipUpdateIfMissingKey) - { - Log.LogMessage(MessageImportance.Low, $"Skipping update: {message} {pathItem}"); - return; - } - throw new ArgumentException(message, pathItem); - } - - if (path.Length == 1) - { - if (newValue == null) - { - jsonObj[pathItem].Parent.Remove(); - } - else - { - jsonObj[pathItem] = newValue; - } - return; - } - - UpdateAttribute(jsonObj[pathItem], path.Skip(1).ToArray(), newValue); - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs deleted file mode 100644 index 91d514ac9..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UpdateNuGetConfigPackageSourcesMappings.cs +++ /dev/null @@ -1,448 +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.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.Xml; -using System.Xml.Linq; -using Microsoft.Build.Framework; -using Microsoft.Build.Utilities; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - /* - * This task updates the package source mappings in the NuGet.Config using the following logic: - * Add all packages from current source-build sources, i.e. source-built-*, reference-packages. - * For previously source-built sources (PSB), add only the packages that do not exist in any of the current source-built sources. - * Also add PSB packages if that package version does not exist in current package sources. - * In offline build, remove all existing package source mappings for online sources. - * In online build, add online source mappings for all discovered packages from local sources. - * In online build, if NuGet.config didn't originally have any mappings, additionally, - * add default "*" pattern to all online source mappings. - */ - public class UpdateNuGetConfigPackageSourcesMappings : Task - { - [Required] - public string NuGetConfigFile { get; set; } - - /// - /// Whether to work in offline mode (remove all internet sources) or online mode (remove only authenticated sources) - /// - public bool BuildWithOnlineFeeds { get; set; } - - /// - /// A list of all source-build specific NuGet sources. - /// - public string[] SourceBuildSources { get; set; } - - [Required] - public string SbrpRepoSrcPath { get; set; } - - [Required] - public string SourceBuiltSourceNamePrefix { get; set; } - - public string SbrpCacheSourceName { get; set; } - - public string ReferencePackagesSourceName { get; set; } - - public string PreviouslySourceBuiltSourceName { get; set; } - - public string PrebuiltSourceName { get; set; } - - public string[] CustomSources { get; set; } - - // allSourcesPackages and oldSourceMappingPatterns contain 'package source', 'list of packages' mappings - private Dictionary> allSourcesPackages = []; - private Dictionary> oldSourceMappingPatterns = []; - - // All other dictionaries are: 'package id', 'list of package versions' - private Dictionary> currentPackages = []; - private Dictionary> referencePackages = []; - private Dictionary> previouslySourceBuiltPackages = []; - private Dictionary> prebuiltPackages = []; - - public override bool Execute() - { - string xml = File.ReadAllText(NuGetConfigFile); - string newLineChars = FileUtilities.DetectNewLineChars(xml); - XDocument document = XDocument.Parse(xml); - XElement pkgSourcesElement = document.Root.Descendants().FirstOrDefault(e => e.Name == "packageSources"); - if (pkgSourcesElement == null) - { - Log.LogMessage(MessageImportance.Low, "Package sources are missing."); - - return true; - } - - XElement pkgSrcMappingElement = document.Root.Descendants().FirstOrDefault(e => e.Name == "packageSourceMapping"); - if (pkgSrcMappingElement == null) - { - pkgSrcMappingElement = new XElement("packageSourceMapping"); - document.Root.Add(pkgSrcMappingElement); - } - - DiscoverPackagesFromAllSourceBuildSources(pkgSourcesElement); - - // Discover all SBRP packages if source-build-reference-package-cache source is present in NuGet.config - XElement sbrpCacheSourceElement = GetElement(pkgSourcesElement, "add", SbrpCacheSourceName); - if (sbrpCacheSourceElement != null) - { - DiscoverPackagesFromSbrpCacheSource(); - } - - // If building online, enumerate any existing package source mappings and filter - // to remove packages that are present in any local source-build source - if (BuildWithOnlineFeeds && pkgSrcMappingElement != null) - { - GetExistingFilteredSourceMappings(pkgSrcMappingElement); - } - - // Remove all packageSourceMappings - pkgSrcMappingElement.ReplaceNodes(new XElement("clear")); - - XElement pkgSrcMappingClearElement = pkgSrcMappingElement.Descendants().FirstOrDefault(e => e.Name == "clear"); - - // Add package source mappings for local package sources - foreach (string packageSource in allSourcesPackages.Keys) - { - // Skip sources with zero package patterns - if (allSourcesPackages[packageSource]?.Count > 0) - { - pkgSrcMappingClearElement.AddAfterSelf(GetPackageMappingsElementForSource(packageSource)); - } - } - - // When building online add the filtered mappings from original online sources. - // If there are none, add default mappings for all online sources. - if (BuildWithOnlineFeeds) - { - foreach (var entry in oldSourceMappingPatterns) - { - // Skip sources with zero package patterns - if (entry.Value?.Count > 0) - { - pkgSrcMappingElement.Add(GetPackageMappingsElementForSource(entry.Key, entry.Value)); - } - } - - // Union all package sources to get the distinct list. These will get added to - // all custom sources and all online sources based on the following logic: - // If there were existing mappings for online feeds, add cummulative mappings - // from all feeds to these two. - // If there were no existing mappings, add default mappings for all online feeds. - List packagePatterns = pkgSrcMappingElement.Descendants() - .Where(e => e.Name == "packageSource") - .SelectMany(e => e.Descendants().Where(e => e.Name == "package")) - .Select(e => e.Attribute("pattern").Value) - .Distinct() - .ToList(); - - if (oldSourceMappingPatterns.Count == 0) - { - packagePatterns.Add("*"); - } - - AddMappingsForCustomSources(pkgSrcMappingElement, pkgSourcesElement, packagePatterns); - - if (oldSourceMappingPatterns.Count == 0) - { - AddMappingsForOnlineSources(pkgSrcMappingElement, pkgSourcesElement, packagePatterns); - } - } - - using (var writer = XmlWriter.Create(NuGetConfigFile, new XmlWriterSettings { NewLineChars = newLineChars, Indent = true })) - { - document.Save(writer); - } - - return true; - } - - private void AddMappingsForCustomSources(XElement pkgSrcMappingElement, XElement pkgSourcesElement, List packagePatterns) - { - if (CustomSources == null) - { - return; - } - - foreach (string sourceName in CustomSources) - { - if (null != GetElement(pkgSourcesElement, "add", sourceName)) - { - ReplaceSourceMappings(pkgSrcMappingElement, sourceName, packagePatterns); - } - } - } - - private void ReplaceSourceMappings(XElement pkgSrcMappingElement, string sourceName, List packagePatterns) - { - XElement pkgSrc = new XElement("packageSource", new XAttribute("key", sourceName)); - foreach (string packagePattern in packagePatterns) - { - pkgSrc.Add(new XElement("package", new XAttribute("pattern", packagePattern))); - } - - XElement existingPkgSrcElement = GetElement(pkgSrcMappingElement, "packageSource", sourceName); - if (existingPkgSrcElement != null) - { - existingPkgSrcElement.ReplaceWith(pkgSrc); - } - else - { - pkgSrcMappingElement.Add(pkgSrc); - } - } - - private void AddMappingsForOnlineSources(XElement pkgSrcMappingElement, XElement pkgSourcesElement, List packagePatterns) - { - foreach (string sourceName in pkgSourcesElement - .Descendants() - .Where(e => e.Name == "add" && - !SourceBuildSources.Contains(e.Attribute("key").Value) && - // SBRP Cache source is not in SourceBuildSources, skip it as it's not an online source - !(e.Attribute("key").Value == SbrpCacheSourceName)) - .Select(e => e.Attribute("key").Value) - .Distinct()) - { - ReplaceSourceMappings(pkgSrcMappingElement, sourceName, packagePatterns); - } - } - - private XElement GetPackageMappingsElementForSource(string key, List value) - { - XElement pkgSrc = new XElement("packageSource", new XAttribute("key", key)); - foreach (string pattern in value) - { - pkgSrc.Add(new XElement("package", new XAttribute("pattern", pattern))); - } - - return pkgSrc; - } - - private XElement GetPackageMappingsElementForSource(string packageSource) - { - bool isCurrentSourceBuiltSource = - packageSource.StartsWith(SourceBuiltSourceNamePrefix) || - packageSource.Equals(SbrpCacheSourceName) || - packageSource.Equals(ReferencePackagesSourceName); - - XElement pkgSrc = new XElement("packageSource", new XAttribute("key", packageSource)); - foreach (string packagePattern in allSourcesPackages[packageSource]) - { - // Add all packages from current source-built sources. - // For previously source-built and prebuilt sources add only packages - // where version does not exist in current source-built sources. - if (isCurrentSourceBuiltSource || !currentPackages.ContainsKey(packagePattern)) - { - pkgSrc.Add(new XElement("package", new XAttribute("pattern", packagePattern))); - } - else if (packageSource.Equals(PreviouslySourceBuiltSourceName)) - { - AddPackageSourceMappingIfPackageVersionsNotInCurrentPackages(pkgSrc, packagePattern, previouslySourceBuiltPackages); - } - else if (packageSource.Equals(PrebuiltSourceName)) - { - AddPackageSourceMappingIfPackageVersionsNotInCurrentPackages(pkgSrc, packagePattern, prebuiltPackages); - } - else // unknown/unexpected source - { - throw new UnreachableException($"Unexpected package source name: {packageSource}"); - } - } - - return pkgSrc; - } - - private void AddPackageSourceMappingIfPackageVersionsNotInCurrentPackages(XElement pkgSrc, string packagePattern, Dictionary> packages) - { - foreach (string version in packages[packagePattern]) - { - // If any package version is in current packages, skip this package pattern - if (currentPackages[packagePattern].Contains(version)) - { - return; - } - } - - pkgSrc.Add(new XElement("package", new XAttribute("pattern", packagePattern))); - } - - private void DiscoverPackagesFromAllSourceBuildSources(XElement pkgSourcesElement) - { - foreach (string packageSource in SourceBuildSources) - { - XElement sourceElement = GetElement(pkgSourcesElement, "add", packageSource); - if (sourceElement == null) - { - continue; - } - - string path = sourceElement.Attribute("value").Value; - if (!Directory.Exists(path)) - { - continue; - } - - string[] packages = Directory.GetFiles(path, "*.nupkg", SearchOption.AllDirectories); - foreach (string package in packages) - { - NupkgInfo info = GetNupkgInfo(package); - string id = info.Id.ToLower(); - string version = info.Version.ToLower(); - - // Add package with version to appropriate hashtable - if (packageSource.StartsWith(SourceBuiltSourceNamePrefix)) - { - AddToDictionary(currentPackages, id, version); - } - else if (packageSource.Equals(ReferencePackagesSourceName)) - { - AddToDictionary(referencePackages, id, version); - } - else if (packageSource.Equals(PreviouslySourceBuiltSourceName)) - { - AddToDictionary(previouslySourceBuiltPackages, id, version); - } - else if (packageSource.Equals(PrebuiltSourceName)) - { - AddToDictionary(prebuiltPackages, id, version); - } - else // unknown/unexpected source - { - throw new UnreachableException($"Unexpected package source name: {packageSource}"); - } - - AddToDictionary(allSourcesPackages, packageSource, id); - } - } - } - - private void DiscoverPackagesFromSbrpCacheSource() - { - // 'source-build-reference-package-cache' is a dynamic source, populated by SBRP build. - // Discover all SBRP packages from checked in nuspec files. - - if (!Directory.Exists(SbrpRepoSrcPath)) - { - throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture, "SBRP repo root does not exist in expected path: {0}", SbrpRepoSrcPath)); - } - - string[] nuspecFiles = Directory.GetFiles(SbrpRepoSrcPath, "*.nuspec", SearchOption.AllDirectories); - foreach (string nuspecFile in nuspecFiles) - { - try - { - using Stream stream = File.OpenRead(nuspecFile); - NupkgInfo info = GetNupkgInfo(stream); - string id = info.Id.ToLower(); - string version = info.Version.ToLower(); - - AddToDictionary(currentPackages, id, version); - AddToDictionary(allSourcesPackages, SbrpCacheSourceName, id); - } - catch (Exception ex) - { - throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture, "Invalid nuspec file", nuspecFile), ex); - } - } - } - - private XElement GetElement(XElement pkgSourcesElement, string name, string key) - { - return pkgSourcesElement.Descendants().FirstOrDefault(e => e.Name == name && e.Attribute("key").Value == key); - } - - private void GetExistingFilteredSourceMappings(XElement pkgSrcMappingElement) - { - foreach (XElement packageSource in pkgSrcMappingElement.Descendants().Where(e => e.Name == "packageSource")) - { - List filteredPatterns = new List(); - foreach (XElement package in packageSource.Descendants().Where(e => e.Name == "package")) - { - string pattern = package.Attribute("pattern").Value.ToLower(); - if (!currentPackages.ContainsKey(pattern) && - !referencePackages.ContainsKey(pattern) && - !previouslySourceBuiltPackages.ContainsKey(pattern) && - !prebuiltPackages.ContainsKey(pattern)) - { - filteredPatterns.Add(pattern); - } - } - - oldSourceMappingPatterns.Add(packageSource.Attribute("key").Value, filteredPatterns); - } - } - - private void AddToDictionary(Dictionary> dictionary, string key, string value) - { - if (dictionary.TryGetValue(key, out List values)) - { - if (!values.Contains(value)) - { - values.Add(value); - } - } - else - { - dictionary.Add(key, [value]); - } - } - - /// - /// Get nupkg info, id and version, from nupkg file. - /// - private NupkgInfo GetNupkgInfo(string path) - { - try - { - using Stream stream = File.OpenRead(path); - ZipArchive zipArchive = new(stream, ZipArchiveMode.Read); - foreach (ZipArchiveEntry entry in zipArchive.Entries) - { - if (entry.Name.EndsWith(".nuspec")) - { - using Stream nuspecFileStream = entry.Open(); - return GetNupkgInfo(nuspecFileStream); - } - } - } - catch (Exception ex) - { - throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture, "Invalid package", path), ex); - } - - throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture, "Did not extract nuspec file from package: {0}", path)); - } - - /// - /// Get nupkg info, id and version, from nuspec stream. - /// - private NupkgInfo GetNupkgInfo(Stream nuspecFileStream) - { - XDocument doc = XDocument.Load(nuspecFileStream, LoadOptions.PreserveWhitespace); - XElement metadataElement = doc.Descendants().First(c => c.Name.LocalName.ToString() == "metadata"); - return new NupkgInfo( - metadataElement.Descendants().First(c => c.Name.LocalName.ToString() == "id").Value, - metadataElement.Descendants().First(c => c.Name.LocalName.ToString() == "version").Value); - } - - private class NupkgInfo - { - public NupkgInfo(string id, string version) - { - Id = id; - Version = version; - } - - public string Id { get; } - public string Version { get; } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/AnnotatedUsage.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/AnnotatedUsage.cs deleted file mode 100644 index 896be816c..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/AnnotatedUsage.cs +++ /dev/null @@ -1,34 +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.Xml.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - public class AnnotatedUsage - { - public Usage Usage { get; set; } - - public string Project { get; set; } - public string SourceBuildPackageIdCreator { get; set; } - public string ProdConPackageIdCreator { get; set; } - public bool EndsUpInOutput { get; set; } - public bool TestProjectByHeuristic { get; set; } - public bool TestProjectOnlyByHeuristic { get; set; } - public bool IsDirectDependency { get; set; } - public bool IsAutoReferenced { get; set; } - - public XElement ToXml() => new XElement( - nameof(AnnotatedUsage), - Usage.ToXml().Attributes(), - Project.ToXAttributeIfNotNull(nameof(Project)), - SourceBuildPackageIdCreator.ToXAttributeIfNotNull(nameof(SourceBuildPackageIdCreator)), - ProdConPackageIdCreator.ToXAttributeIfNotNull(nameof(ProdConPackageIdCreator)), - TestProjectByHeuristic.ToXAttributeIfTrue(nameof(TestProjectByHeuristic)), - TestProjectOnlyByHeuristic.ToXAttributeIfTrue(nameof(TestProjectOnlyByHeuristic)), - IsDirectDependency.ToXAttributeIfTrue(nameof(IsDirectDependency)), - IsAutoReferenced.ToXAttributeIfTrue(nameof(IsAutoReferenced)), - EndsUpInOutput.ToXAttributeIfTrue(nameof(EndsUpInOutput))); - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/Usage.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/Usage.cs deleted file mode 100644 index b8817f2c2..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/Usage.cs +++ /dev/null @@ -1,112 +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 NuGet.Packaging.Core; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Xml.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - public class Usage : IEquatable - { - public PackageIdentity PackageIdentity { get; set; } - - public string AssetsFile { get; set; } - - public bool IsDirectDependency { get; set; } - - public bool IsAutoReferenced { get; set; } - - /// - /// The Runtime ID this package is for, or null. Runtime packages (are assumed to) have the - /// id 'runtime.{rid}.{rest of id}'. We can't use a simple regex to grab this value since - /// the RID may have '.' in it, so this is saved in the build context where possible RIDs - /// are read from Microsoft.NETCore.Platforms. - /// - public string RuntimePackageRid { get; set; } - - public XElement ToXml() => new XElement( - nameof(Usage), - PackageIdentity.ToXElement().Attributes(), - AssetsFile.ToXAttributeIfNotNull("File"), - IsDirectDependency.ToXAttributeIfTrue(nameof(IsDirectDependency)), - IsAutoReferenced.ToXAttributeIfTrue(nameof(IsAutoReferenced)), - RuntimePackageRid.ToXAttributeIfNotNull("Rid")); - - public static Usage Parse(XElement xml) => new Usage - { - PackageIdentity = XmlParsingHelpers.ParsePackageIdentity(xml), - AssetsFile = xml.Attribute("File")?.Value, - IsDirectDependency = Convert.ToBoolean(xml.Attribute(nameof(IsDirectDependency))?.Value), - IsAutoReferenced = Convert.ToBoolean(xml.Attribute(nameof(IsAutoReferenced))?.Value), - RuntimePackageRid = xml.Attribute("Rid")?.Value - }; - - public static Usage Create( - string assetsFile, - PackageIdentity identity, - bool isDirectDependency, - bool isAutoReferenced, - IEnumerable possibleRuntimePackageRids) - { - return new Usage - { - AssetsFile = assetsFile, - PackageIdentity = identity, - IsDirectDependency = isDirectDependency, - IsAutoReferenced = isAutoReferenced, - RuntimePackageRid = possibleRuntimePackageRids - .Where(rid => identity.Id.StartsWith($"runtime.{rid}.", StringComparison.Ordinal)) - .OrderByDescending(rid => rid.Length) - .FirstOrDefault() - }; - } - - public PackageIdentity GetIdentityWithoutRid() - { - if (!string.IsNullOrEmpty(RuntimePackageRid)) - { - string prefix = $"runtime.{RuntimePackageRid}."; - if (PackageIdentity.Id.StartsWith(prefix, StringComparison.Ordinal)) - { - return new PackageIdentity( - PackageIdentity.Id - .Remove(0, prefix.Length) - .Insert(0, "runtime.placeholder-rid."), - PackageIdentity.Version); - } - } - return PackageIdentity; - } - - public override string ToString() => - $"{PackageIdentity.Id} {PackageIdentity.Version} " + - (string.IsNullOrEmpty(RuntimePackageRid) ? "" : $"({RuntimePackageRid}) ") + - (string.IsNullOrEmpty(AssetsFile) ? "with unknown use" : $"used by '{AssetsFile}'"); - - public bool Equals(Usage other) - { - if (other is null) - { - return false; - } - if (ReferenceEquals(this, other)) - { - return true; - } - return - Equals(PackageIdentity, other.PackageIdentity) && - string.Equals(AssetsFile, other.AssetsFile, StringComparison.Ordinal) && - string.Equals(RuntimePackageRid, other.RuntimePackageRid, StringComparison.Ordinal); - } - - public override int GetHashCode() => ( - PackageIdentity, - AssetsFile, - RuntimePackageRid - ).GetHashCode(); - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/UsageData.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/UsageData.cs deleted file mode 100644 index 4a2fc9ed9..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/UsageData.cs +++ /dev/null @@ -1,57 +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 NuGet.Packaging.Core; -using System.Linq; -using System.Xml.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - public class UsageData - { - public string CreatedByRid { get; set; } - public string[] ProjectDirectories { get; set; } - public PackageIdentity[] NeverRestoredTarballPrebuilts { get; set; } - public Usage[] Usages { get; set; } - - public XElement ToXml() => new XElement( - nameof(UsageData), - CreatedByRid == null ? null : new XElement( - nameof(CreatedByRid), - CreatedByRid), - ProjectDirectories?.Any() != true ? null : new XElement( - nameof(ProjectDirectories), - ProjectDirectories - .Select(dir => new XElement("Dir", dir))), - NeverRestoredTarballPrebuilts?.Any() != true ? null : new XElement( - nameof(NeverRestoredTarballPrebuilts), - NeverRestoredTarballPrebuilts - .OrderBy(id => id) - .Select(id => id.ToXElement())), - Usages?.Any() != true ? null : new XElement( - nameof(Usages), - Usages - .OrderBy(u => u.PackageIdentity) - .ThenByOrdinal(u => u.AssetsFile) - .Select(u => u.ToXml()))); - - public static UsageData Parse(XElement xml) => new UsageData - { - CreatedByRid = xml.Element(nameof(CreatedByRid)) - ?.Value, - ProjectDirectories = xml.Element(nameof(ProjectDirectories)) == null ? new string[] { } : - xml.Element(nameof(ProjectDirectories)).Elements() - .Select(x => x.Value) - .ToArray(), - NeverRestoredTarballPrebuilts = xml.Element(nameof(NeverRestoredTarballPrebuilts)) == null ? new PackageIdentity[] { } : - xml.Element(nameof(NeverRestoredTarballPrebuilts)).Elements() - .Select(XmlParsingHelpers.ParsePackageIdentity) - .ToArray(), - Usages = xml.Element(nameof(Usages)) == null ? new Usage[] { } : - xml.Element(nameof(Usages)).Elements() - .Select(Usage.Parse) - .ToArray() - }; - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/ValidateUsageAgainstBaseline.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/ValidateUsageAgainstBaseline.cs deleted file mode 100644 index 834e8b556..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/ValidateUsageAgainstBaseline.cs +++ /dev/null @@ -1,149 +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 NuGet.Packaging.Core; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Xml.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - public class ValidateUsageAgainstBaseline : Task - { - [Required] - public string DataFile { get; set; } - - [Required] - public string OutputBaselineFile { get; set; } - - [Required] - public string OutputReportFile { get; set; } - - public bool AllowTestProjectUsage { get; set; } - - public string BaselineDataFile { get; set; } - - public override bool Execute() - { - var used = UsageData.Parse(XElement.Parse(File.ReadAllText(DataFile))); - - IEnumerable baselineUsages; - if (File.Exists(BaselineDataFile)) - { - baselineUsages = UsageData.Parse(XElement.Parse(File.ReadAllText(BaselineDataFile))).Usages; - } - else - { - baselineUsages = Enumerable.Empty(); - } - - Comparison diff = Compare( - used.Usages.Select(u => u.GetIdentityWithoutRid()).Distinct(), - baselineUsages.Select(u => u.GetIdentityWithoutRid()).Distinct()); - - var report = new XElement("BaselineComparison"); - - bool tellUserToUpdateBaseline = false; - - if (diff.Added.Any()) - { - tellUserToUpdateBaseline = true; - Log.LogError( - $"{diff.Added.Length} new packages used not in baseline! See report " + - $"at {OutputReportFile} for more information. Package IDs are:\n" + - string.Join("\n", diff.Added.Select(u => u.ToString()))); - - // In the report, list full usage info, not only identity. - report.Add( - new XElement( - "New", - used.Usages - .Where(u => diff.Added.Contains(u.GetIdentityWithoutRid())) - .Select(u => u.ToXml()))); - } - if (diff.Removed.Any()) - { - tellUserToUpdateBaseline = true; - Log.LogMessage( - MessageImportance.High, - $"{diff.Removed.Length} packages in baseline weren't used!"); - - report.Add(new XElement("Removed", diff.Removed.Select(id => id.ToXElement()))); - } - if (diff.Unchanged.Any()) - { - Log.LogMessage( - MessageImportance.High, - $"{diff.Unchanged.Length} packages used as expected in the baseline."); - } - - if (!AllowTestProjectUsage) - { - Usage[] testProjectUsages = used.Usages - .Where(WriteUsageReports.IsTestUsageByHeuristic) - .ToArray(); - - if (testProjectUsages.Any()) - { - string[] projects = testProjectUsages - .Select(u => u.AssetsFile) - .Distinct() - .ToArray(); - - Log.LogError( - $"{testProjectUsages.Length} forbidden test usages found in " + - $"{projects.Length} projects:\n" + - string.Join("\n", projects)); - } - } - - // Simplify the used data to what is necessary for a baseline, to reduce file size. - foreach (var usage in used.Usages) - { - usage.AssetsFile = null; - } - used.Usages = used.Usages.Distinct().ToArray(); - - Directory.CreateDirectory(Path.GetDirectoryName(OutputBaselineFile)); - File.WriteAllText(OutputBaselineFile, used.ToXml().ToString()); - - Directory.CreateDirectory(Path.GetDirectoryName(OutputReportFile)); - File.WriteAllText(OutputReportFile, report.ToString()); - - if (tellUserToUpdateBaseline) - { - Log.LogWarning( - "Prebuilt usages are different from the baseline. If detected changes are " + - "acceptable, update baseline with:\n" + - $"cp '{OutputBaselineFile}' '{BaselineDataFile}'"); - } - - return !Log.HasLoggedErrors; - } - - private static Comparison Compare(IEnumerable actual, IEnumerable baseline) - { - return new Comparison(actual.ToArray(), baseline.ToArray()); - } - - private class Comparison - { - public T[] Added { get; } - public T[] Removed { get; } - public T[] Unchanged { get; } - - public Comparison( - IEnumerable actual, - IEnumerable baseline) - { - Added = actual.Except(baseline).ToArray(); - Removed = baseline.Except(actual).ToArray(); - Unchanged = actual.Intersect(baseline).ToArray(); - } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WritePackageUsageData.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WritePackageUsageData.cs deleted file mode 100644 index 073c92644..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WritePackageUsageData.cs +++ /dev/null @@ -1,284 +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 Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using NuGet.Packaging.Core; -using NuGet.Versioning; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.Threading.Tasks; -using Task = Microsoft.Build.Utilities.Task; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - public class WritePackageUsageData : Task - { - public string[] RestoredPackageFiles { get; set; } - public string[] TarballPrebuiltPackageFiles { get; set; } - public string[] ReferencePackageFiles { get; set; } - public string[] SourceBuiltPackageFiles { get; set; } - - /// - /// Specific PackageInfo items to check for usage. An alternative to passing lists of nupkgs - /// when the nupkgs have already been parsed to get package info items. - /// - /// %(Identity): Path to the original nupkg. - /// %(PackageId): Identity of the package. - /// %(PackageVersion): Version of the package. - /// - public ITaskItem[] NuGetPackageInfos { get; set; } - - /// - /// runtime.json files (from Microsoft.NETCore.Platforms) to use to look for the set of all - /// possible runtimes. This is used to determine which part of a package id is its - /// 'runtime.{rid}.' prefix, if it has the prefix. - /// - public string[] PlatformsRuntimeJsonFiles { get; set; } - - /// - /// Keep track of the RID built that caused these usages. - /// - public string TargetRid { get; set; } - - /// - /// Project directories to scan for project.assets.json files. If these directories contain - /// one another, the project.assets.json files is reported as belonging to the first project - /// directory that contains it. For useful results, put the leafmost directories first. - /// - /// This isn't used here, but it's included in the usage data so report generation can - /// happen independently of commits that add/remove submodules. - /// - public string[] ProjectDirectories { get; set; } - - /// - /// A root dir that contains all ProjectDirectories. This is used to find the relative path - /// of each usage. - /// - [Required] - public string RootDir { get; set; } - - /// - /// project.assets.json files to ignore, for example, because they are checked-in assets not - /// generated during source-build and cause false positives. - /// - public string[] IgnoredProjectAssetsJsonFiles { get; set; } - - /// - /// Output usage data JSON file path. - /// - [Required] - public string DataFile { get; set; } - - /// - /// If passed, the path of the archive file to generate that includes a copy of all - /// project.asset.json files found. - /// - public string ProjectAssetsJsonArchiveFile { get; set; } - - public override bool Execute() - { - DateTime startTime = DateTime.Now; - Log.LogMessage(MessageImportance.High, "Writing package usage data..."); - - string[] projectDirectoriesOutsideRoot = ProjectDirectories.NullAsEmpty() - .Where(dir => !dir.StartsWith(RootDir, StringComparison.Ordinal)) - .ToArray(); - - if (projectDirectoriesOutsideRoot.Any()) - { - throw new ArgumentException( - $"All ProjectDirectories must be in RootDir '{RootDir}', but found " + - string.Join(", ", projectDirectoriesOutsideRoot)); - } - - Log.LogMessage(MessageImportance.Low, "Finding set of RIDs..."); - - string[] possibleRids = PlatformsRuntimeJsonFiles.NullAsEmpty() - .SelectMany(ReadRidsFromRuntimeJson) - .Distinct() - .ToArray(); - - Log.LogMessage(MessageImportance.Low, "Reading package identities..."); - - PackageIdentity[] restored = RestoredPackageFiles.NullAsEmpty() - .Select(ReadNuGetPackageInfos.ReadIdentity) - .Distinct() - .ToArray(); - - PackageIdentity[] tarballPrebuilt = TarballPrebuiltPackageFiles.NullAsEmpty() - .Select(ReadNuGetPackageInfos.ReadIdentity) - .Distinct() - .ToArray(); - - PackageIdentity[] referencePackages = ReferencePackageFiles.NullAsEmpty() - .Select(ReadNuGetPackageInfos.ReadIdentity) - .Distinct() - .ToArray(); - - PackageIdentity[] sourceBuilt = SourceBuiltPackageFiles.NullAsEmpty() - .Select(ReadNuGetPackageInfos.ReadIdentity) - .Distinct() - .ToArray(); - - IEnumerable prebuilt = restored.Except(sourceBuilt).Except(referencePackages); - - PackageIdentity[] toCheck = NuGetPackageInfos.NullAsEmpty() - .Select(item => new PackageIdentity( - item.GetMetadata("PackageId"), - NuGetVersion.Parse(item.GetMetadata("PackageVersion")))) - .Concat(prebuilt) - .ToArray(); - - Log.LogMessage(MessageImportance.Low, "Finding project.assets.json files..."); - - string[] assetFiles = Directory - .GetFiles(RootDir, "project.assets.json", SearchOption.AllDirectories) - .Select(GetPathRelativeToRoot) - .Except(IgnoredProjectAssetsJsonFiles.NullAsEmpty().Select(GetPathRelativeToRoot)) - .ToArray(); - - if (!string.IsNullOrEmpty(ProjectAssetsJsonArchiveFile)) - { - Log.LogMessage(MessageImportance.Low, "Archiving project.assets.json files..."); - - Directory.CreateDirectory(Path.GetDirectoryName(ProjectAssetsJsonArchiveFile)); - - using (var projectAssetArchive = new ZipArchive( - File.Open( - ProjectAssetsJsonArchiveFile, - FileMode.Create, - FileAccess.ReadWrite), - ZipArchiveMode.Create)) - { - // Only one entry can be open at a time, so don't do this during the Parallel - // ForEach later. - foreach (var relativePath in assetFiles) - { - using (var stream = File.OpenRead(Path.Combine(RootDir, relativePath))) - using (Stream entryWriter = projectAssetArchive - .CreateEntry(relativePath, CompressionLevel.Optimal) - .Open()) - { - stream.CopyTo(entryWriter); - } - } - } - } - - Log.LogMessage(MessageImportance.Low, "Reading usage info..."); - - var usages = new ConcurrentBag(); - - Parallel.ForEach( - assetFiles, - assetFile => - { - JObject jObj; - - using (var file = File.OpenRead(Path.Combine(RootDir, assetFile))) - using (var reader = new StreamReader(file)) - using (var jsonReader = new JsonTextReader(reader)) - { - jObj = (JObject)JToken.ReadFrom(jsonReader); - } - - var properties = new HashSet( - jObj.SelectTokens("$.targets.*").Children() - .Concat(jObj.SelectToken("$.libraries")) - .Select(t => ((JProperty)t).Name) - .Distinct(), - StringComparer.OrdinalIgnoreCase); - - var directDependencies = jObj.SelectTokens("$.project.frameworks.*.dependencies").Children().Select(dep => - new - { - name = ((JProperty)dep).Name, - target = dep.SelectToken("$..target")?.ToString(), - version = VersionRange.Parse(dep.SelectToken("$..version")?.ToString()), - autoReferenced = dep.SelectToken("$..autoReferenced")?.ToString() == "True", - }) - .ToArray(); - - foreach (var identity in toCheck - .Where(id => properties.Contains(id.Id + "/" + id.Version.OriginalVersion))) - { - var directDependency = - directDependencies?.FirstOrDefault( - d => d.name == identity.Id && - d.version.Satisfies(identity.Version)); - usages.Add(Usage.Create( - assetFile, - identity, - directDependency != null, - directDependency?.autoReferenced == true, - possibleRids)); - } - }); - - Log.LogMessage(MessageImportance.Low, "Searching for unused packages..."); - - foreach (PackageIdentity restoredWithoutUsagesFound in - toCheck.Except(usages.Select(u => u.PackageIdentity))) - { - usages.Add(Usage.Create( - null, - restoredWithoutUsagesFound, - false, - false, - possibleRids)); - } - - // Packages that were included in the tarball as prebuilts, but weren't even restored. - PackageIdentity[] neverRestoredTarballPrebuilts = tarballPrebuilt - .Except(restored) - .ToArray(); - - Log.LogMessage(MessageImportance.Low, $"Writing data to '{DataFile}'..."); - - var data = new UsageData - { - CreatedByRid = TargetRid, - Usages = usages.ToArray(), - NeverRestoredTarballPrebuilts = neverRestoredTarballPrebuilts, - ProjectDirectories = ProjectDirectories - ?.Select(GetPathRelativeToRoot) - .ToArray() - }; - - Directory.CreateDirectory(Path.GetDirectoryName(DataFile)); - File.WriteAllText(DataFile, data.ToXml().ToString()); - - Log.LogMessage( - MessageImportance.High, - $"Writing package usage data... done. Took {DateTime.Now - startTime}"); - - return !Log.HasLoggedErrors; - } - - private string GetPathRelativeToRoot(string path) - { - if (path.StartsWith(RootDir)) - { - return path.Substring(RootDir.Length).Replace(Path.DirectorySeparatorChar, '/'); - } - - throw new ArgumentException($"Path '{path}' is not within RootDir '{RootDir}'"); - } - - private static string[] ReadRidsFromRuntimeJson(string path) - { - var root = JObject.Parse(File.ReadAllText(path)); - return root["runtimes"] - .Values() - .Select(o => o.Name) - .ToArray(); - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WriteUsageBurndownData.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WriteUsageBurndownData.cs deleted file mode 100644 index f99c8463d..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WriteUsageBurndownData.cs +++ /dev/null @@ -1,138 +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 Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using NuGet.Packaging.Core; -using NuGet.Versioning; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using System.Xml.Linq; -using Task = Microsoft.Build.Utilities.Task; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - public class WriteUsageBurndownData : Task - { - /// - /// Specifies the root directory for git. - /// Note: Requires a trailing "/" when specifying the directory. - /// - [Required] - public string RootDirectory { get; set; } - - /// - /// Specifies the path to the prebuilt baseline file - /// to be used to generate the burndown. - /// - [Required] - public string PrebuiltBaselineFile { get; set; } - - /// - /// Output data CSV file. - /// - [Required] - public string OutputFilePath { get; set; } - - /// - /// Sends HTTP requests and receives HTTP responses. - /// - private readonly HttpClient client = new(); - - public override bool Execute() => ExecuteAsync().GetAwaiter().GetResult(); - - private async Task ExecuteAsync() - { - string baselineRelativeFileName = PrebuiltBaselineFile.Replace(RootDirectory, ""); - string gitLogCommand = $"log --first-parent --pretty=format:%H,%f,%ci -- {PrebuiltBaselineFile}"; - - DateTime startTime = DateTime.Now; - Log.LogMessage(MessageImportance.High, "Generating summary usage burndown data..."); - - - IEnumerable> getCommitTasks = ExecuteGitCommand(RootDirectory, gitLogCommand) - .Select(async commitLine => - { - var splitLine = commitLine.Split(','); - var commit = new Commit() - { - Sha = splitLine[0], - Title = splitLine[1], - CommitDate = DateTime.Parse(splitLine[2]) - }; - string fileContents = await GetFileContentsAsync(baselineRelativeFileName, commit.Sha); - Usage[] usages = UsageData.Parse(XElement.Parse(fileContents)).Usages.NullAsEmpty().ToArray(); - commit.PackageVersionCount = usages.Count(); - commit.PackageCount = usages.GroupBy(i => i.PackageIdentity.Id).Select(grp => grp.First()).Count(); - return commit; - }); - - Commit[] commits = await System.Threading.Tasks.Task.WhenAll(getCommitTasks); - IEnumerable data = commits.Select(c => c.ToString()); - - Directory.CreateDirectory(Path.GetDirectoryName(OutputFilePath)); - - File.WriteAllLines(OutputFilePath, data); - - Log.LogMessage( - MessageImportance.High, - $"Generating summary usage burndown data at {OutputFilePath} done. Took {DateTime.Now - startTime}"); - - return !Log.HasLoggedErrors; - } - - /// - /// Get the contents of a git file based on the commit sha. - /// - /// The relative path (from the git root) to the file. - /// The commit sha for the version of the file to get. - /// The contents of the specified file. - private Task GetFileContentsAsync(string relativeFilePath, string commitSha) => - client.GetStringAsync($"https://raw.githubusercontent.com/dotnet/source-build/{commitSha}/{relativeFilePath.Replace('\\', '/')}"); - - /// - /// Executes a git command and returns the result. - /// - /// The working directory for the git command. - /// The git command to execute. - /// An array of the output lines of the git command. - private string[] ExecuteGitCommand(string workingDirectory, string command) - { - string[] returnData; - Process _process = new Process(); - _process.StartInfo.FileName = "git"; - _process.StartInfo.Arguments = command; - _process.StartInfo.WorkingDirectory = workingDirectory; - _process.StartInfo.RedirectStandardOutput = true; - _process.StartInfo.UseShellExecute = false; - _process.Start(); - returnData = _process.StandardOutput.ReadToEnd().Split('\n'); - _process.WaitForExit(); - return returnData; - } - - private class Commit - { - public string Sha { get; set; } - public string Title { get; set; } - public DateTime CommitDate { get; set; } - public int PackageVersionCount { get; set; } - public int PackageCount { get; set; } - - public override string ToString() - { - return $"{Sha}, {Title}, {CommitDate}, {PackageVersionCount}, {PackageCount}"; - } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WriteUsageReports.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WriteUsageReports.cs deleted file mode 100644 index b22f5dac3..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/WriteUsageReports.cs +++ /dev/null @@ -1,304 +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.IO; -using System.Linq; -using System.Text; -using System.Xml.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - public class WriteUsageReports : Task - { - private const string SnapshotPrefix = "PackageVersions."; - private const string SnapshotSuffix = ".Snapshot.props"; - - /// - /// Source usage data JSON file. - /// - [Required] - public string DataFile { get; set; } - - /// - /// A set of "PackageVersions.{repo}.Snapshot.props" files. They are analyzed to find - /// packages built during source-build, and which repo built them. This info is added to the - /// report. New packages are associated to a repo by going through each PVP in ascending - /// file modification order. - /// - public ITaskItem[] PackageVersionPropsSnapshots { get; set; } - - /// - /// Infos that associate packages to the ProdCon build they're from. - /// - /// %(PackageId): Identity of the package. - /// %(OriginBuildName): Name of the build that produced this package. - /// - public ITaskItem[] ProdConPackageInfos { get; set; } - - /// - /// Path to a ProdCon build manifest file (build.xml) as an alternative way to pass - /// ProdConPackageInfos items. - /// - public string ProdConBuildManifestFile { get; set; } - - /// - /// File containing the results of poisoning the prebuilts. Example format: - /// - /// MATCH: output built\dotnet-sdk-...\System.Collections.dll(hash 4b...31) matches one of: - /// intermediate\netstandard.library.2.0.1.nupkg\build\...\System.Collections.dll - /// - /// The usage report reads this file, looking for 'intermediate\*.nupkg' to annotate. - /// - public string PoisonedReportFile { get; set; } - - [Required] - public string OutputDirectory { get; set; } - - public override bool Execute() - { - UsageData data = UsageData.Parse(XElement.Parse(File.ReadAllText(DataFile))); - - IEnumerable sourceBuildRepoOutputs = GetSourceBuildRepoOutputs(); - - // Map package id to the build name that created them in a ProdCon build. - var prodConPackageOrigin = new Dictionary( - StringComparer.OrdinalIgnoreCase); - - foreach (ITaskItem item in ProdConPackageInfos.NullAsEmpty()) - { - AddProdConPackage( - prodConPackageOrigin, - item.GetMetadata("PackageId"), - item.GetMetadata("OriginBuildName")); - } - - if (File.Exists(ProdConBuildManifestFile)) - { - var xml = XElement.Parse(File.ReadAllText(ProdConBuildManifestFile)); - foreach (var x in xml.Descendants("Package")) - { - AddProdConPackage( - prodConPackageOrigin, - x.Attribute("Id")?.Value, - x.Attribute("OriginBuildName")?.Value); - } - } - - var poisonNupkgFilenames = new HashSet(StringComparer.OrdinalIgnoreCase); - - if (File.Exists(PoisonedReportFile)) - { - foreach (string line in File.ReadAllLines(PoisonedReportFile)) - { - string[] segments = line.Split('\\'); - if (segments.Length > 2 && - segments[0].Trim() == "intermediate" && - segments[1].EndsWith(".nupkg")) - { - poisonNupkgFilenames.Add(Path.GetFileNameWithoutExtension(segments[1])); - } - } - } - - var report = new XElement("AnnotatedUsages"); - - var annotatedUsages = data.Usages.NullAsEmpty() - .Select(usage => - { - string id = usage.PackageIdentity.Id; - string version = usage.PackageIdentity.Version.OriginalVersion; - - string pvpIdent = WritePackageVersionsProps.GetPropertyName(id, WritePackageVersionsProps.VersionPropertySuffix); - - var sourceBuildCreator = new StringBuilder(); - foreach (RepoOutput output in sourceBuildRepoOutputs) - { - foreach (PackageVersionPropsElement p in output.Built) - { - if (p.Name.Equals(pvpIdent, StringComparison.OrdinalIgnoreCase)) - { - if (sourceBuildCreator.Length != 0) - { - sourceBuildCreator.Append(" "); - } - sourceBuildCreator.Append(output.Repo); - sourceBuildCreator.Append(" "); - sourceBuildCreator.Append(p.Name); - sourceBuildCreator.Append("/"); - sourceBuildCreator.Append(p.Version); - } - } - } - - prodConPackageOrigin.TryGetValue(id, out string prodConCreator); - - return new AnnotatedUsage - { - Usage = usage, - - Project = data.ProjectDirectories - ?.FirstOrDefault(p => usage.AssetsFile?.StartsWith(p) ?? false), - - SourceBuildPackageIdCreator = sourceBuildCreator.Length == 0 - ? null - : sourceBuildCreator.ToString(), - - ProdConPackageIdCreator = prodConCreator, - - TestProjectByHeuristic = IsTestUsageByHeuristic(usage), - - EndsUpInOutput = poisonNupkgFilenames.Contains($"{id}.{version}") - }; - }) - .ToArray(); - - foreach (var onlyTestProjectUsage in annotatedUsages - .GroupBy(u => u.Usage.PackageIdentity) - .Where(g => g.All(u => u.TestProjectByHeuristic)) - .SelectMany(g => g)) - { - onlyTestProjectUsage.TestProjectOnlyByHeuristic = true; - } - - report.Add(annotatedUsages.Select(u => u.ToXml())); - - Directory.CreateDirectory(OutputDirectory); - - File.WriteAllText( - Path.Combine(OutputDirectory, "annotated-usage.xml"), - report.ToString()); - - return !Log.HasLoggedErrors; - } - - private RepoOutput[] GetSourceBuildRepoOutputs() - { - var pvpSnapshotFiles = PackageVersionPropsSnapshots.NullAsEmpty() - .Select(item => - { - var content = File.ReadAllText(item.ItemSpec); - return new - { - Path = item.ItemSpec, - Content = content, - Xml = XElement.Parse(content) - }; - }) - .OrderBy(snapshot => - { - // Get the embedded creation time if possible: the file's original metadata may - // have been destroyed by copying, zipping, etc. - string creationTime = snapshot.Xml - // Get all elements - .Elements() - // Select all the subelements - .SelectMany(e => e.Elements()) - // Find all that match the creation time property name - .Where(e => e.Name == snapshot.Xml.GetDefaultNamespace().GetName(WritePackageVersionsProps.CreationTimePropertyName)) - // There should be only one or zero - .SingleOrDefault()?.Value; - - if (string.IsNullOrEmpty(creationTime)) - { - Log.LogError($"No creation time property found in snapshot {snapshot.Path}"); - return default(DateTime); - } - - return new DateTime(long.Parse(creationTime)); - }) - .Select(snapshot => - { - string filename = Path.GetFileName(snapshot.Path); - return new - { - Repo = filename.Substring( - SnapshotPrefix.Length, - filename.Length - SnapshotPrefix.Length - SnapshotSuffix.Length), - PackageVersionProp = PackageVersionPropsElement.Parse(snapshot.Xml) - }; - }) - .ToArray(); - - return pvpSnapshotFiles.Skip(1) - .Zip(pvpSnapshotFiles, (pvp, prev) => new RepoOutput - { - Repo = prev.Repo, - Built = pvp.PackageVersionProp.Except(prev.PackageVersionProp).ToArray() - }) - .ToArray(); - } - - private void AddProdConPackage( - Dictionary packageOrigin, - string id, - string origin) - { - if (!string.IsNullOrEmpty(id) && - !string.IsNullOrEmpty(origin)) - { - packageOrigin[id] = origin; - } - } - - public static bool IsTestUsageByHeuristic(Usage usage) - { - string[] assetsFileParts = usage.AssetsFile?.Split('/', '\\'); - - // If the dir name ends in Test(s), it's probably a test project. - // Ignore the first two segments to avoid classifying everything in "src/vstest". - // This also catches "test" dirs that contain many test projects. - if (assetsFileParts?.Skip(2).Any(p => - p.EndsWith("Tests", StringComparison.OrdinalIgnoreCase) || - p.EndsWith("Test", StringComparison.OrdinalIgnoreCase)) == true) - { - return true; - } - - // CoreFX restores test dependencies during this sync project. - if (assetsFileParts?.Contains("XUnit.Runtime") == true) - { - return true; - } - - return false; - } - - private class RepoOutput - { - public string Repo { get; set; } - public PackageVersionPropsElement[] Built { get; set; } - } - - private struct PackageVersionPropsElement - { - public static PackageVersionPropsElement[] Parse(XElement xml) - { - return xml - // Get the first PropertyGroup. The second PropertyGroup is 'extra properties', and the third group is the creation time. - // Only select the first because the extra properties are not built packages. - .Elements() - .First() - // Get all *PackageVersion property elements. - .Elements() - .Select(x => new PackageVersionPropsElement( - x.Name.LocalName, - x.Nodes().OfType().First().Value)) - .ToArray(); - } - - public string Name { get; } - public string Version { get; } - - public PackageVersionPropsElement(string name, string version) - { - Name = name; - Version = version; - } - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/XmlParsingHelpers.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/XmlParsingHelpers.cs deleted file mode 100644 index c252e8def..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/UsageReport/XmlParsingHelpers.cs +++ /dev/null @@ -1,45 +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 NuGet.Packaging.Core; -using NuGet.Versioning; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Xml.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks.UsageReport -{ - internal static class XmlParsingHelpers - { - public static XElement ToXElement(this PackageIdentity ident) => new XElement( - "PackageIdentity", - new XAttribute("Id", ident.Id), - new XAttribute("Version", ident.Version.OriginalVersion)); - - public static XAttribute ToXAttributeIfNotNull(this object value, string name) => - value == null ? null : new XAttribute(name, value); - - public static XAttribute ToXAttributeIfTrue(this bool value, string name) => - value == false ? null : new XAttribute(name, value); - - public static PackageIdentity ParsePackageIdentity(XElement xml) => new PackageIdentity( - xml.Attribute("Id").Value, - NuGetVersion.Parse(xml.Attribute("Version").Value)); - - public static IOrderedEnumerable OrderByOrdinal( - this IEnumerable source, - Func selector) - { - return source.OrderBy(selector, StringComparer.Ordinal); - } - - public static IOrderedEnumerable ThenByOrdinal( - this IOrderedEnumerable source, - Func selector) - { - return source.ThenBy(selector, StringComparer.Ordinal); - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/WritePackageVersionsProps.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/WritePackageVersionsProps.cs deleted file mode 100644 index f17b4d6b3..000000000 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.UnifiedBuild.Tasks/WritePackageVersionsProps.cs +++ /dev/null @@ -1,315 +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 NuGet.Packaging; -using NuGet.Packaging.Core; -using NuGet.Versioning; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Xml; - -namespace Microsoft.DotNet.UnifiedBuild.Tasks -{ - public class VersionEntry - { - public string Name; - public NuGetVersion Version; - } - - /// - /// Creates a props file that is used as the input for a repo-level build. The props file - /// includes package version numbers that should be used by the repo build and additional special properties. - /// - /// There are two types of input props that can be written: - /// - Versions of union of all packages produced by the builds are added. (AllPackages) - /// - Only versions of packages that are listed as dependencies of a repo are added. (DependenciesOnly) - /// - /// The former represents the current way that source build works for most repos. The latter represents the desired - /// methodology (PVP Flow). PVP flow closely matches how the product is built in non-source-build mode. - /// - public class WritePackageVersionsProps : Microsoft.Build.Utilities.Task - { - private static readonly Regex InvalidElementNameCharRegex = new Regex(@"(^|[^A-Za-z0-9])(?.)"); - - public const string CreationTimePropertyName = "BuildOutputPropsCreationTime"; - public const string VersionPropertySuffix = "Version"; - private const string VersionPropertyAlternateSuffix = "PackageVersion"; - private const string PinnedAttributeName = "Pinned"; - private const string DependencyAttributeName = "Dependency"; - private const string NameAttributeName = "Name"; - - private const string AllPackagesVersionPropsFlowType = "AllPackages"; - private const string DependenciesOnlyVersionPropsFlowType = "DependenciesOnly"; - private const string DefaultVersionPropsFlowType = AllPackagesVersionPropsFlowType; - - /// - /// Set of input nuget package files to generate version properties for. - /// - public ITaskItem[] NuGetPackages { get; set; } - - /// - /// Set of packages built by dependencies of this repo during this build. - /// - /// %(Identity): Package identity. - /// %(Version): Package version. - /// - public ITaskItem[] KnownPackages { get; set; } - - /// - /// File where the version properties should be written. - /// - [Required] - public string OutputPath { get; set; } - - /// - /// Properties to add to the build output props, which may not exist as nupkgs. - /// For example, this is used to pass the version of the CLI toolset archives. - /// - /// %(Identity): Package identity. - /// %(Version): Package version. - /// - public ITaskItem[] ExtraProperties { 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. - /// If DependenciesOnly, then only those packages appearing as dependencies in - /// Version.Details.xml will show up. The VersionsDetails property must be set to a - /// valid Version.Details.xml path when DependenciesOnly is used. - /// - public string VersionPropsFlowType { get; set; } = DefaultVersionPropsFlowType; - - /// - /// If VersionPropsFlowType is set to DependenciesOnly, should be the path to the Version.Detail.xml file for the repo. - /// - public string VersionDetails { get; set; } - - /// - /// Retrieve the set of the dependencies from the repo's Version.Details.Xml file. - /// - /// Hash set of dependency names. - private HashSet GetDependences() - { - XmlDocument document = new XmlDocument(); - - try - { - document.Load(VersionDetails); - } - catch (Exception e) - { - Log.LogErrorFromException(e); - return null; - } - - HashSet dependencyNames = new HashSet(StringComparer.OrdinalIgnoreCase); - - // Load the nodes, filter those that are not pinned, and - XmlNodeList dependencyNodes = document.DocumentElement.SelectNodes($"//{DependencyAttributeName}"); - - foreach (XmlNode dependency in dependencyNodes) - { - if (dependency.NodeType == XmlNodeType.Comment || dependency.NodeType == XmlNodeType.Whitespace) - { - continue; - } - - bool isPinned = false; - XmlAttribute pinnedAttribute = dependency.Attributes[PinnedAttributeName]; - if (pinnedAttribute != null && !bool.TryParse(pinnedAttribute.Value, out isPinned)) - { - Log.LogError($"The '{PinnedAttributeName}' attribute is set but the value " + - $"'{pinnedAttribute.Value}' is not a valid boolean..."); - return null; - } - - if (isPinned) - { - continue; - } - - var name = dependency.Attributes[NameAttributeName]?.Value?.Trim(); - - if (string.IsNullOrEmpty(name)) - { - Log.LogError($"The '{NameAttributeName}' attribute must be specified."); - return null; - } - - dependencyNames.Add(name); - } - - return dependencyNames; - } - - /// - /// Filter a set of input dependencies to those that appear in - /// - /// Input set of entries - /// Set of dependencies - /// Set of that appears in - private IEnumerable FilterNonDependencies(IEnumerable input, HashSet dependencies) - { - return input.Where(entry => dependencies.Contains(entry.Name)); - } - - public override bool Execute() - { - if (VersionPropsFlowType != AllPackagesVersionPropsFlowType && - VersionPropsFlowType != DependenciesOnlyVersionPropsFlowType) - { - Log.LogError($"Valid version flow types are '{DependenciesOnlyVersionPropsFlowType}' and '{AllPackagesVersionPropsFlowType}'"); - return !Log.HasLoggedErrors; - } - - if (VersionPropsFlowType == DependenciesOnlyVersionPropsFlowType && (string.IsNullOrEmpty(VersionDetails) || !File.Exists(VersionDetails))) - { - Log.LogError($"When version flow type is DependenciesOnly, the VersionDetails task parameter must point to a valid path to the Version.Details.xml file for the repo. " + - $"Provided file path '{VersionDetails}' does not exist."); - return !Log.HasLoggedErrors; - } - - NuGetPackages ??= Array.Empty(); - KnownPackages ??= Array.Empty(); - - // First, obtain version information from the packages and additional assets that - // are provided. - var latestPackages = NuGetPackages - .Select(item => - { - using (var reader = new PackageArchiveReader(item.GetMetadata("FullPath"))) - { - return reader.GetIdentity(); - } - }) - .Select(identity => new VersionEntry() - { - Name = identity.Id, - Version = identity.Version - }); - - var knownPackages = KnownPackages - .Select(item => new VersionEntry() - { - Name = item.GetMetadata("Identity"), - Version = new NuGetVersion(item.GetMetadata("Version")) - }); - - // We may have multiple versions of the same package. We'll keep the latest one. - // This can even happen in the KnownPackages list, as a repo (such as source-build-reference-packages) - // may have multiple versions of the same package. - IEnumerable packageElementsToWrite = latestPackages.Concat(knownPackages) - .GroupBy(identity => identity.Name) - .Select(g => g.OrderByDescending(id => id.Version).First()) - .OrderBy(id => id.Name); - - // Then, if version flow type is "DependenciesOnly", filter those - // dependencies that do not appear in the version.details.xml file. - if (VersionPropsFlowType == DependenciesOnlyVersionPropsFlowType) - { - var dependencies = GetDependences(); - - if (Log.HasLoggedErrors) - { - return false; - } - - packageElementsToWrite = FilterNonDependencies(packageElementsToWrite, dependencies); - } - - Directory.CreateDirectory(Path.GetDirectoryName(OutputPath)); - - using (var outStream = File.Open(OutputPath, FileMode.Create)) - using (var sw = new StreamWriter(outStream, new UTF8Encoding(false))) - { - sw.WriteLine(@""); - - WriteVersionEntries(sw, packageElementsToWrite, "packages"); - WriteExtraProperties(sw); - - sw.WriteLine(@" "); - sw.WriteLine($@" <{CreationTimePropertyName}>{DateTime.UtcNow.Ticks}"); - sw.WriteLine(@" "); - - sw.WriteLine(@""); - } - - return !Log.HasLoggedErrors; - } - - /// - /// Write properties specified in the "ExtraProperties task parameter - /// - /// Stream writer - private void WriteExtraProperties(StreamWriter sw) - { - if (ExtraProperties == null) - { - return; - } - - sw.WriteLine(@" "); - sw.WriteLine(@" "); - - foreach (var extraProp in ExtraProperties ?? Enumerable.Empty()) - { - string propertyName = extraProp.GetMetadata("Identity"); - bool doNotOverwrite = false; - string overwriteCondition = string.Empty; - if (bool.TryParse(extraProp.GetMetadata("DoNotOverwrite"), out doNotOverwrite) && doNotOverwrite) - { - overwriteCondition = $" Condition=\"'$({propertyName})' == ''\""; - } - sw.WriteLine($" <{propertyName}{overwriteCondition}>{extraProp.GetMetadata("Version")}"); - } - - sw.WriteLine(@" "); - } - - /// - /// Write properties for the version numbers required for this repo. - /// - /// Stream writer - /// Version entries - private void WriteVersionEntries(StreamWriter sw, IEnumerable entries, string entryType) - { - if (!entries.Any()) - { - return; - } - - sw.WriteLine($" "); - if (VersionPropsFlowType == DependenciesOnlyVersionPropsFlowType) - { - sw.WriteLine(@" "); - } - sw.WriteLine(@" "); - foreach (var package in entries) - { - string propertyName = GetPropertyName(package.Name, VersionPropertySuffix); - string alternatePropertyName = GetPropertyName(package.Name, VersionPropertyAlternateSuffix); - - sw.WriteLine($" <{propertyName}>{package.Version}"); - sw.WriteLine($" <{alternatePropertyName}>{package.Version}"); - } - sw.WriteLine(@" "); - } - - public static string GetPropertyName(string id, string suffix) - { - string formattedId = InvalidElementNameCharRegex.Replace( - id, - match => match.Groups?["FirstPartChar"].Value.ToUpperInvariant() - ?? string.Empty); - - return $"{formattedId}{suffix}"; - } - } -} diff --git a/src/SourceBuild/content/eng/tools/tools.proj b/src/SourceBuild/content/eng/tools/tools.proj deleted file mode 100644 index df5292004..000000000 --- a/src/SourceBuild/content/eng/tools/tools.proj +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/global.json b/src/SourceBuild/content/global.json deleted file mode 100644 index 3c8e982cc..000000000 --- a/src/SourceBuild/content/global.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "tools": { - "dotnet": "9.0.100-preview.5.24253.16" - }, - "msbuild-sdks": { - "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.Build.Traversal": "3.4.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24253.1" - } -} diff --git a/src/SourceBuild/content/prep-source-build.sh b/src/SourceBuild/content/prep-source-build.sh deleted file mode 100755 index 97dd1d038..000000000 --- a/src/SourceBuild/content/prep-source-build.sh +++ /dev/null @@ -1,250 +0,0 @@ -#!/usr/bin/env bash - -### Usage: $0 -### -### Prepares the environment for a source build by downloading Private.SourceBuilt.Artifacts.*.tar.gz, -### installing the version of dotnet referenced in global.json, -### and detecting binaries and removing any non-SB allowed binaries. -### -### Options: -### --no-artifacts Exclude the download of the previously source-built artifacts archive -### --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.9-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 -### -### Binary-Tooling options: -### --no-binary-removal Don't remove non-SB allowed binaries -### --with-sdk Use the SDK in the specified directory -### Default is the .NET SDK -### --with-packages Specified directory to use as the source feed for packages -### Default is the previously source-built artifacts archive. - -set -euo pipefail -IFS=$'\n\t' - -source="${BASH_SOURCE[0]}" -REPO_ROOT="$( cd -P "$( dirname "$0" )" && pwd )" - -function print_help () { - sed -n '/^### /,/^$/p' "$source" | cut -b 5- -} - -# SB prep default arguments -defaultArtifactsRid='centos.9-x64' - -# Binary Tooling default arguments -defaultDotnetSdk="$REPO_ROOT/.dotnet" -defaultPackagesDir="$REPO_ROOT/prereqs/packages/previously-source-built" - -# SB prep arguments -buildBootstrap=true -downloadArtifacts=true -downloadPrebuilts=true -removeBinaries=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 - -# Binary Tooling arguments -dotnetSdk=$defaultDotnetSdk -packagesDir=$defaultPackagesDir - -positional_args=() -while :; do - if [ $# -le 0 ]; then - break - fi - lowerI="$(echo "$1" | awk '{print tolower($0)}')" - case $lowerI in - "-?"|-h|--help) - print_help - exit 0 - ;; - --no-bootstrap) - buildBootstrap=false - ;; - --no-artifacts) - downloadArtifacts=false - ;; - --no-prebuilts) - downloadPrebuilts=false - ;; - --no-sdk) - installDotnet=false - ;; - --artifacts-rid) - artifactsRid=$2 - ;; - --runtime-source-feed) - runtime_source_feed=$2 - shift - ;; - --runtime-source-feed-key) - runtime_source_feed_key=$2 - shift - ;; - --no-binary-removal) - removeBinaries=false - ;; - --with-sdk) - dotnetSdk=$2 - shift - ;; - --with-packages) - packagesDir=$2 - shift - ;; - *) - positional_args+=("$1") - ;; - esac - - shift -done - -# Attempting to bootstrap without an SDK will fail. So either the --no-sdk flag must be passed -# or a pre-existing .dotnet SDK directory must exist. -if [ "$buildBootstrap" == true ] && [ "$installDotnet" == false ] && [ ! -d "$REPO_ROOT/.dotnet" ]; then - echo " ERROR: --no-sdk requires --no-bootstrap or a pre-existing .dotnet SDK directory. Exiting..." - exit 1 -fi - -# Check to make sure curl exists to download the archive files -if ! command -v curl &> /dev/null -then - echo " ERROR: curl not found. Exiting..." - exit 1 -fi - -# Check if Private.SourceBuilt artifacts archive exists -artifactsBaseFileName="Private.SourceBuilt.Artifacts" -packagesArchiveDir="$REPO_ROOT/prereqs/packages/archive/" -if [ "$downloadArtifacts" == true ] && [ -f ${packagesArchiveDir}${artifactsBaseFileName}.*.tar.gz ]; then - echo " Private.SourceBuilt.Artifacts.*.tar.gz exists...it will not be downloaded" - downloadArtifacts=false -fi - -# Check if Private.SourceBuilt prebuilts archive exists -prebuiltsBaseFileName="Private.SourceBuilt.Prebuilts" -if [ "$downloadPrebuilts" == true ] && [ -f ${packagesArchiveDir}${prebuiltsBaseFileName}.*.tar.gz ]; then - echo " Private.SourceBuilt.Prebuilts.*.tar.gz exists...it will not be downloaded" - downloadPrebuilts=false -fi - -# Check if dotnet is installed -if [ "$installDotnet" == true ] && [ -d "$REPO_ROOT/.dotnet" ]; then - echo " ./.dotnet SDK directory exists...it will not be installed" - installDotnet=false; -fi - -function DownloadArchive { - archiveType="$1" - isRequired="$2" - artifactsRid="$3" - - packageVersionsPath="$REPO_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="(.*)" - if [[ $archiveVersionLine =~ $versionPattern ]]; then - 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 -f --retry 5 -O "$archiveUrl") - elif [ "$isRequired" == true ]; then - echo " ERROR: $notFoundMessage" - exit 1 - else - echo " $notFoundMessage" - fi -} - -function BootstrapArtifacts { - DOTNET_SDK_PATH="$REPO_ROOT/.dotnet" - - # Create working directory for running bootstrap project - workingDir=$(mktemp -d) - echo " Building bootstrap previously source-built in $workingDir" - - # Copy bootstrap project to working dir - cp "$REPO_ROOT/eng/bootstrap/buildBootstrapPreviouslySB.csproj" "$workingDir" - - # Copy NuGet.config from the installer repo to have the right feeds - cp "$REPO_ROOT/src/installer/NuGet.config" "$workingDir" - - # Get PackageVersions.props from existing prev-sb archive - echo " Retrieving PackageVersions.props from existing archive" - sourceBuiltArchive=$(find "$packagesArchiveDir" -maxdepth 1 -name 'Private.SourceBuilt.Artifacts*.tar.gz') - if [ -f "$sourceBuiltArchive" ]; then - tar -xzf "$sourceBuiltArchive" -C "$workingDir" PackageVersions.props - fi - - # Run restore on project to initiate download of bootstrap packages - "$DOTNET_SDK_PATH/dotnet" restore "$workingDir/buildBootstrapPreviouslySB.csproj" /bl:artifacts/log/prep-bootstrap.binlog /fileLoggerParameters:LogFile=artifacts/log/prep-bootstrap.log /p:ArchiveDir="$packagesArchiveDir" /p:BootstrapOverrideVersionsProps="$REPO_ROOT/eng/bootstrap/OverrideBootstrapVersions.props" - - # Remove working directory - rm -rf "$workingDir" -} - -# Check for the version of dotnet to install -if [ "$installDotnet" == true ]; then - echo " Installing dotnet..." - use_installed_dotnet_cli=false - (source ./eng/common/tools.sh && InitializeDotNetCli true) -fi - -# Read the eng/Versions.props to get the archives to download and download them -if [ "$downloadArtifacts" == true ]; then - DownloadArchive Artifacts true $artifactsRid - if [ "$buildBootstrap" == true ]; then - BootstrapArtifacts - fi -fi - -if [ "$downloadPrebuilts" == true ]; then - DownloadArchive Prebuilts false $artifactsRid -fi - -if [ "$removeBinaries" == true ]; then - - # If --with-packages is not passed, unpack PSB artifacts - if [[ $packagesDir == $defaultPackagesDir ]]; then - sourceBuiltArchive=$(find "$packagesArchiveDir" -maxdepth 1 -name 'Private.SourceBuilt.Artifacts*.tar.gz') - - if [ ! -d "$packagesDir" ] && [ -f "$sourceBuiltArchive" ]; then - echo " Unpacking Private.SourceBuilt.Artifacts.*.tar.gz into $packagesDir" - mkdir -p "$packagesDir" - tar -xzf "$sourceBuiltArchive" -C "$packagesDir" - elif [ ! -f "$packagesDir/PackageVersions.props" ] && [ -f "$sourceBuiltArchive" ]; then - echo " Creating $packagesDir/PackageVersions.props..." - tar -xzf "$sourceBuiltArchive" -C "$packagesDir" PackageVersions.props - elif [ ! -f "$sourceBuiltArchive" ]; then - echo " ERROR: Private.SourceBuilt.Artifacts.*.tar.gz does not exist..."\ - "Cannot remove non-SB allowed binaries. Either pass --with-packages or download the artifacts." - exit 1 - fi - fi - - "$REPO_ROOT/eng/detect-binaries.sh" \ - --clean \ - --allowed-binaries-file "$REPO_ROOT/eng/allowed-sb-binaries.txt" \ - --with-packages $packagesDir \ - --with-sdk $dotnetSdk \ - -fi \ No newline at end of file diff --git a/src/SourceBuild/content/prereqs/keys/Newtonsoft.Json.snk b/src/SourceBuild/content/prereqs/keys/Newtonsoft.Json.snk deleted file mode 100644 index c26e9e4ea..000000000 Binary files a/src/SourceBuild/content/prereqs/keys/Newtonsoft.Json.snk and /dev/null differ diff --git a/src/SourceBuild/content/prereqs/keys/NuGet.Client.snk b/src/SourceBuild/content/prereqs/keys/NuGet.Client.snk deleted file mode 100644 index 695f1b387..000000000 Binary files a/src/SourceBuild/content/prereqs/keys/NuGet.Client.snk and /dev/null differ diff --git a/src/SourceBuild/content/prereqs/keys/README.md b/src/SourceBuild/content/prereqs/keys/README.md deleted file mode 100644 index d83cf9491..000000000 --- a/src/SourceBuild/content/prereqs/keys/README.md +++ /dev/null @@ -1,13 +0,0 @@ -This directory contains the public key portion of keys used by different -projects so we can public sign (also known as OSS signing) assemblies that need -to be signed to have the correct strong name. - -These are used for projects which full sign their assemblies and don't have keys -checked in. - -To extract a key, take an existing built binary for a project (e.g. download a -nupkg from NuGet.org and then unpack one of the assemblies from it) and use `sn`: - -``` -sn -e -``` diff --git a/src/SourceBuild/content/prereqs/packages/archive/_ b/src/SourceBuild/content/prereqs/packages/archive/_ deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/prereqs/packages/prebuilt/_ b/src/SourceBuild/content/prereqs/packages/prebuilt/_ deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.props b/src/SourceBuild/content/repo-projects/Directory.Build.props deleted file mode 100644 index e7f24d4ec..000000000 --- a/src/SourceBuild/content/repo-projects/Directory.Build.props +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - $(MSBuildProjectName) - $(GitInfoDir)$(RepositoryName).props - true - false - - true - - - - - - - netstandard2.0 - true - - $([MSBuild]::NormalizeDirectory('$(SrcDir)', '$(RepositoryName)')) - - - $([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'PackageVersions')) - $(PackageVersionsDir)PackageVersions.$(RepositoryName).props - $(PackageVersionsDir)PackageVersions.$(RepositoryName).Current.props - $(PackageVersionsDir)PackageVersions.$(RepositoryName).Previous.props - $(PackageVersionsDir)PackageVersions.$(RepositoryName).Snapshot.props - DependenciesOnly - - $(ProjectDirectory)global.json - $(ProjectDirectory)NuGet.config - $(ProjectDirectory)NuGet.Config - - $(NuGetConfigFile) - - $(BaseIntermediateOutputPath)$([System.IO.Path]::GetFileName('$(OriginalNuGetConfigFile)')) - - $([MSBuild]::NormalizeDirectory('$(AssetManifestsIntermediateDir)', '$(RepositoryName)')) - $([MSBuild]::NormalizeDirectory('$(IntermediateSymbolsRootDir)', '$(RepositoryName)')) - - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'source-built-sdks')) - - source-build-reference-package-cache - source-built- - - - $([MSBuild]::ValueOrDefault('$(ARCADE_BOOTSTRAP_VERSION)', '$(ArcadeSdkVersion)')) - - - - - - 0 - - - -- - false - - - - - $([MSBuild]::NormalizePath('$(ProjectDirectory)', 'eng', 'common', 'build$(ShellExtension)')) - - $(FlagParameterPrefix)restore - $(BuildActions) $(FlagParameterPrefix)build - $(BuildActions) $(FlagParameterPrefix)pack - $(BuildActions) $(FlagParameterPrefix)publish - - - $(FlagParameterPrefix)ci - $(BuildArgs) $(FlagParameterPrefix)configuration $(Configuration) - $(BuildArgs) -bl - $(BuildArgs) /p:DotNetBuildRepo=true - - $(BuildArgs) /p:DotNetBuildOrchestrator=true - $(BuildArgs) /p:CrossBuild=true - - $(BuildArgs) /p:DotNetBuildTests=true - $(BuildArgs) /p:RestoreConfigFile=$(NuGetConfigFile) - - $(BuildArgs) /p:SourceBuildUseMonoRuntime=$(SourceBuildUseMonoRuntime) - - $(BuildArgs) /p:SourceBuiltAssetsDir=$(ArtifactsAssetsDir) - $(BuildArgs) /p:SourceBuiltAssetManifestsDir=$(RepoAssetManifestsDir) - - - - $(BuildArgs) /p:SourceBuiltSymbolsDir=$(IntermediateSymbolsRepoDir) - $(BuildArgs) /p:ArcadeBuildFromSource=true - $(BuildArgs) /p:DotNetBuildSourceOnly=true - $(BuildArgs) /p:PreviouslySourceBuiltNupkgCacheDir="$(PrebuiltSourceBuiltPackagesPath)" - $(BuildArgs) /p:ReferencePackageNupkgCacheDir="$(ReferencePackagesDir)" - - - - $(FlagParameterPrefix)restore - $(TestActions) $(FlagParameterPrefix)test - - $(FlagParameterPrefix)ci - $(TestArgs) $(FlagParameterPrefix)configuration $(Configuration) - $(TestArgs) /bl:artifacts/log/$(Configuration)/Test.binlog - - $(BuildScript) $(TestActions) $(TestArgs) - - - - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'msbuild-debug')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'roslyn-debug')) - - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'aspnet-debug')) - $(AspNetRazorBuildServerLogDir)razor-build-server.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - source - 30000001-1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/Directory.Build.targets b/src/SourceBuild/content/repo-projects/Directory.Build.targets deleted file mode 100644 index 54b694996..000000000 --- a/src/SourceBuild/content/repo-projects/Directory.Build.targets +++ /dev/null @@ -1,796 +0,0 @@ - - - - - - $(BuildArgs) /p:UseInnerClone=true - $(BuildArgs) /p:CopySrcInsteadOfClone=true - $(BuildArgs) /p:CopyWipIntoInnerSourceBuildRepo=true - - - - - $(BuildArgs) $(FlagParameterPrefix)msbuildEngine dotnet - - $([MSBuild]::NormalizeDirectory('$(ArtifactsShippingPackagesDir)', '$(RepositoryName)')) - $(ReferencePackagesDir) - $([MSBuild]::NormalizeDirectory('$(ArtifactsNonShippingPackagesDir)', '$(RepositoryName)')) - $(ReferencePackagesDir) - - $(BuildArgs) /p:SourceBuiltShippingPackagesDir=$(RepoArtifactsShippingPackagesDir) - - $(BuildArgs) /p:SourceBuiltNonShippingPackagesDir=$(RepoArtifactsNonShippingPackagesDir.TrimEnd('\')) - - - - $(BuildScript) $(BuildActions) $(BuildArgs) - - - $(ArtifactsLogDir)$(RepositoryName).log - $(BuildInParallel) - - $(PackageReportDir)prebuilt-usage.xml - $(PackageReportDir)all-project-assets-json-files.zip - $(PackageReportDir)prodcon-build.xml - - - - - - <_TransitiveRepositoryReference Include="@(RepositoryReference)" /> - - - - - - - - - <_TransitiveRepositoryReference Include="@(_DependencyTransitiveRepositoryReference)" - RemoveMetadata="MSBuildSourceProjectFile;MSBuildSourceTargetName;OriginalItemSpec" /> - - - - - - - - - - - - - - - $(SourceBuiltSourceNamePrefix)%(Identity) - $(SourceBuiltSourceNamePrefix)transport-%(Identity) - $(ArtifactsShippingPackagesDir)/%(Identity)/ - $(ArtifactsNonShippingPackagesDir)/%(Identity)/ - - - - - - - - - - - - - - - - - - - - - - - - - ExtraSources - $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'source-build-reference-packages', 'src')) - - - - prebuilt - previously-source-built - reference-packages - - - - <_CommonBuildSources Include="@(DependentRepoSourceName)" /> - <_CommonBuildSources Include="$(ExtraSourcesNuGetSourceName)" Condition="'$(ExtraRestoreSourcePath)' != ''" /> - - - - - true - net-sdk-supporting-feed - https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json - - - - <_BuildSources Include="$(PrebuiltNuGetSourceName);$(PreviouslySourceBuiltNuGetSourceName);$(ReferencePackagesNuGetSourceName)" - Condition="'$(DotNetBuildSourceOnly)' == 'true'"/> - <_BuildSources Include="@(_CommonBuildSources)" /> - <_BuildSources Include="$(NetSdkSupportingFeedName)" - Condition="'$(AddNetSdkSupportingFeed)' == 'true'" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_PossibleCliVersionJsonPath Include="sdk:version" /> - <_PossibleCliVersionJsonPath Include="tools:dotnet" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - <_PreviouslyBuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg" /> - - - - - - <_VersionDetailsXml Condition="'$(PackageVersionPropsFlowType)' == 'DependenciesOnly'">$(ProjectDirectory)/eng/Version.Details.xml - - - - - - - - - - - - - - - - - - -]]> - - - - - - - - - - - - - - - - - - - <_DependentProject Include="@(TransitiveRepositoryReference -> '%(Identity).proj')" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(BuildCommand) - $(FullCommand) /v:$(LogVerbosity) - $(FullCommand) > $(RepoConsoleLogFile) 2>&1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_InnerPackageCacheFiles Include="$(ProjectDirectory)artifacts/sb/package-cache/**/*" /> - - - - - - - - - - - - $([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildLogs')) - $([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildObj')) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ToolPackagesRoot>$(RepoArtifactsNonShippingPackagesDir) - - - - <_ToolPackage - Condition="'%(BuiltSdkPackageOverride.Version)' == ''" - Include="$(_ToolPackagesRoot)%(BuiltSdkPackageOverride.Identity)*.nupkg" - Exclude="$(_ToolPackagesRoot)%(BuiltSdkPackageOverride.Identity)*.symbols.nupkg" - Id="%(BuiltSdkPackageOverride.Identity)" /> - <_ToolPackage - Condition="'%(BuiltSdkPackageOverride.Version)' != ''" - Include="$(_ToolPackagesRoot)%(BuiltSdkPackageOverride.Identity).%(BuiltSdkPackageOverride.Version).nupkg" - Exclude="$(_ToolPackagesRoot)%(BuiltSdkPackageOverride.Identity).%(BuiltSdkPackageOverride.Version).symbols.nupkg" - Id="%(BuiltSdkPackageOverride.Identity)" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $([System.String]::Copy(%(Filename)).ToLowerInvariant()) - - - - $([System.String]::Copy(%(Filename)).ToLowerInvariant()) - - - - - - - - - - - - - - - - - false - - - - - - - - - - false - true - - - - - - - - - - - - - - - - - - - - - - - - - <_NextIndent>$(DependencyGraphIndent)__ - - - - - - - - - - - <_DependencyGraphString>@(_DependencyGraphString, '') - <_LineBreak>%0a - $(DependencyGraphIndent)-_$(RepositoryName)$(_LineBreak)$(_DependencyGraphString) - - - - diff --git a/src/SourceBuild/content/repo-projects/arcade.proj b/src/SourceBuild/content/repo-projects/arcade.proj deleted file mode 100644 index ac63070a2..000000000 --- a/src/SourceBuild/content/repo-projects/arcade.proj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - true - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/aspire.proj b/src/SourceBuild/content/repo-projects/aspire.proj deleted file mode 100644 index e7a7534b1..000000000 --- a/src/SourceBuild/content/repo-projects/aspire.proj +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/SourceBuild/content/repo-projects/aspnetcore.proj b/src/SourceBuild/content/repo-projects/aspnetcore.proj deleted file mode 100644 index 007f9a643..000000000 --- a/src/SourceBuild/content/repo-projects/aspnetcore.proj +++ /dev/null @@ -1,60 +0,0 @@ - - - - - $(ProjectDirectory)eng\build$(ShellExtension) - - $(FlagParameterPrefix)restore $(FlagParameterPrefix)all $(FlagParameterPrefix)pack $(FlagParameterPrefix)publish - - $(BuildActions) -NativeToolsOnMachine - - $(BuildActions) $(FlagParameterPrefix)no-build-java - - $(BuildArgs) $(FlagParameterPrefix)arch $(TargetArchitecture) - false - - true - - - - $(BuildArgs) /p:PortableBuild=$(PortableBuild) - $(BuildArgs) /p:TargetRuntimeIdentifier=$(TargetRid) - $(BuildArgs) $(FlagParameterPrefix)no-build-repo-tasks - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/cecil.proj b/src/SourceBuild/content/repo-projects/cecil.proj deleted file mode 100644 index 9deac728b..000000000 --- a/src/SourceBuild/content/repo-projects/cecil.proj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/command-line-api.proj b/src/SourceBuild/content/repo-projects/command-line-api.proj deleted file mode 100644 index 6526536ab..000000000 --- a/src/SourceBuild/content/repo-projects/command-line-api.proj +++ /dev/null @@ -1,17 +0,0 @@ - - - - true - - $(BuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg) - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/deployment-tools.proj b/src/SourceBuild/content/repo-projects/deployment-tools.proj deleted file mode 100644 index 6c1a944fa..000000000 --- a/src/SourceBuild/content/repo-projects/deployment-tools.proj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/diagnostics.proj b/src/SourceBuild/content/repo-projects/diagnostics.proj deleted file mode 100644 index 9deac728b..000000000 --- a/src/SourceBuild/content/repo-projects/diagnostics.proj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/dotnet.proj b/src/SourceBuild/content/repo-projects/dotnet.proj deleted file mode 100644 index 25d66b251..000000000 --- a/src/SourceBuild/content/repo-projects/dotnet.proj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - true - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/efcore.proj b/src/SourceBuild/content/repo-projects/efcore.proj deleted file mode 100644 index 6813e941e..000000000 --- a/src/SourceBuild/content/repo-projects/efcore.proj +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/emsdk.proj b/src/SourceBuild/content/repo-projects/emsdk.proj deleted file mode 100644 index 284971d4c..000000000 --- a/src/SourceBuild/content/repo-projects/emsdk.proj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - $(ProjectDirectory)build$(ShellExtension) - - $(BuildArgs) /p:PackageRid=$(TargetRid) - $(BuildArgs) /p:AssetManifestOS=$(TargetOS) - $(BuildArgs) /p:PlatformName=$(TargetArchitecture) - $(BuildArgs) /p:ForceBuildManifestOnly=true - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/fsharp.proj b/src/SourceBuild/content/repo-projects/fsharp.proj deleted file mode 100644 index 049ce263c..000000000 --- a/src/SourceBuild/content/repo-projects/fsharp.proj +++ /dev/null @@ -1,33 +0,0 @@ - - - - true - - - $(ProjectDirectory)build$(ShellExtension) - - - $(FlagParameterPrefix)pack $(FlagParameterPrefix)publish - - $(BuildArgs) /p:TreatWarningsAsErrors=false - $(BuildArgs) /p:GenerateResourceUsePreserializedResources=true - - - $(BuildArgs) $(FlagParameterPrefix)sourcebuild $(FlagParameterPrefix)tfm $(NetCurrent) /p:SourceBuildBootstrapTfm=$(NetCurrent) - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/installer.proj b/src/SourceBuild/content/repo-projects/installer.proj deleted file mode 100644 index 39098c28d..000000000 --- a/src/SourceBuild/content/repo-projects/installer.proj +++ /dev/null @@ -1,88 +0,0 @@ - - - - - $(ProjectDirectory)build$(ShellExtension) - - - $(FlagParameterPrefix)pack $(FlagParameterPrefix)publish - - - $(BuildArgs) /p:NETCoreAppMaximumVersion=99.9 - - $(BuildArgs) /p:OSName=$(TargetRid.Substring(0, $(TargetRid.IndexOf("-")))) - $(BuildArgs) /p:PortableOSName=$(__PortableTargetOS) - $(BuildArgs) /p:Rid=$(TargetRid) - $(BuildArgs) /p:Architecture=$(TargetArchitecture) - $(BuildArgs) /p:DOTNET_INSTALL_DIR=$(DotNetRoot) - - $(BuildArgs) /p:AspNetCoreInstallerRid=$(TargetRid) - - $(BuildArgs) /p:PortableBuild=true - $(BuildArgs) /p:NetRuntimeRid=$(TargetRid) - - $(BuildArgs) /p:SkipBuildingInstallers=true - - $(BuildArgs) /p:PublicBaseURL=file:%2F%2F$(ArtifactsAssetsDir) - - $(BuildArgs) /p:FallbackPublicBaseURL=https://dotnetbuilds.blob.core.windows.net/public/ - $(BuildArgs) /p:UsePortableLinuxSharedFramework=false - - $(BuildArgs) /p:PgoInstrument=true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/msbuild.proj b/src/SourceBuild/content/repo-projects/msbuild.proj deleted file mode 100644 index e50e9d761..000000000 --- a/src/SourceBuild/content/repo-projects/msbuild.proj +++ /dev/null @@ -1,25 +0,0 @@ - - - - true - - $(BuildArgs) $(FlagParameterPrefix)v $(LogVerbosity) - $(BuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg) - - $(BuildArgs) /p:EnableNgenOptimization=false - - $(BuildArgs) /p:UsingToolMicrosoftNetCompilers=false - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/nuget-client.proj b/src/SourceBuild/content/repo-projects/nuget-client.proj deleted file mode 100644 index 0e3c3a4bc..000000000 --- a/src/SourceBuild/content/repo-projects/nuget-client.proj +++ /dev/null @@ -1,33 +0,0 @@ - - - - $(KeysDir)NuGet.Client.snk - true - - - - - $([MSBuild]::NormalizePath('$(ProjectDirectory)', 'eng', 'dotnet-build', 'build$(ShellExtension)')) - - $(BuildArgs) /p:GenerateResourceUsePreserializedResources=true - - false - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/razor.proj b/src/SourceBuild/content/repo-projects/razor.proj deleted file mode 100644 index cdd00ec7c..000000000 --- a/src/SourceBuild/content/repo-projects/razor.proj +++ /dev/null @@ -1,20 +0,0 @@ - - - - - $(BuildArgs) /p:UsingToolMicrosoftNetCompilers=false - - $(BuildArgs) /p:TargetRid=$(TargetRid) - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/roslyn-analyzers.proj b/src/SourceBuild/content/repo-projects/roslyn-analyzers.proj deleted file mode 100644 index 57c6b4a5c..000000000 --- a/src/SourceBuild/content/repo-projects/roslyn-analyzers.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - true - - $(BuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg) - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/roslyn.proj b/src/SourceBuild/content/repo-projects/roslyn.proj deleted file mode 100644 index 2f26b633c..000000000 --- a/src/SourceBuild/content/repo-projects/roslyn.proj +++ /dev/null @@ -1,48 +0,0 @@ - - - - true - - - $(FlagParameterPrefix)restore - $(BuildActions) $(FlagParameterPrefix)pack - $(BuildActions) $(FlagParameterPrefix)publish - - - $(ProjectDirectory)build$(ShellExtension) - - - $(BuildArgs) $(FlagParameterPrefix)officialBuildId $(OfficialBuildId) - $(BuildArgs) $(FlagParameterPrefix)officialSkipTests true - $(BuildArgs) $(FlagParameterPrefix)officialSkipApplyOptimizationData true - $(BuildArgs) $(FlagParameterPrefix)officialSourceBranchName placeholder - $(BuildArgs) $(FlagParameterPrefix)officialVisualStudioDropAccessToken placeholder - $(BuildArgs) /p:TargetRid=$(TargetRid) - $(BuildArgs) /p:TreatWarningsAsErrors=false - $(BuildArgs) /p:ApplyPartialNgenOptimization=false - $(BuildArgs) /p:EnablePartialNgenOptimization=false - $(BuildArgs) /p:PublishWindowsPdb=false - - - $(BuildArgs) /p:UsingToolMicrosoftNetCompilers=false - - $(BuildArgs) /p:EnableNgenOptimization=false - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/runtime.proj b/src/SourceBuild/content/repo-projects/runtime.proj deleted file mode 100644 index ac7bde27b..000000000 --- a/src/SourceBuild/content/repo-projects/runtime.proj +++ /dev/null @@ -1,56 +0,0 @@ - - - - true - - <_platformIndex>$(NETCoreSdkRuntimeIdentifier.LastIndexOf('-')) - $(NETCoreSdkRuntimeIdentifier.Substring(0, $(_platformIndex))) - - <_platformIndex>$(NETCoreSdkPortableRuntimeIdentifier.LastIndexOf('-')) - $(NETCoreSdkPortableRuntimeIdentifier.Substring(0, $(_platformIndex)))-$(TargetArchitecture) - - - $(ProjectDirectory)build$(ShellExtension) - - $(BuildArgs) $(FlagParameterPrefix)arch $(TargetArchitecture) - $(BuildArgs) $(FlagParameterPrefix)os $(TargetOS) - $(BuildArgs) /p:TargetRid=$(TargetRid) - $(BuildArgs) /p:RuntimeOS=$(RuntimeOS) - $(BuildArgs) /p:BaseOS=$(BaseOS) - $(BuildArgs) /p:DotNetBuildRuntimeWasmEnableThreads=true - $(BuildArgs) /p:DotNetBuildRuntimeNativeAOTRuntimePack=true - $(BuildArgs) /p:DotNetBuildMonoEnableLLVM=$(DotNetBuildMonoEnableLLVM) - $(BuildArgs) /p:DotNetBuildMonoAOTEnableLLVM=$(DotNetBuildMonoAOTEnableLLVM) - $(BuildArgs) /p:DotNetBuildMonoBundleLLVMOptimizer=$(DotNetBuildMonoBundleLLVMOptimizer) - $(BuildArgs) $(FlagParameterPrefix)pgoinstrument - - - - true - false - - $(BuildArgs) /p:PortableBuild=$(PortableBuild) - $(BuildArgs) /p:SourceBuildNonPortable=$(BuildNonPortable) - $(BuildArgs) /p:UsingToolMicrosoftNetCompilers=false - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/scenario-tests.proj b/src/SourceBuild/content/repo-projects/scenario-tests.proj deleted file mode 100644 index 383fb57ba..000000000 --- a/src/SourceBuild/content/repo-projects/scenario-tests.proj +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - false - - $([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'scenario-tests')) - $([MSBuild]::NormalizeDirectory('$(ArtifactsTestResultsDir)', 'scenario-tests')) - <_ScenarioTestsNuGetConfig>$(ScenarioTestsArtifactsDir)NuGet.config - <_InstallerNuGetConfig>$([MSBuild]::NormalizePath('$(SrcDir)', 'installer', 'NuGet.config')) - - - - - - - - - - - - <_CurrentDateTime>$([System.DateTime]::Now.ToString("yyyy-MM-dd_HH_mm_ss")) - <_TestXmlOutputPath>$(ScenarioTestsResultsDir)$(_CurrentDateTime).xml - <_ScenarioTestsAdditionalArgs>--xml $(_TestXmlOutputPath) --target-rid $(TargetRid) --no-cleanup --no-traits Category=MultiTFM - - - <_TestRoot>$(ScenarioTestsArtifactsDir)artifacts/ - - - <_DotNetTool>$(DotNetSdkExtractDir)$([System.IO.Path]::GetFileName('$(DotNetTool)')) - - - - - - <_ScenarioTestEnvVars Include=" - TestRoot=$(_TestRoot); - DotNetRoot=$(DotNetSdkExtractDir); - TestSdkVersion=$(SourceBuiltSdkVersion); - AdditionalTestArgs=$(_ScenarioTestsAdditionalArgs); - DotNetTool=$(_DotNetTool); - _InitializeDotNetCli=$(DotNetSdkExtractDir)" /> - - - - - - diff --git a/src/SourceBuild/content/repo-projects/sdk.proj b/src/SourceBuild/content/repo-projects/sdk.proj deleted file mode 100644 index f70c992d3..000000000 --- a/src/SourceBuild/content/repo-projects/sdk.proj +++ /dev/null @@ -1,42 +0,0 @@ - - - - true - - $(BuildArgs) -nativeToolsOnMachine - $(BuildArgs) /p:PackageProjectUrl=https://github.com/dotnet/sdk - $(BuildArgs) /p:PortableRid=$(PortableRid) - $(BuildArgs) /p:TargetRid=$(TargetRid) - - - $(BuildArgs) /p:NativeAotSupported=false - $(BuildArgs) $(FlagParameterPrefix)v $(LogVerbosity) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/source-build-externals.proj b/src/SourceBuild/content/repo-projects/source-build-externals.proj deleted file mode 100644 index 023a6739c..000000000 --- a/src/SourceBuild/content/repo-projects/source-build-externals.proj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - true - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/source-build-reference-packages.proj b/src/SourceBuild/content/repo-projects/source-build-reference-packages.proj deleted file mode 100644 index 063856e8a..000000000 --- a/src/SourceBuild/content/repo-projects/source-build-reference-packages.proj +++ /dev/null @@ -1,34 +0,0 @@ - - - - - true - - - true - - $(ArtifactsObjDir)source-build-reference-package-cache - - $(BuildArgs) /p:MicrosoftNetCoreIlasmPackageRuntimeId=$(NETCoreSdkRuntimeIdentifier) - $(BuildArgs) /p:LocalNuGetPackageCacheDirectory=$(LocalNuGetPackageCacheDirectory) - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/sourcelink.proj b/src/SourceBuild/content/repo-projects/sourcelink.proj deleted file mode 100644 index 6e6127664..000000000 --- a/src/SourceBuild/content/repo-projects/sourcelink.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - true - - - AllPackages - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/symreader.proj b/src/SourceBuild/content/repo-projects/symreader.proj deleted file mode 100644 index 9deac728b..000000000 --- a/src/SourceBuild/content/repo-projects/symreader.proj +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/templating.proj b/src/SourceBuild/content/repo-projects/templating.proj deleted file mode 100644 index 82538bf0d..000000000 --- a/src/SourceBuild/content/repo-projects/templating.proj +++ /dev/null @@ -1,20 +0,0 @@ - - - - true - - $(BuildArgs) $(FlagParameterPrefix)v $(LogVerbosity) - $(BuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg) - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/test-templates.proj b/src/SourceBuild/content/repo-projects/test-templates.proj deleted file mode 100644 index 64bf44782..000000000 --- a/src/SourceBuild/content/repo-projects/test-templates.proj +++ /dev/null @@ -1,15 +0,0 @@ - - - - true - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/vstest.proj b/src/SourceBuild/content/repo-projects/vstest.proj deleted file mode 100644 index 856aa8e46..000000000 --- a/src/SourceBuild/content/repo-projects/vstest.proj +++ /dev/null @@ -1,20 +0,0 @@ - - - - true - - $(BuildArgs) /p:SemanticVersioningV1=true - - - - - - - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/windowsdesktop.proj b/src/SourceBuild/content/repo-projects/windowsdesktop.proj deleted file mode 100644 index 411025935..000000000 --- a/src/SourceBuild/content/repo-projects/windowsdesktop.proj +++ /dev/null @@ -1,17 +0,0 @@ - - - - true - - $(BuildArgs) $(FlagParameterPrefix)v $(LogVerbosity) - $(BuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg) - - $(BuildArgs) /p:TargetArchitecture=$(TargetArchitecture) - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/winforms.proj b/src/SourceBuild/content/repo-projects/winforms.proj deleted file mode 100644 index 9981d3347..000000000 --- a/src/SourceBuild/content/repo-projects/winforms.proj +++ /dev/null @@ -1,15 +0,0 @@ - - - - true - - $(BuildArgs) $(FlagParameterPrefix)v $(LogVerbosity) - $(BuildArgs) $(FlagParameterPrefix)NativeToolsOnMachine - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/wpf.proj b/src/SourceBuild/content/repo-projects/wpf.proj deleted file mode 100644 index b19d0c95e..000000000 --- a/src/SourceBuild/content/repo-projects/wpf.proj +++ /dev/null @@ -1,18 +0,0 @@ - - - - true - false - - $(BuildArgs) $(FlagParameterPrefix)v $(LogVerbosity) - $(BuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg) - - $(BuildArgs) /p:Platform=$(TargetArchitecture) - - - - - - - - diff --git a/src/SourceBuild/content/repo-projects/xdt.proj b/src/SourceBuild/content/repo-projects/xdt.proj deleted file mode 100644 index 6083e10b0..000000000 --- a/src/SourceBuild/content/repo-projects/xdt.proj +++ /dev/null @@ -1,11 +0,0 @@ - - - - true - - - - - - - diff --git a/src/SourceBuild/content/src/Directory.Build.props b/src/SourceBuild/content/src/Directory.Build.props deleted file mode 100644 index d88986f1e..000000000 --- a/src/SourceBuild/content/src/Directory.Build.props +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/src/SourceBuild/content/src/Directory.Build.targets b/src/SourceBuild/content/src/Directory.Build.targets deleted file mode 100644 index 0e594c6ed..000000000 --- a/src/SourceBuild/content/src/Directory.Build.targets +++ /dev/null @@ -1,6 +0,0 @@ - - - - - diff --git a/src/SourceBuild/content/src/Directory.Packages.props b/src/SourceBuild/content/src/Directory.Packages.props deleted file mode 100644 index 10c05fd99..000000000 --- a/src/SourceBuild/content/src/Directory.Packages.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - - false - - - diff --git a/src/SourceBuild/content/test/Directory.Build.props b/src/SourceBuild/content/test/Directory.Build.props deleted file mode 100644 index 12ee09caa..000000000 --- a/src/SourceBuild/content/test/Directory.Build.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - - $([MSBuild]::NormalizeDirectory('$(RestorePackagesPath)', 'tests')) - - - - - - enable - $(ArtifactsTestResultsDir) - - - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs deleted file mode 100644 index d4dd073ce..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ArtifactsSizeTest.cs +++ /dev/null @@ -1,216 +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.Linq; -using System.Collections; -using System.Collections.Generic; -using System.Text.RegularExpressions; -using System.Formats.Tar; -using System.Text; -using System.Threading.Tasks; -using TestUtilities; -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 Baseline = new(); - private Dictionary FilePathCountMap = new(); - private StringBuilder Differences = 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); - Baseline[splitEntry[0]] = long.Parse(splitEntry[1]); - } - } - else - { - Assert.Fail($"Baseline file `{BaselineFilePath}' does not exist. Please create the baseline file then rerun the test."); - } - } - - [ConditionalFact(typeof(Config), nameof(Config.IncludeArtifactsSizeTests))] - public void CompareArtifactsToBaseline() - { - Assert.False(string.IsNullOrWhiteSpace(Config.SourceBuiltArtifactsPath)); - Assert.False(string.IsNullOrWhiteSpace(Config.SdkTarballPath)); - - var tarEntries = ProcessSdkAndArtifactsTarballs(); - ScanForDifferences(tarEntries); - UpdateBaselineFile(); - - // Must wait to report differences until after the baseline file is updated else a failure - // will cause the baseline file to not be updated. - ReportDifferences(); - } - - private Dictionary ProcessSdkAndArtifactsTarballs() - { - string tempTarballDir = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); - Directory.CreateDirectory(tempTarballDir); - - Utilities.ExtractTarball(Config.SdkTarballPath!, tempTarballDir, OutputHelper); - Utilities.ExtractTarball(Config.SourceBuiltArtifactsPath!, tempTarballDir, OutputHelper); - - Dictionary tarEntries = Directory.EnumerateFiles(tempTarballDir, "*", SearchOption.AllDirectories) - .Where(filePath => !filePath.Contains("SourceBuildReferencePackages")) - .Select(filePath => - { - string relativePath = filePath.Substring(tempTarballDir.Length + 1); - return (ProcessFilePath(relativePath), new FileInfo(filePath).Length); - }) - .ToDictionary(tuple => tuple.Item1, tuple => tuple.Item2); - - 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 ScanForDifferences(Dictionary tarEntries) - { - foreach (var entry in tarEntries) - { - if (!Baseline.TryGetValue(entry.Key, out long baselineBytes)) - { - TrackDifference($"{entry.Key} does not exist in baseline. It is {entry.Value} bytes. Adding it to the baseline file."); - Baseline.Add(entry.Key, entry.Value); - } - else - { - CompareFileSizes(entry.Key, entry.Value, baselineBytes); - } - } - - foreach (var removedFile in Baseline.Keys.Except(tarEntries.Keys)) - { - TrackDifference($"`{removedFile}` is no longer being produced. It was {Baseline[removedFile]} bytes."); - Baseline.Remove(removedFile); - } - } - - private void CompareFileSizes(string filePath, long fileSize, long baselineSize) - { - // Only update the baseline with breaking differences. Non-breaking differences are file size changes - // less than the threshold percentage. This makes it easier to review the breaking changes and prevents - // inadvertently allowing small percentage changes to be accepted that can add up to a significant - // difference over time. - string breakingDifference = string.Empty; - - if (fileSize == 0 && baselineSize != 0) - { - breakingDifference = $"'{filePath}' is now 0 bytes. It was {baselineSize} bytes."; - } - else if (fileSize != 0 && baselineSize == 0) - { - breakingDifference = $"'{filePath}' is no longer 0 bytes. It is now {fileSize} bytes."; - } - else if (baselineSize != 0 && (((fileSize - baselineSize) / (double)baselineSize) * 100) >= SizeThresholdPercentage) - { - breakingDifference = - $"'{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) - { - breakingDifference = - $"'{filePath}' decreased in size by more than {SizeThresholdPercentage}%. It was originally {baselineSize} bytes and is now {fileSize} bytes."; - } - - if (!string.IsNullOrEmpty(breakingDifference)) - { - TrackDifference(breakingDifference); - Baseline[filePath] = fileSize; - } - } - - private void TrackDifference(string difference) => Differences.AppendLine(difference); - - private void ReportDifferences() - { - if (Differences.Length > 0) - { - if (Config.WarnOnSdkContentDiffs) - { - OutputHelper.LogWarningMessage(Differences.ToString()); - } - else - { - OutputHelper.WriteLine(Differences.ToString()); - Assert.Fail("Differences were found in the artifacts sizes."); - } - } - } - - private void UpdateBaselineFile() - { - try - { - string actualFilePath = Path.Combine(Config.LogsDirectory, $"UpdatedArtifactsSizes_{Config.TargetRid}.txt"); - File.WriteAllLines( - actualFilePath, - Baseline - .OrderBy(kvp => kvp.Key) - .Select(kvp => $"{kvp.Key}: {kvp.Value}")); - } - catch (IOException ex) - { - throw new InvalidOperationException($"An error occurred while copying the baselines file: {BaselineFilePath}", ex); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs deleted file mode 100644 index d9a355c2b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs +++ /dev/null @@ -1,135 +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.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; -using Microsoft.Extensions.FileSystemGlobbing; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests -{ - internal class BaselineHelper - { - 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) - { - IEnumerable baseline = File.ReadAllLines(GetBaselineFilePath(baselineFileName)); - string[] missingEntries = actualEntries.Except(baseline).ToArray(); - string[] extraEntries = baseline.Except(actualEntries).ToArray(); - - string? message = null; - if (missingEntries.Length > 0) - { - message = $"Missing entries in '{baselineFileName}' baseline: {Environment.NewLine}{string.Join(Environment.NewLine, missingEntries)}{Environment.NewLine}{Environment.NewLine}"; - } - - if (extraEntries.Length > 0) - { - message += $"Extra entries in '{baselineFileName}' baseline: {Environment.NewLine}{string.Join(Environment.NewLine, extraEntries)}{Environment.NewLine}{Environment.NewLine}"; - } - - Assert.Null(message); - } - - public static void CompareBaselineContents(string baselineFileName, string actualContents, ITestOutputHelper outputHelper, bool warnOnDiffs = false, string baselineSubDir = "") - { - string actualFilePath = Path.Combine(Config.LogsDirectory, $"Updated{baselineFileName}"); - File.WriteAllText(actualFilePath, actualContents); - - CompareFiles(GetBaselineFilePath(baselineFileName, baselineSubDir), actualFilePath, outputHelper, warnOnDiffs); - } - - public static void CompareFiles(string expectedFilePath, string actualFilePath, ITestOutputHelper outputHelper, bool warnOnDiffs = false) - { - string baselineFileText = File.ReadAllText(expectedFilePath).Trim(); - string actualFileText = File.ReadAllText(actualFilePath).Trim(); - - string? message = null; - - if (baselineFileText != actualFileText) - { - // Retrieve a diff in order to provide a UX which calls out the diffs. - string diff = DiffFiles(expectedFilePath, actualFilePath, outputHelper); - string prefix = warnOnDiffs ? "##vso[task.logissue type=warning;]" : string.Empty; - message = $"{Environment.NewLine}{prefix}Expected file '{expectedFilePath}' does not match actual file '{actualFilePath}`. {Environment.NewLine}" - + $"{diff}{Environment.NewLine}"; - - if (warnOnDiffs) - { - outputHelper.WriteLine(message); - outputHelper.WriteLine("##vso[task.complete result=SucceededWithIssues;]"); - } - } - - if (!warnOnDiffs) - { - Assert.Null(message); - } - } - - public static string DiffFiles(string file1Path, string file2Path, ITestOutputHelper outputHelper) - { - (Process Process, string StdOut, string StdErr) diffResult = - ExecuteHelper.ExecuteProcess("git", $"diff --no-index {file1Path} {file2Path}", outputHelper); - - return diffResult.StdOut; - } - - public static string GetAssetsDirectory() => Path.Combine(Directory.GetCurrentDirectory(), "assets"); - - 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-]+)*))?(?=[/.-])"); - return semanticVersionRegex.Replace(result, SemanticVersionPlaceholder); - } - - /// - /// This returns a that can be used to match on a path whose versions have been removed via - /// . - /// - public static Matcher GetFileMatcherFromPath(string path) - { - path = path - .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 deleted file mode 100644 index eb15bfb9b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BasicScenarioTests.cs +++ /dev/null @@ -1,44 +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.Collections.Generic; -using System.Linq; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -/// -/// Basic project create, build, run, publish scenario tests. -/// for related web scenarios. -/// They are encapsulated in a separate testclass so that they can be run in parallel. -/// -public class BasicScenarioTests : SdkTests -{ - public BasicScenarioTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - [Theory] - [MemberData(nameof(GetScenarioObjects))] - public void VerifyScenario(TestScenario scenario) => scenario.Execute(DotNetHelper); - - public static IEnumerable GetScenarioObjects() => GetScenarios().Select(scenario => new object[] { scenario }); - - public static IEnumerable GetScenarios() - { - // Since this has to be a static method, we don't have access to XUnit's output helper. So we use our own version as a placeholder. - DotNetHelper helper = new(new DebugTestOutputHelper()); - - foreach (DotNetLanguage language in Enum.GetValues()) - { - yield return new(nameof(BasicScenarioTests), language, DotNetTemplate.Console, - // R2R is not supported on Mono (see https://github.com/dotnet/runtime/issues/88419#issuecomment-1623762676) - DotNetActions.Build | DotNetActions.Run | (DotNetHelper.ShouldPublishComplex() ? DotNetActions.PublishComplex : DotNetActions.None) | (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); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs deleted file mode 100644 index 01e96604b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs +++ /dev/null @@ -1,39 +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.Runtime.Versioning; - -[assembly:UnsupportedOSPlatform("windows")] - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -internal static class Config -{ - const string ConfigSwitchPrefix = "Microsoft.DotNet.SourceBuild.SmokeTests."; - - public static string DotNetDirectory => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(DotNetDirectory))! ?? throw new InvalidOperationException("DotNetDirectory must be specified"); - public static string PortableRid => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(PortableRid))! ?? throw new InvalidOperationException("Portable RID must be specified"); - public static string TargetRid => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(TargetRid))! ?? throw new InvalidOperationException("Target RID must be specified"); - public static string LogsDirectory => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(LogsDirectory))! ?? throw new InvalidOperationException("Logs directory must be specified"); - - public static string? CustomPackagesPath => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(CustomPackagesPath))!; - public static bool ExcludeOmniSharpTests => bool.TryParse((string)AppContext.GetData(ConfigSwitchPrefix + nameof(ExcludeOmniSharpTests))!, out bool excludeOmniSharpTests) && excludeOmniSharpTests; - public static bool IncludeArtifactsSizeTests => bool.TryParse((string)AppContext.GetData(ConfigSwitchPrefix + nameof(IncludeArtifactsSizeTests))!, out bool includeArtifactsSizeTests) && includeArtifactsSizeTests; - public static string? LicenseScanPath => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(LicenseScanPath))!; - public static string? MsftSdkTarballPath => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(MsftSdkTarballPath))!; - public static string? PoisonReportPath => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(PoisonReportPath))!; - public static string? PrereqsPath => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(PrereqsPath))!; - public static string? SdkTarballPath => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(SdkTarballPath))!; - public static string? SourceBuiltArtifactsPath => (string)AppContext.GetData(ConfigSwitchPrefix + nameof(SourceBuiltArtifactsPath))!; - public static bool WarnOnLicenseScanDiffs => bool.TryParse((string)AppContext.GetData(ConfigSwitchPrefix + nameof(WarnOnLicenseScanDiffs))!, out bool warnOnLicenseScanDiffs) && warnOnLicenseScanDiffs; - public static bool WarnOnSdkContentDiffs => bool.TryParse((string)AppContext.GetData(ConfigSwitchPrefix + nameof(WarnOnSdkContentDiffs))!, out bool warnOnSdkContentDiffs) && warnOnSdkContentDiffs; - - // Indicates whether the tests are being run in the context of a CI pipeline - public static bool RunningInCI => !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("DOTNET_CI")) || - !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("AGENT_OS")); - - public static string TargetArchitecture => TargetRid.Split('-')[1]; -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTestOutputHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTestOutputHelper.cs deleted file mode 100644 index 503233e21..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTestOutputHelper.cs +++ /dev/null @@ -1,21 +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.Diagnostics; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -internal class DebugTestOutputHelper : ITestOutputHelper -{ - public void WriteLine(string message) - { - Debug.WriteLine(message); - } - - public void WriteLine(string format, params object[] args) - { - Debug.WriteLine(format, args); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs deleted file mode 100644 index c556b0e90..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DebugTests.cs +++ /dev/null @@ -1,122 +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.Linq; -using System.Text; -using System.Text.RegularExpressions; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public class DebugTests : SdkTests -{ - private record ScanResult(string FileName, bool HasDebugInfo, bool HasDebugAbbrevs, bool HasFileSymbols, bool HasGnuDebugLink); - - public DebugTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - /// - /// Verifies that all generated native files include native debug symbols. - /// - [Fact] - public void SourceBuiltSdkContainsNativeDebugSymbols() - { - - var fileNames = Directory.EnumerateFiles(Config.DotNetDirectory, "*", SearchOption.AllDirectories); - var foundIssue = false; - StringBuilder issueDetails = new(); - foreach (var fileName in fileNames) - { - if (!IsElfFile(fileName)) - { - continue; - } - - var result = ScanFile(fileName); - - string newLine = Environment.NewLine; - - if (!result.HasDebugInfo) - { - foundIssue = true; - issueDetails.Append($"missing .debug_info section in {fileName}{newLine}"); - } - if (!result.HasDebugAbbrevs) - { - foundIssue = true; - issueDetails.Append($"missing .debug_abbrev section in {fileName}{newLine}"); - } - if (!result.HasFileSymbols) - { - foundIssue = true; - issueDetails.Append($"missing FILE symbols in {fileName}{newLine}"); - } - if (result.HasGnuDebugLink) - { - foundIssue = true; - issueDetails.Append($"unexpected .gnu_debuglink section in {fileName}{newLine}"); - } - } - - Assert.False(foundIssue, issueDetails.ToString()); - } - - private bool IsElfFile(string fileName) - { - string fileStdOut = ExecuteHelper.ExecuteProcessValidateExitCode("file", $"{fileName}", OutputHelper); - return Regex.IsMatch(fileStdOut, @"ELF 64-bit [LM]SB (?:pie )?(?:executable|shared object)"); - } - - private ScanResult ScanFile(string fileName) - { - string readelfSStdOut = ExecuteHelper.ExecuteProcessValidateExitCode("eu-readelf", $"-S {fileName}", OutputHelper); - - // Test for .debug_* sections in the shared object. This is the main test. - // Stripped objects will not contain these. - - bool hasDebugInfo = readelfSStdOut - .Split("\n") - .Where(line => line.Contains("] .debug_info")) - .Any(); - - bool hasDebugAbbrev = readelfSStdOut.Split("\n") - .Where(line => line.Contains("] .debug_abbrev")) - .Any(); - - string readelfsStdOut = ExecuteHelper.ExecuteProcessValidateExitCode("eu-readelf", $"-s {fileName}", OutputHelper); - - // Test FILE symbols. These will most likely be removed by anyting that - // manipulates symbol tables because it's generally useless. So a nice test - // that nothing has messed with symbols. - bool hasFileSymbols = readelfsStdOut.Split("\n").Where(ContainsFileSymbols).Any(); - - // Test that there are no .gnu_debuglink sections pointing to another - // debuginfo file. There shouldn't be any debuginfo files, so the link makes - // no sense either. - bool hasGnuDebuglink = readelfsStdOut.Split("\n").Where(line => line.Contains("] .gnu_debuglink")).Any(); - - return new ScanResult(fileName, hasDebugInfo, hasDebugAbbrev, hasFileSymbols, hasGnuDebuglink); - } - - private bool ContainsFileSymbols(string line) - { - // Try matching against output like this: - // 10: 0000000000000000 0 FILE LOCAL DEFAULT ABS coreclr_resolver.cpp - // 779: 0000000000000000 0 FILE LOCAL DEFAULT ABS header.cpp - - var parts = new Regex(@"[ \t\n\r]+").Split(line); - int expectedNumberOfParts = 9; - - if (parts.Length < expectedNumberOfParts) - { - return false; - } - - var fileNameRegex = new Regex(@"(.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx)"); - return (parts[3] == "0") && (parts[4] == "FILE") && (parts[5] == "LOCAL") && (parts[6] == "DEFAULT") && - (parts[7] == "ABS") && (fileNameRegex.IsMatch(parts[8])); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Directory.Build.props b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Directory.Build.props deleted file mode 100644 index afe77d3a8..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Directory.Build.props +++ /dev/null @@ -1,10 +0,0 @@ - - - - - true - - - - - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetActions.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetActions.cs deleted file mode 100644 index 18ae4fffb..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetActions.cs +++ /dev/null @@ -1,21 +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; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -[Flags] -public enum DotNetActions -{ - None = 0, - Build = 1, - Run = 2, - RunWeb = 4, - Publish = 8, - PublishSelfContained = 16, - PublishComplex = 32, - PublishR2R = 64, - Test = 128, -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs deleted file mode 100644 index 566b6b1a2..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetFormatTests.cs +++ /dev/null @@ -1,44 +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.IO; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public class DotNetFormatTests : SdkTests -{ - private const string TestFileName = "FormatTest.cs"; - private const string UnformattedFileName = "FormatTestUnformatted.cs"; - private const string ExpectedFormattedFileName = "FormatTestFormatted.cs"; - - public DotNetFormatTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - /// - /// Format an unformatted project and verify that the output matches the pre-computed solution. - /// - [Fact] - public void FormatProject() - { - if (DotNetHelper.IsMonoRuntime) - { - // TODO: Temporarily disabled due to https://github.com/dotnet/sdk/issues/37774 - return; - } - - string unformattedCsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), UnformattedFileName); - - string projectDirectory = DotNetHelper.ExecuteNew("console", nameof(FormatProject), "C#"); - - string projectFilePath = Path.Combine(projectDirectory, nameof(FormatProject) + ".csproj"); - string testFilePath = Path.Combine(projectDirectory, TestFileName); - - File.Copy(unformattedCsFilePath, testFilePath); - - DotNetHelper.ExecuteCmd($"format {projectFilePath}"); - - BaselineHelper.CompareFiles(BaselineHelper.GetBaselineFilePath(ExpectedFormattedFileName), testFilePath, OutputHelper); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs deleted file mode 100644 index f2c2b695b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs +++ /dev/null @@ -1,345 +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.Diagnostics; -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Net.Sockets; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -internal class DotNetHelper -{ - private static readonly object s_lockObj = new(); - - public static string DotNetPath { get; } = Path.Combine(Config.DotNetDirectory, "dotnet"); - public static string PackagesDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "packages"); - public static string ProjectsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), $"projects-{DateTime.Now:yyyyMMddHHmmssffff}"); - - private ITestOutputHelper OutputHelper { get; } - public bool IsMonoRuntime { get; } - - public DotNetHelper(ITestOutputHelper outputHelper) - { - OutputHelper = outputHelper; - - lock (s_lockObj) - { - if (!Directory.Exists(Config.DotNetDirectory)) - { - if (!File.Exists(Config.SdkTarballPath)) - { - throw new InvalidOperationException($"Tarball path '{Config.SdkTarballPath}' specified in {Config.SdkTarballPath} does not exist."); - } - - Directory.CreateDirectory(Config.DotNetDirectory); - Utilities.ExtractTarball(Config.SdkTarballPath, Config.DotNetDirectory, outputHelper); - } - IsMonoRuntime = DetermineIsMonoRuntime(Config.DotNetDirectory); - - if (!Directory.Exists(ProjectsDirectory)) - { - Directory.CreateDirectory(ProjectsDirectory); - InitNugetConfig(); - } - - if (!Directory.Exists(PackagesDirectory)) - { - Directory.CreateDirectory(PackagesDirectory); - } - } - } - - private static void InitNugetConfig() - { - bool useLocalPackages = !string.IsNullOrEmpty(Config.PrereqsPath); - string nugetConfigPrefix = useLocalPackages ? "local" : "online"; - string nugetConfigPath = Path.Combine(ProjectsDirectory, "NuGet.Config"); - File.Copy( - Path.Combine(BaselineHelper.GetAssetsDirectory(), $"{nugetConfigPrefix}.NuGet.Config"), - nugetConfigPath); - - if (useLocalPackages) - { - // When using local packages this feed is always required. It contains packages that are - // not produced by source-build but are required by the various project templates. - if (!Directory.Exists(Config.PrereqsPath)) - { - throw new InvalidOperationException( - $"Prereqs path '{Config.PrereqsPath}' specified via /p:SmokeTestsPrereqsPath='...' does not exist."); - } - - string nugetConfig = File.ReadAllText(nugetConfigPath); - nugetConfig = nugetConfig.Replace("SMOKE_TEST_PACKAGE_FEED", Config.PrereqsPath); - - // This package feed is optional. You can use an additional feed of source-built packages to run the - // smoke-tests as offline as possible. - if (Config.CustomPackagesPath != null) - { - if (!Directory.Exists(Config.CustomPackagesPath)) - { - throw new ArgumentException($"Specified --with-packages {Config.CustomPackagesPath} does not exist."); - } - nugetConfig = nugetConfig.Replace("CUSTOM_PACKAGE_FEED", Config.CustomPackagesPath); - } - else - { - nugetConfig = string.Join(Environment.NewLine, nugetConfig.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).Where(s => !s.Contains("CUSTOM_PACKAGE_FEED")).ToArray()); - } - File.WriteAllText(nugetConfigPath, nugetConfig); - } - } - - public void ExecuteCmd(string args, string? workingDirectory = null, Action? processConfigCallback = null, - int? expectedExitCode = 0, int millisecondTimeout = -1) - { - (Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess( - DotNetPath, - args, - OutputHelper, - configureCallback: (process) => configureProcess(process, workingDirectory), - millisecondTimeout: millisecondTimeout); - - if (expectedExitCode != null) { - ExecuteHelper.ValidateExitCode(executeResult, (int) expectedExitCode); - } - - void configureProcess(Process process, string? workingDirectory) - { - ConfigureProcess(process, workingDirectory); - - processConfigCallback?.Invoke(process); - } - } - - public static void ConfigureProcess(Process process, string? workingDirectory) - { - if (workingDirectory != null) - { - process.StartInfo.WorkingDirectory = workingDirectory; - } - - process.StartInfo.EnvironmentVariables["DOTNET_CLI_TELEMETRY_OPTOUT"] = "1"; - process.StartInfo.EnvironmentVariables["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = "1"; - process.StartInfo.EnvironmentVariables["DOTNET_ROOT"] = Config.DotNetDirectory; - process.StartInfo.EnvironmentVariables["NUGET_PACKAGES"] = PackagesDirectory; - process.StartInfo.EnvironmentVariables["PATH"] = $"{Config.DotNetDirectory}:{Environment.GetEnvironmentVariable("PATH")}"; - // Don't use the repo infrastructure - process.StartInfo.EnvironmentVariables["ImportDirectoryBuildProps"] = "false"; - process.StartInfo.EnvironmentVariables["ImportDirectoryBuildTargets"] = "false"; - process.StartInfo.EnvironmentVariables["ImportDirectoryPackagesProps"] = "false"; - } - - public void ExecuteBuild(string projectName) => - ExecuteCmd($"build {GetBinLogOption(projectName, "build")}", GetProjectDirectory(projectName)); - - /// - /// Create a new .NET project and return the path to the created project folder. - /// - public string ExecuteNew(string projectType, string name, string? language = null, string? customArgs = null) - { - string projectDirectory = GetProjectDirectory(name); - string options = $"--name {name} --output {projectDirectory}"; - if (language != null) - { - options += $" --language \"{language}\""; - } - if (string.IsNullOrEmpty(customArgs)) - { - options += $" {customArgs}"; - } - - ExecuteCmd($"new {projectType} {options}"); - - return projectDirectory; - } - - public void ExecutePublish(string projectName, DotNetTemplate template, bool? selfContained = null, string? rid = null, bool trimmed = false, bool readyToRun = false) - { - string options = string.Empty; - string binlogDifferentiator = string.Empty; - - if (selfContained.HasValue) - { - options += $"--self-contained {selfContained.Value.ToString().ToLowerInvariant()}"; - if (selfContained.Value) - { - binlogDifferentiator += "self-contained"; - if (!string.IsNullOrEmpty(rid)) - { - options += $" -r {rid}"; - binlogDifferentiator += $"-{rid}"; - } - if (trimmed) - { - options += " /p:PublishTrimmed=true"; - binlogDifferentiator += "-trimmed"; - } - if (readyToRun) - { - options += " /p:PublishReadyToRun=true"; - binlogDifferentiator += "-R2R"; - } - } - } - - string projDir = GetProjectDirectory(projectName); - string publishDir = Path.Combine(projDir, "bin", "publish"); - - ExecuteCmd( - $"publish {options} {GetBinLogOption(projectName, "publish", binlogDifferentiator)} -o {publishDir}", - projDir); - - if (template == DotNetTemplate.Console) - { - ExecuteCmd($"{projectName}.dll", publishDir, expectedExitCode: 0); - } - else if (template == DotNetTemplate.ClassLib || template == DotNetTemplate.BlazorWasm) - { - // Can't run the published output of classlib (no entrypoint) or WASM (needs a server) - } - // Assume it is a web-based template - else - { - ExecuteWebDll(projectName, publishDir, template); - } - } - - public void ExecuteRun(string projectName) => - ExecuteCmd($"run {GetBinLogOption(projectName, "run")}", GetProjectDirectory(projectName)); - - public void ExecuteRunWeb(string projectName, DotNetTemplate template) - { - // 'dotnet run' exit code differs between CoreCLR and Mono (https://github.com/dotnet/sdk/issues/30095). - int expectedExitCode = IsMonoRuntime ? 143 : 0; - - ExecuteWeb( - projectName, - $"run --no-launch-profile {GetBinLogOption(projectName, "run")}", - GetProjectDirectory(projectName), - template, - expectedExitCode); - } - - public void ExecuteWebDll(string projectName, string workingDirectory, DotNetTemplate template) => - ExecuteWeb(projectName, $"{projectName}.dll", workingDirectory, template, expectedExitCode: 0); - - public void ExecuteTest(string projectName) => - ExecuteCmd($"test {GetBinLogOption(projectName, "test")}", GetProjectDirectory(projectName)); - - private void ExecuteWeb(string projectName, string args, string workingDirectory, DotNetTemplate template, int expectedExitCode) - { - WebAppValidator validator = new(OutputHelper, template); - ExecuteCmd( - args, - workingDirectory, - processConfigCallback: validator.Validate, - expectedExitCode: expectedExitCode, - millisecondTimeout: 30000); - Assert.True(validator.IsValidated); - if (validator.ValidationException is not null) - { - throw validator.ValidationException; - } - } - - private static string GetBinLogOption(string projectName, string command, string? differentiator = null) - { - string fileName = $"{projectName}-{command}"; - if (!string.IsNullOrEmpty(differentiator)) - { - fileName += $"-{differentiator}"; - } - - return $"/bl:{Path.Combine(Config.LogsDirectory, $"{fileName}.binlog")}"; - } - - private static bool DetermineIsMonoRuntime(string dotnetRoot) - { - string sharedFrameworkRoot = Path.Combine(dotnetRoot, "shared", "Microsoft.NETCore.App"); - if (!Directory.Exists(sharedFrameworkRoot)) - { - return false; - } - - string? version = Directory.GetDirectories(sharedFrameworkRoot).FirstOrDefault(); - if (version is null) - { - return false; - } - - string sharedFramework = Path.Combine(sharedFrameworkRoot, version); - - // Check the presence of one of the mono header files. - return File.Exists(Path.Combine(sharedFramework, "mono-gc.h")); - } - - private static string GetProjectDirectory(string projectName) => Path.Combine(ProjectsDirectory, projectName); - - public static bool ShouldPublishComplex() => - !string.Equals(Config.TargetArchitecture,"ppc64le") && !string.Equals(Config.TargetArchitecture,"s390x"); - - private class WebAppValidator - { - private readonly ITestOutputHelper _outputHelper; - private readonly DotNetTemplate _template; - - public WebAppValidator(ITestOutputHelper outputHelper, DotNetTemplate template) - { - _outputHelper = outputHelper; - _template = template; - } - - public bool IsValidated { get; set; } - public Exception? ValidationException { get; set; } - - private static int GetAvailablePort() - { - TcpListener listener = new(IPAddress.Loopback, 0); - listener.Start(); - int port = ((IPEndPoint)listener.LocalEndpoint).Port; - listener.Stop(); - return port; - } - - public void Validate(Process process) - { - int port = GetAvailablePort(); - process.StartInfo.EnvironmentVariables.Add("ASPNETCORE_HTTP_PORTS", port.ToString()); - process.OutputDataReceived += new DataReceivedEventHandler((sender, e) => - { - try - { - if (e.Data?.Contains("Application started. Press Ctrl+C to shut down.") ?? false) - { - _outputHelper.WriteLine("Detected app has started. Sending web request to validate..."); - - using HttpClient httpClient = new(); - string url = $"http://localhost:{port}"; - if (_template == DotNetTemplate.WebApi) - { - url += "/WeatherForecast"; - } - - using HttpResponseMessage resultMsg = httpClient.GetAsync(new Uri(url)).Result; - _outputHelper.WriteLine($"Status code returned: {resultMsg.StatusCode}"); - resultMsg.EnsureSuccessStatusCode(); - IsValidated = true; - - ExecuteHelper.ExecuteProcessValidateExitCode("kill", $"-s TERM {process.Id}", _outputHelper); - } - } - catch (Exception ex) - { - ValidationException = ex; - } - }); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetLanguage.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetLanguage.cs deleted file mode 100644 index a26bb869c..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetLanguage.cs +++ /dev/null @@ -1,12 +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. - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public enum DotNetLanguage -{ - CSharp, - FSharp, - VB -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetLanguageExtensions.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetLanguageExtensions.cs deleted file mode 100644 index 6dddd8178..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetLanguageExtensions.cs +++ /dev/null @@ -1,18 +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; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public static class DotNetLanguageExtensions -{ - public static string ToCliName(this DotNetLanguage language) => language switch - { - DotNetLanguage.CSharp => "C#", - DotNetLanguage.FSharp => "F#", - DotNetLanguage.VB => "VB", - _ => throw new NotImplementedException() - }; -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetTemplate.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetTemplate.cs deleted file mode 100644 index 0a30c7215..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetTemplate.cs +++ /dev/null @@ -1,21 +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. - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public enum DotNetTemplate -{ - Console, - ClassLib, - XUnit, - NUnit, - MSTest, - Web, - Mvc, - Razor, - BlazorWasm, - WebApi, - WebApp, - Worker, -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetTemplateExtensions.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetTemplateExtensions.cs deleted file mode 100644 index 55b050ebf..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetTemplateExtensions.cs +++ /dev/null @@ -1,20 +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; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public static class DotNetTemplateExtensions -{ - public static string GetName(this DotNetTemplate template) => Enum.GetName(template)?.ToLowerInvariant() ?? throw new NotSupportedException(); - - public static bool IsAspNetCore(this DotNetTemplate template) => - template == DotNetTemplate.Web - || template == DotNetTemplate.Mvc - || template == DotNetTemplate.WebApi - || template == DotNetTemplate.Razor - || template == DotNetTemplate.BlazorWasm - || template == DotNetTemplate.Worker; -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs deleted file mode 100644 index 0687aa838..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetWatchTests.cs +++ /dev/null @@ -1,65 +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.Diagnostics; -using System.IO; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public class DotNetWatchTests : SdkTests -{ - public DotNetWatchTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - [Fact] - public void WatchTests() - { - if (DotNetHelper.IsMonoRuntime) - { - // TODO: Temporarily disabled due to https://github.com/dotnet/sdk/issues/37774 - return; - } - - string projectDirectory = DotNetHelper.ExecuteNew(DotNetTemplate.Console.GetName(), nameof(DotNetWatchTests)); - bool outputChanged = false; - - DotNetHelper.ExecuteCmd( - "watch run --non-interactive", - workingDirectory: projectDirectory, - processConfigCallback: processConfigCallback, - expectedExitCode: null, // The exit code does not reflect whether or not dotnet watch is working properly - millisecondTimeout: 60000); - - Assert.True(outputChanged); - - void processConfigCallback(Process process) - { - const string waitingString = "Waiting for a file to change before restarting dotnet..."; - const string expectedString = "Hello from dotnet watch!"; - - bool fileChanged = false; - - process.OutputDataReceived += new DataReceivedEventHandler((sender, e) => - { - if (e.Data?.Contains(waitingString) ?? false) - { - if (!fileChanged) { - OutputHelper.WriteLine("Program started, changing file on disk to trigger restart..."); - File.WriteAllText( - Path.Combine(projectDirectory, "Program.cs"), - File.ReadAllText(Path.Combine(projectDirectory, "Program.cs")).Replace("Hello, World!", expectedString)); - fileChanged = true; - } - } - else if (e.Data?.Contains(expectedString) ?? false) - { - outputChanged = true; - OutputHelper.WriteLine("Successfully re-ran program after code change."); - process.Kill(true); - } - }); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExclusionsHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExclusionsHelper.cs deleted file mode 100644 index fe270c225..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExclusionsHelper.cs +++ /dev/null @@ -1,170 +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.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using Microsoft.Extensions.FileSystemGlobbing; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -internal class ExclusionsHelper -{ - private const string NullSuffix = "NULL_SUFFIX"; - - private readonly string _exclusionsFileName; - - // Use this to narrow down the scope of exclusions to a specific category. - // For instance, setting this to "test-templates" will consider - // "src/test-templates/exclusions.txt" but not "src/arcade/exclusions.txt". - private readonly Regex? _exclusionRegex; - - private readonly Dictionary> _suffixToExclusions; - - private readonly Dictionary> _suffixToUnusedExclusions; - - public ExclusionsHelper(string exclusionsFileName, string? exclusionRegexString = null) - { - if (exclusionsFileName is null) - { - throw new ArgumentNullException(nameof(exclusionsFileName)); - } - - _exclusionsFileName = exclusionsFileName; - _exclusionRegex = string.IsNullOrWhiteSpace(exclusionRegexString) ? null : new Regex(exclusionRegexString); - _suffixToExclusions = ParseExclusionsFile(_exclusionsFileName); - _suffixToUnusedExclusions = new Dictionary>( - _suffixToExclusions.ToDictionary(pair => pair.Key, pair => new HashSet(pair.Value))); - } - - internal bool IsFileExcluded(string filePath, string suffix = NullSuffix) - { - if (suffix is null) - { - throw new ArgumentNullException(nameof(suffix)); - } - - // If a specific suffix is provided, check that first. If it is not found, check the default suffix. - return CheckAndRemoveIfExcluded(filePath, suffix) || - (suffix != NullSuffix && CheckAndRemoveIfExcluded(filePath, NullSuffix)); - } - - internal void GenerateNewBaselineFile(string? updatedFileTag = null) - { - string exclusionsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), _exclusionsFileName); - - string[] lines = File.ReadAllLines(exclusionsFilePath); - - var newLines = lines - .Select(line => UpdateExclusionsLine(line)) - .Where(line => line is not null); - - string updatedFileName = updatedFileTag is null - ? $"Updated{_exclusionsFileName}" - : $"Updated{Path.GetFileNameWithoutExtension(_exclusionsFileName)}.{updatedFileTag}{Path.GetExtension(_exclusionsFileName)}"; - string actualFilePath = Path.Combine(Config.LogsDirectory, updatedFileName); - File.WriteAllLines(actualFilePath, newLines!); - } - - private bool CheckAndRemoveIfExcluded(string filePath, string suffix = NullSuffix) - { - if (_suffixToExclusions.TryGetValue(suffix, out HashSet? suffixExclusionList)) - { - foreach (string exclusion in suffixExclusionList) - { - Matcher matcher = new(); - matcher.AddInclude(exclusion); - if (matcher.Match(filePath).HasMatches) - { - RemoveUsedExclusion(exclusion, suffix); - return true; - } - } - } - return false; - } - - private Dictionary> ParseExclusionsFile(string exclusionsFileName) - { - string exclusionsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), exclusionsFileName); - return File.ReadAllLines(exclusionsFilePath) - .Select(line => - { - // Ignore comments - var index = line.IndexOf('#'); - return index >= 0 ? line[..index].TrimEnd() : line; - }) - .Where(line => !string.IsNullOrEmpty(line)) - .Select(line => line.Split('|')) - .Where(parts => - { - // Only include exclusions that match the exclusion regex - return _exclusionRegex is null || _exclusionRegex.IsMatch(parts[0]); - }) - .SelectMany(parts => - { - // Create a new object for each suffix - return parts.Length == 1 - ? new[] { new { Exclusion = parts[0], Suffix = NullSuffix } } - : parts[1].Split(',').Select(suffix => new { Exclusion = parts[0], Suffix = suffix.Trim() }); - }) - .GroupBy( - parts => parts.Suffix, - parts => parts.Exclusion - ) - .ToDictionary( - group => group.Key, - group => new HashSet(group) - ); - } - - private void RemoveUsedExclusion(string exclusion, string suffix) - { - if (_suffixToUnusedExclusions.TryGetValue(suffix, out HashSet? exclusions)) - { - exclusions.Remove(exclusion); - } - } - - private string? UpdateExclusionsLine(string line) - { - string[] parts = line.Split('|'); - string exclusion = parts[0]; - var unusedSuffixes = _suffixToUnusedExclusions.Where(pair => pair.Value.Contains(exclusion)).Select(pair => pair.Key).ToList(); - - if (!unusedSuffixes.Any()) - { - // Exclusion is used in all suffixes, so we can keep it as is - return line; - } - - if (parts.Length == 1) - { - if (unusedSuffixes.Contains(NullSuffix)) - { - // Exclusion is unused in the default suffix, so we can remove it entirely - return null; - } - // Line is duplicated for other suffixes, but null suffix is used so we can keep it as is - return line; - } - - string suffixString = parts[1].Split('#')[0]; - var originalSuffixes = suffixString.Split(',').Select(suffix => suffix.Trim()).ToList(); - var newSuffixes = originalSuffixes.Except(unusedSuffixes).ToList(); - - if (newSuffixes.Count == 0) - { - // All suffixes were unused, so we can remove the line entirely - return null; - } - - return line.Replace(suffixString, string.Join(",", newSuffixes)); - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs deleted file mode 100644 index 129d96c24..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs +++ /dev/null @@ -1,132 +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.Diagnostics; -using System.Linq; -using System.Text; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -internal static class ExecuteHelper -{ - public static (Process Process, string StdOut, string StdErr) ExecuteProcess( - string fileName, - string args, - ITestOutputHelper outputHelper, - bool logOutput = false, - bool excludeInfo = false, - Action? configureCallback = null, - int millisecondTimeout = -1) - { - if (!excludeInfo) - { - outputHelper.WriteLine($"Executing: {fileName} {args}"); - } - - Process process = new() - { - EnableRaisingEvents = true, - StartInfo = - { - FileName = fileName, - Arguments = args, - RedirectStandardOutput = true, - RedirectStandardError = true, - } - }; - - // The `dotnet test` execution context sets a number of dotnet related ENVs that cause issues when executing - // dotnet commands. Clear these to avoid side effects. - foreach (string key in process.StartInfo.Environment.Keys.Where(key => key != "HOME").ToList()) - { - process.StartInfo.Environment.Remove(key); - } - - configureCallback?.Invoke(process); - - StringBuilder stdOutput = new(); - process.OutputDataReceived += new DataReceivedEventHandler( - (sender, e) => - { - lock (stdOutput) - { - stdOutput.AppendLine(e.Data); - } - }); - - StringBuilder stdError = new(); - process.ErrorDataReceived += new DataReceivedEventHandler( - (sender, e) => - { - lock (stdError) - { - stdError.AppendLine(e.Data); - } - }); - - process.Start(); - - process.BeginOutputReadLine(); - process.BeginErrorReadLine(); - process.WaitForExit(millisecondTimeout); - - if (!process.HasExited) - { - outputHelper.WriteLine($"Process did not exit. Killing {fileName} {args} after waiting {millisecondTimeout} milliseconds."); - process.Kill(true); - process.WaitForExit(); - } - - string output; - string error; - - lock (stdOutput) - { - output = stdOutput.ToString().Trim(); - } - - lock (stdError) - { - error = stdError.ToString().Trim(); - } - - if (logOutput) - { - if (!string.IsNullOrWhiteSpace(output)) - { - outputHelper.WriteLine(output); - } - - if (string.IsNullOrWhiteSpace(error)) - { - outputHelper.WriteLine(error); - } - } - - return (process, output, error); - } - - public static string ExecuteProcessValidateExitCode(string fileName, string args, ITestOutputHelper outputHelper) - { - (Process Process, string StdOut, string StdErr) result = ExecuteHelper.ExecuteProcess(fileName, args, outputHelper); - ValidateExitCode(result); - - return result.StdOut; - } - - public static void ValidateExitCode((Process Process, string StdOut, string StdErr) result, int expectedExitCode = 0) - { - if (result.Process.ExitCode != expectedExitCode) - { - ProcessStartInfo startInfo = result.Process.StartInfo; - string msg = $"Failed to execute {startInfo.FileName} {startInfo.Arguments}" + - $"{Environment.NewLine}Exit code: {result.Process.ExitCode}" + - $"{Environment.NewLine}{result.StdOut}" + - $"{Environment.NewLine}{result.StdErr}"; - throw new InvalidOperationException(msg); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/HttpClientExtensions.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/HttpClientExtensions.cs deleted file mode 100644 index b0f778fa6..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/HttpClientExtensions.cs +++ /dev/null @@ -1,28 +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.Net.Http; -using System.Threading.Tasks; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -internal static class HttpClientExtensions -{ - public static async Task DownloadFileAsync(this HttpClient client, Uri uri, string path, ITestOutputHelper outputHelper) - { - outputHelper.WriteLine($"Downloading {uri}"); - - await Utilities.RetryAsync( - async () => - { - using Stream stream = await client.GetStreamAsync(uri); - using FileStream fileStream = new(path, FileMode.OpenOrCreate); - await stream.CopyToAsync(fileStream); - }, - outputHelper); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs deleted file mode 100644 index c9081967b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/LicenseScanTests.cs +++ /dev/null @@ -1,251 +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.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text.Json; -using System.Text.Json.Serialization; -using System.Text.RegularExpressions; -using TestUtilities; -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/ - "blueoak-1.0.0", // https://blueoakcouncil.org/license/1.0.0 - "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-3.0-us", // https://creativecommons.org/licenses/by/3.0/us/legalcode - "cc-by-4.0", // https://creativecommons.org/licenses/by/4.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/ - "cc-sa-1.0", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/cc-sa-1.0.LICENSE - "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 - "mit-testregex", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-testregex.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[] - { - "*.ildump", - }; - - private readonly string _targetRepo; - private readonly string _relativeRepoPath; - public static bool IncludeLicenseScanTests => !string.IsNullOrWhiteSpace(Config.LicenseScanPath); - - public LicenseScanTests(ITestOutputHelper outputHelper) : base(outputHelper) - { - Assert.NotNull(Config.LicenseScanPath); - _targetRepo = new DirectoryInfo(Config.LicenseScanPath).Name; - - Match relativeRepoPathMatch = Regex.Match(Config.LicenseScanPath, @"(src/)[^/]+"); - Assert.True(relativeRepoPathMatch.Success); - _relativeRepoPath = relativeRepoPathMatch.Value; - } - - [ConditionalFact(typeof(LicenseScanTests), nameof(IncludeLicenseScanTests))] - public void ScanForLicenses() - { - Assert.NotNull(Config.LicenseScanPath); - - // Indicates how long until a timeout occurs for scanning a given file - const int FileScanTimeoutSeconds = 240; - - string scancodeResultsPath = Path.Combine(Config.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 --processes 4 --timeout {FileScanTimeoutSeconds} --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); - string expectedFilePath = Path.Combine(Config.LogsDirectory, baselineName); - if (File.Exists(baselinePath)) - { - File.Copy(baselinePath, expectedFilePath, overwrite: true); - } - else - { - // If there is no license baseline, generate a default empty one. - ScancodeResults defaultResults = new(); - string defaultResultsJson = JsonSerializer.Serialize(defaultResults, options); - File.WriteAllText(expectedFilePath, defaultResultsJson); - } - - string actualFilePath = Path.Combine(Config.LogsDirectory, $"Updated{baselineName}"); - File.WriteAllText(actualFilePath, json); - - BaselineHelper.CompareFiles(expectedFilePath, actualFilePath, OutputHelper, Config.WarnOnLicenseScanDiffs); - } - - private void FilterFiles(ScancodeResults scancodeResults) - { - // 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. - - // We only care about the license expressions that are in the target repo. - ExclusionsHelper exclusionsHelper = new("LicenseExclusions.txt", _targetRepo); - - 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. - - // 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 add back the beginning part of the path. - string fullRelativePath = Path.Combine(_relativeRepoPath, file.Path); - - var remainingLicenses = disallowedLicenses.Where(license => !exclusionsHelper.IsFileExcluded(fullRelativePath, license)); - - if (!remainingLicenses.Any()) - { - scancodeResults.Files.Remove(file); - } - } - } - exclusionsHelper.GenerateNewBaselineFile(_targetRepo); - } - - 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 deleted file mode 100644 index 0448a8064..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - $(NetCurrent) - $(DefaultExcludesInProjectFolder);assets/**/* - normal - console%3bverbosity=$(SmokeTestConsoleVerbosity);trx%3bLogFileName=$(MSBuildProjectName).trx - - false - - - - - - - - - - - - - - - - - - - - - - - - - - %(SourceBuiltArtifactsItem.Identity) - - - - - - $(ArtifactsTestResultsDir) - - - $(TargetDir)extracted-sdk - - - $(TargetRid) - - - $(PortableRid) - - - - - $(SmokeTestsCustomSourceBuiltPackagesPath) - - - $(SmokeTestsExcludeOmniSharpTests) - - - $(SmokeTestsIncludeArtifactsSizeTests) - - - $(SmokeTestsLicenseScanPath) - - - $(MsftSdkTarballPath) - - - $(PoisonUsageReportFile) - - - $(SmokeTestsPrereqsPath) - - - $(SdkTarballPath) - - - $(SourceBuiltArtifactsPath) - - - $(SmokeTestsWarnOnLicenseScanDiffs) - - - $(SmokeTestsWarnOnSdkContentDiffs) - - - - - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/OmniSharpTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/OmniSharpTests.cs deleted file mode 100644 index 522dc409c..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/OmniSharpTests.cs +++ /dev/null @@ -1,80 +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.Diagnostics; -using System.IO; -using System.Net.Http; -using System.Security.AccessControl; -using System.Threading.Tasks; -using TestUtilities; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -/// -/// OmniSharp tests to ensure it works with a source-built sdk. -/// -public class OmniSharpTests : SdkTests -{ - // Update version as new releases become available: https://github.com/OmniSharp/omnisharp-roslyn/releases - private const string OmniSharpReleaseVersion = "1.39.11"; - - private string OmniSharpDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), nameof(OmniSharpTests)); - - public static bool IncludeOmniSharpTests => !Config.ExcludeOmniSharpTests && Config.TargetArchitecture != "ppc64le" && Config.TargetArchitecture != "s390x"; - - public OmniSharpTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - [ConditionalTheoryAttribute(typeof(OmniSharpTests), nameof(IncludeOmniSharpTests))] - [InlineData(DotNetTemplate.BlazorWasm)] - [InlineData(DotNetTemplate.ClassLib)] - [InlineData(DotNetTemplate.Console)] - [InlineData(DotNetTemplate.MSTest)] - [InlineData(DotNetTemplate.Mvc)] - [InlineData(DotNetTemplate.NUnit)] - [InlineData(DotNetTemplate.Web)] - [InlineData(DotNetTemplate.WebApp)] - [InlineData(DotNetTemplate.WebApi)] - [InlineData(DotNetTemplate.Worker)] - [InlineData(DotNetTemplate.XUnit)] - public async Task VerifyScenario(DotNetTemplate template) - { - await InitializeOmniSharp(); - - string templateName = template.GetName(); - string projectName = $"{nameof(OmniSharpTests)}_{templateName}"; - string projectDirectory = DotNetHelper.ExecuteNew(templateName, projectName); - - (Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess( - Path.Combine(OmniSharpDirectory, "run"), - $"-s {projectDirectory}", - OutputHelper, - logOutput: true, - millisecondTimeout: 5000, - configureCallback: (process) => DotNetHelper.ConfigureProcess(process, projectDirectory)); - - Assert.NotEqual(0, executeResult.Process.ExitCode); - Assert.DoesNotContain("ERROR", executeResult.StdOut); - Assert.DoesNotContain("ERROR", executeResult.StdErr); - } - - private async Task InitializeOmniSharp() - { - if (!Directory.Exists(OmniSharpDirectory)) - { - using HttpClient client = new(); - string omniSharpTarballFile = $"omnisharp-linux-{Config.TargetArchitecture}.tar.gz"; - Uri omniSharpTarballUrl = new($"https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v{OmniSharpReleaseVersion}/{omniSharpTarballFile}"); - await client.DownloadFileAsync(omniSharpTarballUrl, omniSharpTarballFile, OutputHelper); - - Directory.CreateDirectory(OmniSharpDirectory); - Utilities.ExtractTarball(omniSharpTarballFile, OmniSharpDirectory, OutputHelper); - - // Ensure the run script is executable (see https://github.com/OmniSharp/omnisharp-roslyn/issues/2547) - File.SetUnixFileMode($"{OmniSharpDirectory}/run", UnixFileMode.UserRead | UnixFileMode.UserExecute); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs deleted file mode 100644 index ed2177f6d..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/PoisonTests.cs +++ /dev/null @@ -1,39 +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.RegularExpressions; -using TestUtilities; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests -{ - public class PoisonTests : SdkTests - { - public static bool IncludePoisonTests => !string.IsNullOrWhiteSpace(Config.PoisonReportPath); - - public PoisonTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - [ConditionalFact(typeof(PoisonTests), nameof(IncludePoisonTests))] - public void VerifyUsage() - { - if (!File.Exists(Config.PoisonReportPath)) - { - throw new InvalidOperationException($"Poison report '{Config.PoisonReportPath}' does not exist."); - } - - string currentPoisonReport = File.ReadAllText(Config.PoisonReportPath); - currentPoisonReport = RemoveHashes(currentPoisonReport); - currentPoisonReport = BaselineHelper.RemoveRids(currentPoisonReport); - currentPoisonReport = BaselineHelper.RemoveRids(currentPoisonReport, true); - currentPoisonReport = BaselineHelper.RemoveVersions(currentPoisonReport); - - BaselineHelper.CompareBaselineContents("PoisonUsage.txt", currentPoisonReport, OutputHelper); - } - - private static string RemoveHashes(string source) => Regex.Replace(source, "^\\s*.*(\r\n?|\n)", string.Empty, RegexOptions.Multiline); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/README.md b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/README.md deleted file mode 100644 index 80123ca62..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# Source Build Smoke Tests - -* Run these tests via `build.sh --test` - -The following properties are automatically available during test execution but can be overwritten: -- PoisonUsageReportFile -- SdkTarballPath -- SourceBuiltArtifactsPath - -Optional msbuild properties: -- MsftSdkTarballPath -- SmokeTestsCustomSourceBuiltPackagesPath -- SmokeTestsExcludeOmniSharpTests -- SmokeTestsIncludeArtifactsSizeTests -- SmokeTestsLicenseScanPath -- SmokeTestsPrereqsPath -- SmokeTestsWarnOnLicenseScanDiffs -- SmokeTestsWarnOnSdkContentDiffs - -Make sure to rebuild the test project when changing one of those values. - -## Dependencies - -Some tests need additional dependencies. These must be installed (manually and separately) on the system for the tests to pass. - -The following programs are used by some tests: - -- eu-readelf -- file - -## Prereq Packages - -Some prerelease scenarios, usually security updates, require non-source-built packages which are not publicly available. -Specify the directory where these packages can be found via the `SmokeTestsPrereqsPath` msbuild property when running tests via `build.sh ---test` e.g. -`/p:SmokeTestsPrereqsPath=prereqs/packages/smoke-test-prereqs`. diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs deleted file mode 100644 index 585e2f33c..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkContentTests.cs +++ /dev/null @@ -1,223 +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.Collections.Generic; -using System.Data; -using System.IO; -using System.IO.Enumeration; -using System.Linq; -using System.Reflection; -using System.Text.RegularExpressions; -using Microsoft.Extensions.FileSystemGlobbing; -using TestUtilities; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -[Trait("Category", "SdkContent")] -public class SdkContentTests : SdkTests -{ - private const string MsftSdkType = "msft"; - private const string SourceBuildSdkType = "sb"; - public static bool IncludeSdkContentTests => !string.IsNullOrWhiteSpace(Config.MsftSdkTarballPath) && !string.IsNullOrWhiteSpace(Config.SdkTarballPath); - - public SdkContentTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - /// - /// Verifies the file layout of the source built sdk tarball to the Microsoft build. - /// The differences are captured in baselines/MsftToSbSdkDiff.txt. - /// Version numbers that appear in paths are compared but are stripped from the baseline. - /// This makes the baseline durable between releases. This does mean however, entries - /// in the baseline may appear identical if the diff is version specific. - /// - [ConditionalFact(typeof(SdkContentTests), nameof(IncludeSdkContentTests))] - public void CompareMsftToSbFileList() - { - const string msftFileListingFileName = "msftSdkFiles.txt"; - const string sbFileListingFileName = "sbSdkFiles.txt"; - ExclusionsHelper exclusionsHelper = new ExclusionsHelper("SdkFileDiffExclusions.txt"); - - WriteTarballFileList(Config.MsftSdkTarballPath, msftFileListingFileName, isPortable: true, MsftSdkType, exclusionsHelper); - WriteTarballFileList(Config.SdkTarballPath, sbFileListingFileName, isPortable: false, SourceBuildSdkType, exclusionsHelper); - - exclusionsHelper.GenerateNewBaselineFile("FileList"); - - string diff = BaselineHelper.DiffFiles(msftFileListingFileName, sbFileListingFileName, OutputHelper); - diff = RemoveDiffMarkers(diff); - BaselineHelper.CompareBaselineContents("MsftToSbSdkFiles.diff", diff, OutputHelper, Config.WarnOnSdkContentDiffs); - } - - [ConditionalFact(typeof(SdkContentTests), nameof(IncludeSdkContentTests))] - public void CompareMsftToSbAssemblyVersions() - { - Assert.NotNull(Config.MsftSdkTarballPath); - Assert.NotNull(Config.SdkTarballPath); - - DirectoryInfo tempDir = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName())); - try - { - DirectoryInfo sbSdkDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, SourceBuildSdkType)); - Utilities.ExtractTarball(Config.SdkTarballPath, sbSdkDir.FullName, OutputHelper); - - DirectoryInfo msftSdkDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, MsftSdkType)); - Utilities.ExtractTarball(Config.MsftSdkTarballPath, msftSdkDir.FullName, OutputHelper); - - Dictionary sbSdkAssemblyVersions = GetSbSdkAssemblyVersions(sbSdkDir.FullName); - Dictionary msftSdkAssemblyVersions = GetMsftSdkAssemblyVersions(msftSdkDir.FullName, sbSdkAssemblyVersions); - - RemoveExcludedAssemblyVersionPaths(sbSdkAssemblyVersions, msftSdkAssemblyVersions); - - const string SbVersionsFileName = "sb_assemblyversions.txt"; - WriteAssemblyVersionsToFile(sbSdkAssemblyVersions, SbVersionsFileName); - - const string MsftVersionsFileName = "msft_assemblyversions.txt"; - WriteAssemblyVersionsToFile(msftSdkAssemblyVersions, MsftVersionsFileName); - - string diff = BaselineHelper.DiffFiles(MsftVersionsFileName, SbVersionsFileName, OutputHelper); - diff = RemoveDiffMarkers(diff); - BaselineHelper.CompareBaselineContents("MsftToSbSdkAssemblyVersions.diff", diff, OutputHelper, Config.WarnOnSdkContentDiffs); - } - finally - { - tempDir.Delete(recursive: true); - } - } - - private void RemoveExcludedAssemblyVersionPaths(Dictionary sbSdkAssemblyVersions, Dictionary msftSdkAssemblyVersions) - { - // Remove any excluded files as long as SB SDK's file has the same or greater assembly version compared to the corresponding - // file in the MSFT SDK. If the version is less, the file will show up in the results as this is not a scenario - // that is valid for shipping. - ExclusionsHelper exclusionsHelper = new ExclusionsHelper("SdkAssemblyVersionDiffExclusions.txt"); - string[] sbSdkFileArray = sbSdkAssemblyVersions.Keys.ToArray(); - for (int i = sbSdkFileArray.Length - 1; i >= 0; i--) - { - string assemblyPath = sbSdkFileArray[i]; - Version? sbVersion = sbSdkAssemblyVersions[assemblyPath]; - Version? msftVersion = msftSdkAssemblyVersions[assemblyPath]; - - if (sbVersion is not null && - msftVersion is not null && - sbVersion >= msftVersion && - exclusionsHelper.IsFileExcluded(assemblyPath)) - { - sbSdkAssemblyVersions.Remove(assemblyPath); - msftSdkAssemblyVersions.Remove(assemblyPath); - } - } - exclusionsHelper.GenerateNewBaselineFile(); - } - - private static void WriteAssemblyVersionsToFile(Dictionary assemblyVersions, string outputPath) - { - string[] lines = assemblyVersions - .Select(kvp => $"{kvp.Key} - {kvp.Value}") - .Order() - .ToArray(); - File.WriteAllLines(outputPath, lines); - } - - private Dictionary GetMsftSdkAssemblyVersions( - string msftSdkPath, Dictionary sbSdkAssemblyVersions) - { - Dictionary msftSdkAssemblyVersions = new(); - foreach ((string relativePath, _) in sbSdkAssemblyVersions) - { - // Now we want to find the corresponding file that exists in the MSFT SDK. - // We've already replaced version numbers with placeholders in the path. - // So we can't directly use the relative path to find the corresponding file. Instead, - // we need to replace the version placeholders with wildcards and find the path through path matching. - string file = Path.Combine(msftSdkPath, relativePath); - Matcher matcher = BaselineHelper.GetFileMatcherFromPath(relativePath); - - file = FindMatchingFilePath(msftSdkPath, matcher, relativePath); - - if (!File.Exists(file)) - { - continue; - } - - AssemblyName assemblyName = AssemblyName.GetAssemblyName(file); - msftSdkAssemblyVersions.Add(BaselineHelper.RemoveVersions(relativePath), GetVersion(assemblyName)); - } - return msftSdkAssemblyVersions; - } - - // It's known that assembly versions can be different between builds in their revision field. Disregard that difference - // by excluding that field in the output. - private static Version? GetVersion(AssemblyName assemblyName) - { - if (assemblyName.Version is not null) - { - return new Version(assemblyName.Version.ToString(3)); - } - - return null; - } - - private string FindMatchingFilePath(string rootDir, Matcher matcher, string representativeFile) - { - foreach (string file in Directory.EnumerateFiles(rootDir, "*", SearchOption.AllDirectories)) - { - if (matcher.Match(rootDir, file).HasMatches) - { - return file; - } - } - - Assert.Fail($"Unable to find matching file for '{representativeFile}' in '{rootDir}'."); - return string.Empty; - } - - private Dictionary GetSbSdkAssemblyVersions(string sbSdkPath) - { - ExclusionsHelper exclusionsHelper = new("SdkFileDiffExclusions.txt"); - Dictionary sbSdkAssemblyVersions = new(); - foreach (string file in Directory.EnumerateFiles(sbSdkPath, "*", SearchOption.AllDirectories)) - { - string fileExt = Path.GetExtension(file); - if (fileExt.Equals(".dll", StringComparison.OrdinalIgnoreCase) || - fileExt.Equals(".exe", StringComparison.OrdinalIgnoreCase)) - { - AssemblyName assemblyName = AssemblyName.GetAssemblyName(file); - string relativePath = Path.GetRelativePath(sbSdkPath, file); - string normalizedPath = BaselineHelper.RemoveVersions(relativePath); - - if(!exclusionsHelper.IsFileExcluded(normalizedPath, SourceBuildSdkType)) - { - sbSdkAssemblyVersions.Add(normalizedPath, GetVersion(assemblyName)); - } - } - } - exclusionsHelper.GenerateNewBaselineFile("AssemblyVersions"); - return sbSdkAssemblyVersions; - } - - private void WriteTarballFileList(string? tarballPath, string outputFileName, bool isPortable, string sdkType, ExclusionsHelper exclusionsHelper) - { - if (!File.Exists(tarballPath)) - { - throw new InvalidOperationException($"Tarball path '{tarballPath}' does not exist."); - } - - string fileListing = Utilities.GetTarballContentNames(tarballPath).Aggregate((a, b) => $"{a}{Environment.NewLine}{b}"); - fileListing = BaselineHelper.RemoveRids(fileListing, isPortable); - fileListing = BaselineHelper.RemoveVersions(fileListing); - IEnumerable files = fileListing.Split(Environment.NewLine).OrderBy(path => path); - files = files.Where(item => !exclusionsHelper.IsFileExcluded(item, sdkType)); - - File.WriteAllLines(outputFileName, files); - } - - private static string RemoveDiffMarkers(string source) - { - Regex indexRegex = new("^index .*", RegexOptions.Multiline); - string result = indexRegex.Replace(source, "index ------------"); - - Regex diffSegmentRegex = new("^@@ .* @@", RegexOptions.Multiline); - return diffSegmentRegex.Replace(result, "@@ ------------ @@"); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkTests.cs deleted file mode 100644 index ba3381360..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SdkTests.cs +++ /dev/null @@ -1,20 +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 Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -/// -/// Shared base class for all SDK-based smoke tests. -/// -public abstract class SdkTests : TestBase -{ - internal DotNetHelper DotNetHelper { get; } - - protected SdkTests(ITestOutputHelper outputHelper) : base(outputHelper) - { - DotNetHelper = new DotNetHelper(outputHelper); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourceBuiltArtifactsTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourceBuiltArtifactsTests.cs deleted file mode 100644 index abfe84fd6..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourceBuiltArtifactsTests.cs +++ /dev/null @@ -1,72 +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.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using TestUtilities; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public class SourceBuiltArtifactsTests : SdkTests -{ - public static bool IncludeSourceBuiltArtifactsTests => !string.IsNullOrWhiteSpace(Config.SourceBuiltArtifactsPath); - - public SourceBuiltArtifactsTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - [ConditionalFact(typeof(SourceBuiltArtifactsTests), nameof(IncludeSourceBuiltArtifactsTests))] - public void VerifyVersionFile() - { - Assert.NotNull(Config.SourceBuiltArtifactsPath); - - string outputDir = Path.Combine(Directory.GetCurrentDirectory(), "sourcebuilt-artifacts"); - Directory.CreateDirectory(outputDir); - try - { - // Extract the .version file - Utilities.ExtractTarball(Config.SourceBuiltArtifactsPath, outputDir, ".version"); - - string[] versionLines = File.ReadAllLines(Path.Combine(outputDir, ".version")); - Assert.Equal(2, versionLines.Length); - - // Verify the commit SHA - - string commitSha = versionLines[0]; - OutputHelper.WriteLine($"Commit SHA: {commitSha}"); - Assert.Equal(40, commitSha.Length); - Assert.True(commitSha.All(c => char.IsLetterOrDigit(c))); - - // When running in CI, we should ensure that the commit SHA is not all zeros, which is the default - // value when no commit SHA is available. In a dev environment this will likely be all zeros but it's - // possible that it could be a valid commit SHA depending on the environment's configuration, so we - // only verify this in CI. - if (Config.RunningInCI) - { - Assert.False(commitSha.All(c => c == '0')); - } - - // Verify the SDK version - - string sdkVersion = versionLines[1]; - - // Find the expected SDK version by getting it from the SDK tarball - Utilities.ExtractTarball(Config.SdkTarballPath ?? string.Empty, outputDir, "./sdk/*/.version"); - DirectoryInfo sdkDir = new DirectoryInfo(Path.Combine(outputDir, "sdk")); - string sdkVersionPath = sdkDir.GetFiles(".version", SearchOption.AllDirectories).Single().FullName; - string[] sdkVersionLines = File.ReadAllLines(Path.Combine(outputDir, sdkVersionPath)); - string expectedSdkVersion = sdkVersionLines[3]; // Get the unique, non-stable, SDK version - - Assert.Equal(expectedSdkVersion, sdkVersion); - } - finally - { - Directory.Delete(outputDir, recursive: true); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourcelinkTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourcelinkTests.cs deleted file mode 100644 index 07eb3ae0b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SourcelinkTests.cs +++ /dev/null @@ -1,123 +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.Collections.Concurrent; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.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)); - - public SourcelinkTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - /// - /// Verifies that all symbols have valid sourcelinks. - /// - [Fact] - public void VerifySourcelinks() - { - try - { - if (Directory.Exists(SourcelinkRoot)) - { - Directory.Delete(SourcelinkRoot, true); - } - Directory.CreateDirectory(SourcelinkRoot); - - string symbolsRoot = Directory.CreateDirectory(Path.Combine(SourcelinkRoot, "symbols")).FullName; - - // 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($"Sourcelink verification failed for the following files:"); - foreach (string file in failedFiles) - { - OutputHelper.WriteLine(file); - } - } - - Assert.True(failedFiles.Count == 0); - } - finally - { - Directory.Delete(SourcelinkRoot, true); - } - } - - /// - /// Initializes sourcelink tool. - /// Extracts the dotnet-sourcelink tool package from PSB arhive. - /// - /// Path to sourcelink tool binary. - private string InitializeSourcelinkTool() - { - Assert.NotNull(Config.SourceBuiltArtifactsPath); - - const string SourcelinkToolPackageNamePattern = "dotnet-sourcelink*nupkg"; - const string SourcelinkToolBinaryFilename = "dotnet-sourcelink.dll"; - - string toolPackageDir = Directory.CreateDirectory(Path.Combine(SourcelinkRoot, "sourcelink-tool")).FullName; - Utilities.ExtractTarball(Config.SourceBuiltArtifactsPath, toolPackageDir, SourcelinkToolPackageNamePattern); - - string extractedToolPath = Directory.CreateDirectory(Path.Combine(toolPackageDir, "extracted")).FullName; - Utilities.ExtractNupkg(Utilities.GetFile(toolPackageDir, SourcelinkToolPackageNamePattern), extractedToolPath); - - return Utilities.GetFile(extractedToolPath, SourcelinkToolBinaryFilename); - } - - private IList ValidateSymbols(string path, string sourcelinkToolPath) - { - Assert.True(Directory.Exists(path), $"Path, with symbol files to validate, does not exist: {path}"); - - var failedFiles = new ConcurrentBag(); - - IEnumerable allFiles = Directory.GetFiles(path, "*.pdb", SearchOption.AllDirectories); - Parallel.ForEach(allFiles, file => - { - (Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess( - DotNetHelper.DotNetPath, - $"{sourcelinkToolPath} test --offline {file}", - OutputHelper, - logOutput: false, - excludeInfo: true, // Exclude info messages, as there can be 1,000+ processes - millisecondTimeout: 60000, - configureCallback: (process) => DotNetHelper.ConfigureProcess(process, null)); - - if (executeResult.Process.ExitCode != 0) - { - failedFiles.Add(file); - } - }); - - Assert.True(allFiles.Count() > 0, $"Did not find any symbols for sourcelink verification in {path}"); - - return failedFiles.ToList(); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SymbolsTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SymbolsTests.cs deleted file mode 100644 index f4b20cd9f..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SymbolsTests.cs +++ /dev/null @@ -1,86 +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.Collections.Concurrent; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Xunit; -using Xunit.Abstractions; -using Microsoft.DotNet.UnifiedBuild.Tasks; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public class SymbolsTests : SdkTests -{ - private static string SymbolsTestsRoot { get; } = Path.Combine(Directory.GetCurrentDirectory(), nameof(SymbolsTests)); - - public SymbolsTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - /// - /// Verifies that all symbols have valid sourcelinks. - /// - [Fact] - public void VerifySdkSymbols() - { - try - { - if (Directory.Exists(SymbolsTestsRoot)) - { - Directory.Delete(SymbolsTestsRoot, true); - } - Directory.CreateDirectory(SymbolsTestsRoot); - - string symbolsRoot = Directory.CreateDirectory(Path.Combine(SymbolsTestsRoot, "symbols")).FullName; - - // We are validating dotnet-symbols-sdk-*.tar.gz which contains source-built sdk symbols - Utilities.ExtractTarball( - Utilities.GetFile(Path.GetDirectoryName(Config.SourceBuiltArtifactsPath)!, "dotnet-symbols-sdk-*.tar.gz"), - symbolsRoot, - OutputHelper); - - IList failedFiles = VerifySdkFilesHaveMatchingSymbols(symbolsRoot, Config.DotNetDirectory); - - if (failedFiles.Count > 0) - { - OutputHelper.WriteLine($"Did not find PDBs for the following SDK files:"); - foreach (string file in failedFiles) - { - OutputHelper.WriteLine(file); - } - } - - Assert.True(failedFiles.Count == 0); - } - finally - { - Directory.Delete(SymbolsTestsRoot, true); - } - } - - private IList VerifySdkFilesHaveMatchingSymbols(string symbolsRoot, string sdkRoot) - { - Assert.True(Directory.Exists(sdkRoot), $"Path, with SDK files to validate, does not exist: {sdkRoot}"); - - var failedFiles = new ConcurrentBag(); - - IEnumerable allFiles = Directory.GetFiles(sdkRoot, "*", SearchOption.AllDirectories); - Parallel.ForEach(allFiles, file => - { - if (PdbUtilities.FileInSdkLayoutRequiresAPdb(file, out string guid)) - { - string symbolFile = Path.ChangeExtension(file.Replace(sdkRoot, symbolsRoot), ".pdb"); - if (!File.Exists(symbolFile)) - { - failedFiles.Add(file); - } - } - }); - - return failedFiles.ToList(); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestBase.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestBase.cs deleted file mode 100644 index a62b85256..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestBase.cs +++ /dev/null @@ -1,23 +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.IO; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public abstract class TestBase -{ - public ITestOutputHelper OutputHelper { get; } - - public TestBase(ITestOutputHelper outputHelper) - { - OutputHelper = outputHelper; - - if (!Directory.Exists(Config.LogsDirectory)) - { - Directory.CreateDirectory(Config.LogsDirectory); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestScenario.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestScenario.cs deleted file mode 100644 index eb7470f8e..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestScenario.cs +++ /dev/null @@ -1,76 +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; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public class TestScenario -{ - public DotNetActions Commands { get; } - public DotNetLanguage Language { get; } - public bool NoHttps { get; set; } = Config.TargetRid.Contains("osx"); - public string ScenarioName { get; } - public DotNetTemplate Template { get; } - public Action? Validate { get; } - - public TestScenario(string scenarioName, DotNetLanguage language, DotNetTemplate template, DotNetActions commands = DotNetActions.None, Action? validate = null) - { - ScenarioName = scenarioName; - Template = template; - Language = language; - Commands = commands; - Validate = validate; - } - - internal void Execute(DotNetHelper dotNetHelper) - { - // Don't use the cli language name in the project name because it may contain '#': https://github.com/dotnet/roslyn/issues/51692 - string projectName = $"{ScenarioName}_{Template}_{Language}"; - string customNewArgs = Template.IsAspNetCore() && NoHttps ? "--no-https" : string.Empty; - dotNetHelper.ExecuteNew(Template.GetName(), projectName, Language.ToCliName(), customArgs: customNewArgs); - - if (Commands.HasFlag(DotNetActions.Build)) - { - dotNetHelper.ExecuteBuild(projectName); - } - if (Commands.HasFlag(DotNetActions.Run)) - { - if (Template.IsAspNetCore()) - { - dotNetHelper.ExecuteRunWeb(projectName, Template); - } - else - { - dotNetHelper.ExecuteRun(projectName); - } - } - if (Commands.HasFlag(DotNetActions.Publish)) - { - dotNetHelper.ExecutePublish(projectName, Template); - } - if (Commands.HasFlag(DotNetActions.PublishSelfContained)) - { - dotNetHelper.ExecutePublish(projectName, Template, selfContained: true, rid: Config.TargetRid); - } - if (Commands.HasFlag(DotNetActions.PublishComplex)) - { - dotNetHelper.ExecutePublish(projectName, Template, selfContained: false); - dotNetHelper.ExecutePublish(projectName, Template, selfContained: true, rid: Config.TargetRid); - dotNetHelper.ExecutePublish(projectName, Template, selfContained: true, rid: $"linux-{Config.TargetArchitecture}"); - } - if (Commands.HasFlag(DotNetActions.PublishR2R)) - { - dotNetHelper.ExecutePublish(projectName, Template, selfContained: true, rid: $"linux-{Config.TargetArchitecture}", trimmed: true, readyToRun: true); - } - if (Commands.HasFlag(DotNetActions.Test)) - { - dotNetHelper.ExecuteTest(projectName); - } - - string projectPath = Path.Combine(DotNetHelper.ProjectsDirectory, projectName); - Validate?.Invoke(projectPath); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Utilities.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Utilities.cs deleted file mode 100644 index 3f6077ba6..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Utilities.cs +++ /dev/null @@ -1,141 +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.Extensions.FileSystemGlobbing; -using System; -using System.Collections.Generic; -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; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -public static class Utilities -{ - 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), - // use 'tar' instead. - ExecuteHelper.ExecuteProcessValidateExitCode("tar", $"xzf {tarballPath} -C {outputDir}", outputHelper); - } - - public static void ExtractTarball(string tarballPath, string outputDir, string targetFilePath) - { - Matcher matcher = new(); - matcher.AddInclude(targetFilePath); - - using FileStream fileStream = File.OpenRead(tarballPath); - using GZipStream decompressorStream = new(fileStream, CompressionMode.Decompress); - using TarReader reader = new(decompressorStream); - - TarEntry? entry; - while ((entry = reader.GetNextEntry()) is not null) - { - if (matcher.Match(entry.Name).HasMatches) - { - string outputPath = Path.Join(outputDir, entry.Name); - Directory.CreateDirectory(Path.GetDirectoryName(outputPath)!); - - using FileStream outputFileStream = File.Create(outputPath); - entry.DataStream!.CopyTo(outputFileStream); - return; - } - } - - throw new FileNotFoundException($"Could not find {targetFilePath} in {tarballPath}."); - } - - public static IEnumerable GetTarballContentNames(string tarballPath) - { - using FileStream fileStream = File.OpenRead(tarballPath); - using GZipStream decompressorStream = new(fileStream, CompressionMode.Decompress); - using TarReader reader = new(decompressorStream); - - TarEntry? entry; - while ((entry = reader.GetNextEntry()) is not null) - { - yield return entry.Name; - } - } - - public static void ExtractNupkg(string package, string outputDir) - { - Directory.CreateDirectory(outputDir); - - using ZipArchive zip = ZipFile.OpenRead(package); - foreach (ZipArchiveEntry entry in zip.Entries) - { - string outputPath = Path.Combine(outputDir, entry.FullName); - Directory.CreateDirectory(Path.GetDirectoryName(outputPath)!); - entry.ExtractToFile(outputPath); - } - } - - public static async Task RetryAsync(Func executor, ITestOutputHelper outputHelper) - { - await Utilities.RetryAsync( - async () => - { - try - { - await executor(); - return null; - } - catch (Exception e) - { - return e; - } - }, - outputHelper); - } - - private static async Task RetryAsync(Func> executor, ITestOutputHelper outputHelper) - { - const int maxRetries = 5; - const int waitFactor = 5; - - int retryCount = 0; - - Exception? exception = await executor(); - while (exception != null) - { - retryCount++; - if (retryCount >= maxRetries) - { - throw new InvalidOperationException($"Failed after {retryCount} retries.", exception); - } - - int waitTime = Convert.ToInt32(Math.Pow(waitFactor, retryCount - 1)); - if (outputHelper != null) - { - outputHelper.WriteLine($"Retry {retryCount}/{maxRetries}, retrying in {waitTime} seconds..."); - } - - Thread.Sleep(TimeSpan.FromSeconds(waitTime)); - exception = await executor(); - } - } - - 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 string GetFile(string path, string pattern) - { - string[] files = Directory.GetFiles(path, pattern, SearchOption.AllDirectories); - Assert.False(files.Length > 1, $"Found multiple files matching the pattern {pattern}: {Environment.NewLine}{string.Join(Environment.NewLine, files)}"); - Assert.False(files.Length == 0, $"Did not find any files matching the pattern {pattern}"); - return files[0]; - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/WebScenarioTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/WebScenarioTests.cs deleted file mode 100644 index 06b783468..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/WebScenarioTests.cs +++ /dev/null @@ -1,57 +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.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text.Json.Nodes; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.SourceBuild.SmokeTests; - -/// -/// Web project create, build, run, publish scenario tests. -/// for related basic scenarios. -/// They are encapsulated in a separate testclass so that they can be run in parallel. -/// -public class WebScenarioTests : SdkTests -{ - public WebScenarioTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - [Theory] - [MemberData(nameof(GetScenarioObjects))] - public void VerifyScenario(TestScenario scenario) => scenario.Execute(DotNetHelper); - - public static IEnumerable GetScenarioObjects() => GetScenarios().Select(scenario => new object[] { scenario }); - - private static IEnumerable GetScenarios() - { - foreach (DotNetLanguage language in new[] { DotNetLanguage.CSharp, DotNetLanguage.FSharp }) - { - yield return new(nameof(WebScenarioTests), language, DotNetTemplate.Web, DotNetActions.Build | DotNetActions.Run | (DotNetHelper.ShouldPublishComplex() ? DotNetActions.PublishComplex : DotNetActions.None)); - yield return new(nameof(WebScenarioTests), language, DotNetTemplate.Mvc, DotNetActions.Build | DotNetActions.Run | DotNetActions.Publish) { NoHttps = true }; - yield return new(nameof(WebScenarioTests), language, DotNetTemplate.WebApi, DotNetActions.Build | DotNetActions.Run | DotNetActions.Publish); - } - - yield return new(nameof(WebScenarioTests), DotNetLanguage.CSharp, DotNetTemplate.Razor, DotNetActions.Build | DotNetActions.Run | DotNetActions.Publish); - yield return new(nameof(WebScenarioTests), DotNetLanguage.CSharp, DotNetTemplate.BlazorWasm, DotNetActions.Build | DotNetActions.Run | DotNetActions.Publish); - yield return new(nameof(WebScenarioTests), DotNetLanguage.CSharp, DotNetTemplate.WebApp, DotNetActions.PublishSelfContained, VerifyRuntimePacksForSelfContained); - yield return new(nameof(WebScenarioTests), DotNetLanguage.CSharp, DotNetTemplate.Worker); - } - - private static void VerifyRuntimePacksForSelfContained(string projectPath) - { - // 'expectedPackageFiles' key in project.nuget.cache' will contain paths to restored packages - // Since we are publishing an emtpy template, the only packages that could end up there are the ref packs we are after - - string projNugetCachePath = Path.Combine(projectPath, "obj", "project.nuget.cache"); - - JsonNode? projNugetCache = JsonNode.Parse(File.ReadAllText(projNugetCachePath)); - string? restoredPackageFiles = projNugetCache?["expectedPackageFiles"]?.ToString(); - - Assert.True(restoredPackageFiles is not null, "Failed to parse project.nuget.cache"); - Assert.True("[]" == restoredPackageFiles, "Runtime packs were retrieved from NuGet instead of the SDK"); - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/FormatTestUnformatted.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/FormatTestUnformatted.cs deleted file mode 100644 index 41dacdf1c..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/FormatTestUnformatted.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace FormatTest -{ - internal class Test - { - public void Run() - { - string test = "Hello World" ; - Console .WriteLine( test ); - } - } -} 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 deleted file mode 100644 index 6ec6e8b98..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/LicenseExclusions.txt +++ /dev/null @@ -1,293 +0,0 @@ -# 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/Documentation/UnifiedBuild/VMR-Permissible-Sources.md|free-unknown -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/eng/xcopy-msbuild/msbuild.nuspec|ms-visual-2015-sdk -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 - -# -# efcore -# - -# False positive -src/efcore/test/EfCore.Tests/ChangeTracking/ComplexPropertyEntryTest.cs|proprietary-license -src/efcore/test/EfCore.Tests/ChangeTracking/MemberEntryTest.cs|proprietary-license - -# -# 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/packaging/osx/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/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/docs/design/mono/web/llvm-backend.md|llvm-exception -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.Runtime/tests/System.Runtime.Tests/TestModule/README.md|unknown-license-reference -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 - -# -# sdk -# - -# False positive -src/sdk/THIRD-PARTY-NOTICES.TXT|unknown-license-reference - -# -# 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 - -# Scanner is identifying the https://github.com/SixLabors/ImageSharp/blob/master/LICENSE license as unknown. But this license is not applicable because we're -# relying on the Spectre.Console distribution. -# See https://github.com/dotnet/dotnet/blob/c6a7278fbb7d79fa3d1f386ef0dc8474043ed06c/src/source-build-externals/src/spectre-console/README.md?plain=1#L104 -src/source-build-externals/src/spectre-console/README.md|unknown-license-reference - -# -# source-build-reference-packages -# - -# False positive -src/source-build-reference-packages/src/targetPacks/ILsrc/microsoft.aspnetcore.app.ref/8.0.0/THIRD-PARTY-NOTICES.TXT|unknown -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-license-reference -src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/2.0.*/THIRD-PARTY-NOTICES.TXT|unknown-license-reference -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-license-reference -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 - -# -# wpf -# - -# Not applicable to source -src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/FontEmbeddingRights.cs|proprietary-license -src/wpf/eng/WpfArcadeSdk/tools/AvTrace/GenTraceSources.pl|proprietary-license -src/wpf/eng/WpfArcadeSdk/tools/GenXmlStringTable.pl|proprietary-license - -# False positive - https://github.com/dotnet/source-build/issues/4373 -src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/RMPublishingDialog.RightsTable.cs|unknown-license-reference -src/wpf/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/WindowBackdropType.cs|bsd-2-clause-views -src/wpf/src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Resources/*.xaml|bsd-2-clause-views -src/wpf/src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Resources/Theme/*.xaml|bsd-2-clause-views -src/wpf/src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Styles/*.xaml|bsd-2-clause-views -src/wpf/src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Styles/*.xaml|mpl-2.0 \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkAssemblyVersionDiffExclusions.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkAssemblyVersionDiffExclusions.txt deleted file mode 100644 index e55baa415..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkAssemblyVersionDiffExclusions.txt +++ /dev/null @@ -1,26 +0,0 @@ -# Contains the list of files whose assembly versions are to be excluded from comparison between the MSFT & SB SDK. -# These exclusions only take effect if the assembly version of the file in the SB SDK is equal to or greater than -# the version in the MSFT SDK. If the version is less, the file will show up in the results as this is not a scenario -# that is valid for shipping. -# -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# '*' in exclusions match zero or more characters. -# '*' will match files and directory names but it will not match separator characters. -# '/' will be evaluated as '/**' if it is the last character. -# -# Examples -# 'folder/*' matches all files and directories in 'folder/'. It will not match 'folder/abc/def' -# 'folder/' is equivalent to 'folder/**. It matches 'folder/', 'folder/abc', and 'folder/abc/def/' - -# Referenced 6.0/7.0 assemblies (https://github.com/dotnet/sdk/issues/34245) -./sdk/x.y.z/Microsoft.Extensions.FileProviders.Abstractions.dll -./sdk/x.y.z/Microsoft.Extensions.FileSystemGlobbing.dll -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/System.Collections.Immutable.dll -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/**/Microsoft.Extensions.ObjectPool.dll -./sdk/**/System.Configuration.ConfigurationManager.dll -./sdk/**/System.Diagnostics.EventLog*.dll -./sdk/**/System.Reflection.MetadataLoadContext.dll -./sdk/**/System.Security.Cryptography.Pkcs.dll -./sdk/**/System.Security.Cryptography.ProtectedData.dll -./sdk/x.y.z/System.Security.Cryptography.Xml.dll 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 deleted file mode 100644 index 0529d102d..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/SdkFileDiffExclusions.txt +++ /dev/null @@ -1,100 +0,0 @@ -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# Format -# Exclude the path entirely: -# [# comment] -# Exclude a path from a specific sdk: -# |{msft|sb} [# comment] -# msft = Microsoft built SDK -# sb = source-built SDK -# -# '*' in exclusions match zero or more characters. -# '*' will match files and directory names but it will not match separator characters. -# '/' will be evaluated as '/**' if it is the last character. -# -# Examples -# 'folder/*' matches all files and directories in 'folder/'. It will not match 'folder/abc/def' -# 'folder/' is equivalent to 'folder/**. It matches 'folder/', 'folder/abc', and 'folder/abc/def/' - -./sdk/x.y.z/TestHostNetFramework/|msft # Intentional - MSFT build includes test-host that targets netcoreapp3.1 -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WindowsDesktop/|msft # Intentional - explicitly excluded from source-build - -# netfx tooling and tasks, not building in source-build - https://github.com/dotnet/source-build/issues/3514 -./sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/net472/|msft -./sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/net472/|msft - -# vstest localization is disabled in Linux builds - https://github.com/dotnet/source-build/issues/3517 -./sdk/x.y.z/*/Microsoft.CodeCoverage.IO.resources.dll|msft - -# nuget localization is not available for Linux builds - https://github.com/NuGet/Home/issues/12440 -./sdk/x.y.z/*/NuGet.*.resources.dll|msft -./sdk/x.y.z/*/Test.Utility.resources.dll|msft - -# ILMerge is not supported in Linux builds - excluding the whole NuGet.Build.Tasks.Pack directory, to avoid a noisy diff -./sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/ - -# missing workload manifests - https://github.com/dotnet/source-build/issues/3242 -./sdk-manifests/x.y.z/microsoft.net.sdk.android/|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/|msft -./sdk-manifests/x.y.z/microsoft.net.sdk.maui/|msft -./sdk-manifests/x.y.z/microsoft.net.sdk.tvos/|msft - -# linux runtimes are included in source-build for self-contained apps - https://github.com/dotnet/source-build/issues/3507 -./packs/Microsoft.AspNetCore.App.Runtime.*/|sb -./packs/Microsoft.NETCore.App.Runtime.*/|sb - -# Exclude format and watch tools due to too much noise -./sdk/x.y.z/DotnetTools/dotnet-format/ -./sdk/x.y.z/DotnetTools/dotnet-watch/ - -./sdk/x.y.z/Extensions/cs/|msft -./sdk/x.y.z/Extensions/de/|msft -./sdk/x.y.z/Extensions/es/|msft -./sdk/x.y.z/Extensions/fr/|msft -./sdk/x.y.z/Extensions/it/|msft -./sdk/x.y.z/Extensions/ja/|msft -./sdk/x.y.z/Extensions/ko/|msft -./sdk/x.y.z/Extensions/pl/|msft -./sdk/x.y.z/Extensions/pt-BR/|msft -./sdk/x.y.z/Extensions/ru/|msft -./sdk/x.y.z/Extensions/tr/|msft -./sdk/x.y.z/Extensions/zh-Hans/|msft -./sdk/x.y.z/Extensions/zh-Hant/|msft - -./sdk/x.y.z/*/dump/|msft - -# netfx runtimes for fsharp - https://github.com/dotnet/source-build/issues/3290 -./sdk/x.y.z/FSharp/Microsoft.VisualStudio.Setup.Configuration.Interop.dll|msft - -# runtime components in roslyn layout - https://github.com/dotnet/source-build/issues/4016 -./sdk/x.y.z/Roslyn/bincore/System.Collections.Immutable.dll|sb -./sdk/x.y.z/Roslyn/bincore/System.Reflection.Metadata.dll|sb - -# https://github.com/dotnet/source-build/issues/4079 -./sdk/x.y.z/*/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll|sb -./sdk/x.y.z/*/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll|sb -./sdk/x.y.z/*/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll|sb -./sdk/x.y.z/*/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll|sb -./sdk/x.y.z/*/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll|sb - -# https://github.com/dotnet/source-build/issues/3510 -./sdk/x.y.z/Containers/containerize/|msft -./sdk/x.y.z/Containers/tasks/net472/|msft - -# https://github.com/dotnet/source-build/issues/4351 -./sdk/x.y.z/*/Microsoft.Build.NuGetSdkResolver.resources.dll|msft \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/ArtifactsSizes/centos.9-x64.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/ArtifactsSizes/centos.9-x64.txt deleted file mode 100644 index c65cfb575..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/ArtifactsSizes/centos.9-x64.txt +++ /dev/null @@ -1,4534 +0,0 @@ -.version: 67 -csc.Symbols.x.y.z.nupkg: 49555 -csi.Symbols.x.y.z.nupkg: 17321 -dotnet: 734184 -dotnet-dev-certs.x.y.z.nupkg: 65585 -dotnet-sourcelink.x.y.z.nupkg: 188477 -dotnet-user-jwts.x.y.z.nupkg: 360890 -dotnet-user-secrets.x.y.z.nupkg: 415188 -FSharp.NET.Sdk.x.y.z.nupkg: 3630 -host/fxr/x.y.z/libhostfxr.so: 4681016 -Humanizer.Core.x.y.z.nupkg: 945071 -LICENSE.txt: 1116 -metadata/workloads/x.y.z/userlocal: 0 -Microsoft.ApplicationInsights.x.y.z.nupkg: 148568 -Microsoft.Arcade.Common.x.y.z.nupkg: 57342 -Microsoft.AspNetCore.Analyzers.x.y.z.nupkg: 17835 -Microsoft.AspNetCore.App.Ref.x.y.z.nupkg: 2853822 -Microsoft.AspNetCore.App.Runtime.banana-rid.x.y.z.nupkg: 10084539 -Microsoft.AspNetCore.Authorization.x.y.z.nupkg: 36525 -Microsoft.AspNetCore.Components.Analyzers.x.y.z.nupkg: 28123 -Microsoft.AspNetCore.Components.Authorization.x.y.z.nupkg: 22084 -Microsoft.AspNetCore.Components.Forms.x.y.z.nupkg: 29990 -Microsoft.AspNetCore.Components.SdkAnalyzers.x.y.z.nupkg: 25746 -Microsoft.AspNetCore.Components.Web.x.y.z.nupkg: 93872 -Microsoft.AspNetCore.Components.x.y.z.nupkg: 178865 -Microsoft.AspNetCore.Connections.Abstractions.x.y.z.nupkg: 32228 -Microsoft.AspNetCore.Cryptography.Internal.x.y.z.nupkg: 48657 -Microsoft.AspNetCore.Cryptography.KeyDerivation.x.y.z.nupkg: 28303 -Microsoft.AspNetCore.DataProtection.Abstractions.x.y.z.nupkg: 39283 -Microsoft.AspNetCore.DataProtection.Extensions.x.y.z.nupkg: 21283 -Microsoft.AspNetCore.DataProtection.x.y.z.nupkg: 100047 -Microsoft.AspNetCore.DeveloperCertificates.XPlat.x.y.z.nupkg: 30622 -Microsoft.AspNetCore.Http.Connections.Common.x.y.z.nupkg: 21665 -Microsoft.AspNetCore.Metadata.x.y.z.nupkg: 19582 -Microsoft.AspNetCore.Mvc.Analyzers.x.y.z.nupkg: 20157 -Microsoft.AspNetCore.Mvc.Api.Analyzers.x.y.z.nupkg: 28710 -Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal.x.y.z.nupkg: 446006 -Microsoft.AspNetCore.SignalR.Common.x.y.z.nupkg: 31619 -Microsoft.AspNetCore.SignalR.Protocols.Json.x.y.z.nupkg: 25486 -Microsoft.AspNetCore.WebUtilities.x.y.z.nupkg: 60948 -Microsoft.Bcl.AsyncInterfaces.x.y.z.nupkg: 36212 -Microsoft.Bcl.Cryptography.x.y.z.nupkg: 42370 -Microsoft.Bcl.Numerics.x.y.z.nupkg: 30912 -Microsoft.Bcl.TimeProvider.x.y.z.nupkg: 38239 -Microsoft.Build.Framework.x.y.z.nupkg: 520138 -Microsoft.Build.Localization.x.y.z.nupkg: 1403921 -Microsoft.Build.Locator.x.y.z.nupkg: 43772 -Microsoft.Build.NuGetSdkResolver.x.y.z.nupkg: 30132 -Microsoft.Build.Runtime.x.y.z.nupkg: 835856 -Microsoft.Build.StandardCI.x.y.z.nupkg: 4762 -Microsoft.Build.Tasks.Core.x.y.z.nupkg: 1164405 -Microsoft.Build.Tasks.Git.x.y.z.nupkg: 81919 -Microsoft.Build.Utilities.Core.x.y.z.nupkg: 431843 -Microsoft.Build.x.y.z.nupkg: 2033343 -Microsoft.CodeAnalysis.Analyzers.x.y.z.nupkg: 1310366 -Microsoft.CodeAnalysis.AnalyzerUtilities.x.y.z.nupkg: 283223 -Microsoft.CodeAnalysis.Build.Tasks.x.y.z.nupkg: 173455 -Microsoft.CodeAnalysis.CodeStyle.Fixes.Symbols.x.y.z.nupkg: 394473 -Microsoft.CodeAnalysis.CodeStyle.Symbols.x.y.z.nupkg: 1115205 -Microsoft.CodeAnalysis.Common.x.y.z.nupkg: 3991227 -Microsoft.CodeAnalysis.CSharp.CodeStyle.Symbols.x.y.z.nupkg: 456139 -Microsoft.CodeAnalysis.CSharp.CodeStyle.x.y.z.nupkg: 1715955 -Microsoft.CodeAnalysis.CSharp.Features.x.y.z.nupkg: 2521389 -Microsoft.CodeAnalysis.CSharp.Scripting.x.y.z.nupkg: 120333 -Microsoft.CodeAnalysis.CSharp.Workspaces.x.y.z.nupkg: 1076810 -Microsoft.CodeAnalysis.CSharp.x.y.z.nupkg: 10672401 -Microsoft.CodeAnalysis.ExternalAccess.AspNetCore.x.y.z.nupkg: 55769 -Microsoft.CodeAnalysis.Features.x.y.z.nupkg: 6219098 -Microsoft.CodeAnalysis.NetAnalyzers.x.y.z.nupkg: 4600374 -Microsoft.CodeAnalysis.Razor.Tooling.Internal.x.y.z.nupkg: 539710 -Microsoft.CodeAnalysis.Scripting.Common.x.y.z.nupkg: 293509 -Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Symbols.x.y.z.nupkg: 211124 -Microsoft.CodeAnalysis.VisualBasic.CodeStyle.x.y.z.nupkg: 1331077 -Microsoft.CodeAnalysis.VisualBasic.Features.x.y.z.nupkg: 1844637 -Microsoft.CodeAnalysis.VisualBasic.Workspaces.x.y.z.nupkg: 1034552 -Microsoft.CodeAnalysis.VisualBasic.x.y.z.nupkg: 8001250 -Microsoft.CodeAnalysis.Workspaces.Common.x.y.z.nupkg: 4601721 -Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.Symbols.x.y.z.nupkg: 93406 -Microsoft.CodeAnalysis.Workspaces.MSBuild.x.y.z.nupkg: 5436017 -Microsoft.CodeAnalysis.x.y.z.nupkg: 5771 -Microsoft.Css.Parser.x.y.z.nupkg: 52964 -Microsoft.Deployment.DotNet.Releases.x.y.z.nupkg: 79562 -Microsoft.Diagnostics.NETCore.Client.x.y.z.nupkg: 63738 -Microsoft.DiaSymReader.x.y.z.nupkg: 57811 -Microsoft.DotNet.ApiCompat.Task.x.y.z.nupkg: 1280207 -Microsoft.DotNet.Arcade.Sdk.x.y.z.nupkg: 876107 -Microsoft.DotNet.Build.Tasks.Archives.x.y.z.nupkg: 11400 -Microsoft.DotNet.Build.Tasks.Feed.x.y.z.nupkg: 1066140 -Microsoft.DotNet.Build.Tasks.Installers.x.y.z.nupkg: 104948 -Microsoft.DotNet.Build.Tasks.Packaging.x.y.z.nupkg: 162274 -Microsoft.DotNet.Build.Tasks.TargetFramework.x.y.z.nupkg: 34973 -Microsoft.DotNet.Build.Tasks.Templating.x.y.z.nupkg: 23607 -Microsoft.DotNet.Build.Tasks.Workloads.x.y.z.nupkg: 203180 -Microsoft.DotNet.Cecil.x.y.z.nupkg: 351371 -Microsoft.DotNet.Cli.Sln.Internal.x.y.z.nupkg: 51619 -Microsoft.DotNet.Cli.Utils.x.y.z.nupkg: 95978 -Microsoft.DotNet.Cli.x.y.z.nupkg: 1116174 -Microsoft.DotNet.CMake.Sdk.x.y.z.nupkg: 14841 -Microsoft.DotNet.CodeAnalysis.x.y.z.nupkg: 95744 -Microsoft.DotNet.Common.ItemTemplates.x.y.z.nupkg: 151391 -Microsoft.DotNet.Common.ProjectTemplates.x.y.z.nupkg: 143185 -Microsoft.DotNet.Configurer.x.y.z.nupkg: 49602 -Microsoft.DotNet.GenFacades.x.y.z.nupkg: 4931468 -Microsoft.DotNet.ILCompiler.x.y.z.nupkg: 65328 -Microsoft.DotNet.InternalAbstractions.x.y.z.nupkg: 10642 -Microsoft.DotNet.MSBuildSdkResolver.x.y.z.nupkg: 114783 -Microsoft.DotNet.NuGetRepack.Tasks.x.y.z.nupkg: 85406 -Microsoft.DotNet.PackageTesting.x.y.z.nupkg: 37598 -Microsoft.DotNet.ScenarioTests.SdkTemplateTests.x.y.z.nupkg: 721284 -Microsoft.DotNet.SharedFramework.Sdk.x.y.z.nupkg: 89834 -Microsoft.DotNet.SignTool.x.y.z.nupkg: 212432 -Microsoft.DotNet.SourceBuild.Tasks.x.y.z.nupkg: 46762 -Microsoft.DotNet.Tar.x.y.z.nupkg: 15233 -microsoft.dotnet.templateLocator.x.y.z.nupkg: 105720 -Microsoft.DotNet.Test.ProjectTemplates.x.y.z.nupkg: 125600 -Microsoft.DotNet.VersionTools.Cli.x.y.z.nupkg: 945017 -Microsoft.DotNet.VersionTools.Tasks.x.y.z.nupkg: 1060865 -Microsoft.DotNet.VersionTools.x.y.z.nupkg: 211975 -Microsoft.DotNet.Web.Client.ItemTemplates.x.y.z.nupkg: 21849 -Microsoft.DotNet.Web.ItemTemplates.x.y.z.nupkg: 59574 -Microsoft.DotNet.Web.ProjectTemplates.x.y.z.nupkg: 5656137 -Microsoft.DotNet.XliffTasks.x.y.z.nupkg: 70574 -Microsoft.Extensions.Caching.Abstractions.x.y.z.nupkg: 46754 -Microsoft.Extensions.Caching.Memory.x.y.z.nupkg: 56646 -Microsoft.Extensions.Configuration.Abstractions.x.y.z.nupkg: 41739 -Microsoft.Extensions.Configuration.Binder.x.y.z.nupkg: 153974 -Microsoft.Extensions.Configuration.CommandLine.x.y.z.nupkg: 35504 -Microsoft.Extensions.Configuration.EnvironmentVariables.x.y.z.nupkg: 31722 -Microsoft.Extensions.Configuration.FileExtensions.x.y.z.nupkg: 39302 -Microsoft.Extensions.Configuration.Ini.x.y.z.nupkg: 36024 -Microsoft.Extensions.Configuration.Json.x.y.z.nupkg: 47891 -Microsoft.Extensions.Configuration.KeyPerFile.x.y.z.nupkg: 18654 -Microsoft.Extensions.Configuration.UserSecrets.x.y.z.nupkg: 39107 -Microsoft.Extensions.Configuration.x.y.z.nupkg: 57933 -Microsoft.Extensions.Configuration.Xml.x.y.z.nupkg: 46084 -Microsoft.Extensions.DependencyInjection.Abstractions.x.y.z.nupkg: 105374 -Microsoft.Extensions.DependencyInjection.x.y.z.nupkg: 129661 -Microsoft.Extensions.DependencyModel.x.y.z.nupkg: 90916 -Microsoft.Extensions.Diagnostics.Abstractions.x.y.z.nupkg: 41604 -Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.x.y.z.nupkg: 21018 -Microsoft.Extensions.Diagnostics.HealthChecks.x.y.z.nupkg: 33166 -Microsoft.Extensions.Diagnostics.x.y.z.nupkg: 45137 -Microsoft.Extensions.Features.x.y.z.nupkg: 20961 -Microsoft.Extensions.FileProviders.Abstractions.x.y.z.nupkg: 34466 -Microsoft.Extensions.FileProviders.Composite.x.y.z.nupkg: 30968 -Microsoft.Extensions.FileProviders.Embedded.x.y.z.nupkg: 25967 -Microsoft.Extensions.FileProviders.Physical.x.y.z.nupkg: 61000 -Microsoft.Extensions.FileSystemGlobbing.x.y.z.nupkg: 60601 -Microsoft.Extensions.HostFactoryResolver.Sources.x.y.z.nupkg: 21607 -Microsoft.Extensions.Hosting.Abstractions.x.y.z.nupkg: 80188 -Microsoft.Extensions.Hosting.Systemd.x.y.z.nupkg: 40350 -Microsoft.Extensions.Hosting.WindowsServices.x.y.z.nupkg: 58016 -Microsoft.Extensions.Hosting.x.y.z.nupkg: 113987 -Microsoft.Extensions.Http.x.y.z.nupkg: 92283 -Microsoft.Extensions.Identity.Core.x.y.z.nupkg: 96457 -Microsoft.Extensions.Identity.Stores.x.y.z.nupkg: 32887 -Microsoft.Extensions.Localization.Abstractions.x.y.z.nupkg: 17273 -Microsoft.Extensions.Localization.x.y.z.nupkg: 24839 -Microsoft.Extensions.Logging.Abstractions.x.y.z.nupkg: 238641 -Microsoft.Extensions.Logging.Configuration.x.y.z.nupkg: 39074 -Microsoft.Extensions.Logging.Console.x.y.z.nupkg: 83462 -Microsoft.Extensions.Logging.Debug.x.y.z.nupkg: 31284 -Microsoft.Extensions.Logging.EventLog.x.y.z.nupkg: 36645 -Microsoft.Extensions.Logging.EventSource.x.y.z.nupkg: 43973 -Microsoft.Extensions.Logging.TraceSource.x.y.z.nupkg: 33392 -Microsoft.Extensions.Logging.x.y.z.nupkg: 85477 -Microsoft.Extensions.ObjectPool.x.y.z.nupkg: 29184 -Microsoft.Extensions.Options.ConfigurationExtensions.x.y.z.nupkg: 35522 -Microsoft.Extensions.Options.DataAnnotations.x.y.z.nupkg: 41081 -Microsoft.Extensions.Options.x.y.z.nupkg: 203204 -Microsoft.Extensions.Primitives.x.y.z.nupkg: 67322 -Microsoft.Extensions.WebEncoders.x.y.z.nupkg: 18198 -Microsoft.FSharp.Compiler.x.y.z.nupkg: 31964740 -Microsoft.IdentityModel.Abstractions.x.y.z.nupkg: 8827 -Microsoft.IdentityModel.JsonWebTokens.x.y.z.nupkg: 50665 -Microsoft.IdentityModel.Logging.x.y.z.nupkg: 18933 -Microsoft.IdentityModel.Tokens.x.y.z.nupkg: 128093 -Microsoft.Internal.Runtime.AspNetCore.Transport.x.y.z.nupkg: 1193422 -Microsoft.Internal.Runtime.DotNetApiDocs.Transport.x.y.z.nupkg: 1771155 -Microsoft.Internal.Runtime.WindowsDesktop.Transport.x.y.z.nupkg: 1353080 -Microsoft.JSInterop.x.y.z.nupkg: 41472 -Microsoft.NET.Build.Containers.x.y.z.nupkg: 1558341 -Microsoft.NET.Build.Extensions.x.y.z.nupkg: 853027 -Microsoft.Net.Compilers.Toolset.x.y.z.nupkg: 8076123 -Microsoft.NET.HostModel.x.y.z.nupkg: 54688 -Microsoft.Net.Http.Headers.x.y.z.nupkg: 55645 -Microsoft.NET.ILLink.Tasks.x.y.z.nupkg: 661321 -Microsoft.NET.ILLink.x.y.z.nupkg: 271948 -Microsoft.NET.Sdk.Aspire.Manifest-x.y.z.nupkg: 9185 -Microsoft.NET.Sdk.BlazorWebAssembly.x.y.z.nupkg: 46221 -Microsoft.NET.Sdk.IL.x.y.z.nupkg: 21157 -Microsoft.NET.Sdk.Publish.x.y.z.nupkg: 447041 -Microsoft.NET.Sdk.Razor.SourceGenerators.Transport.x.y.z.nupkg: 603135 -Microsoft.NET.Sdk.Razor.x.y.z.nupkg: 94941 -Microsoft.NET.Sdk.StaticWebAssets.x.y.z.nupkg: 199091 -Microsoft.NET.Sdk.Web.ProjectSystem.x.y.z.nupkg: 19201 -Microsoft.NET.Sdk.Web.x.y.z.nupkg: 86770 -Microsoft.NET.Sdk.WebAssembly.x.y.z.nupkg: 18159 -Microsoft.NET.Sdk.Worker.x.y.z.nupkg: 16652 -Microsoft.NET.Sdk.WorkloadManifestReader.x.y.z.nupkg: 91689 -Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.x.y.z.nupkg: 14414 -Microsoft.NET.Sdk.x.y.z.nupkg: 994666 -Microsoft.NET.StringTools.x.y.z.nupkg: 74038 -Microsoft.NET.WebAssembly.Threading.x.y.z.nupkg: 44064 -Microsoft.NET.WebAssembly.Webcil.x.y.z.nupkg: 31426 -Microsoft.NET.Workload.Emscripten.Current.Manifest-x.y.z-1.nupkg: 6044 -Microsoft.NET.Workload.Emscripten.Current.Manifest-x.y.z.nupkg: 6036 -Microsoft.NET.Workload.Emscripten.net6.Manifest-x.y.z.nupkg: 5613 -Microsoft.NET.Workload.Emscripten.net7.Manifest-x.y.z.nupkg: 5662 -Microsoft.NET.Workload.Emscripten.net8.Manifest-x.y.z.nupkg: 5708 -Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-x.y.z.nupkg: 27166 -Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-x.y.z.nupkg: 22841 -Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-x.y.z.nupkg: 23025 -Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-x.y.z.nupkg: 23077 -Microsoft.NETCore.App.Crossgen2.banana-rid.x.y.z.nupkg: 114896814 -Microsoft.NETCore.App.Host.banana-rid.x.y.z.nupkg: 89883967 -Microsoft.NETCore.App.Ref.x.y.z.nupkg: 5005493 -Microsoft.NETCore.App.Runtime.banana-rid.x.y.z.nupkg: 156959750 -Microsoft.NETCore.DotNetAppHost.x.y.z.nupkg: 17281 -Microsoft.NETCore.ILAsm.x.y.z.nupkg: 17155 -Microsoft.NETCore.ILDAsm.x.y.z.nupkg: 17168 -Microsoft.NETCore.Platforms.x.y.z.nupkg: 23855 -Microsoft.NETCore.TestHost.x.y.z.nupkg: 17190 -Microsoft.SourceLink.AzureDevOpsServer.Git.x.y.z.nupkg: 58709 -Microsoft.SourceLink.AzureRepos.Git.x.y.z.nupkg: 59839 -Microsoft.SourceLink.Bitbucket.Git.x.y.z.nupkg: 54300 -Microsoft.SourceLink.Common.x.y.z.nupkg: 50004 -Microsoft.SourceLink.Gitea.x.y.z.nupkg: 52228 -Microsoft.SourceLink.Gitee.x.y.z.nupkg: 52959 -Microsoft.SourceLink.GitHub.x.y.z.nupkg: 53061 -Microsoft.SourceLink.GitLab.x.y.z.nupkg: 53221 -Microsoft.SourceLink.GitWeb.x.y.z.nupkg: 54812 -Microsoft.SourceLink.Tools.x.y.z.nupkg: 6687 -Microsoft.TemplateEngine.Abstractions.x.y.z.nupkg: 58045 -Microsoft.TemplateEngine.Cli.x.y.z.nupkg: 396205 -Microsoft.TemplateEngine.Core.Contracts.x.y.z.nupkg: 18452 -Microsoft.TemplateEngine.Core.x.y.z.nupkg: 116388 -Microsoft.TemplateEngine.Edge.x.y.z.nupkg: 268933 -Microsoft.TemplateEngine.IDE.x.y.z.nupkg: 24725 -Microsoft.TemplateEngine.Orchestrator.RunnableProjects.x.y.z.nupkg: 247668 -Microsoft.TemplateEngine.Samples.x.y.z.nupkg: 41756 -Microsoft.TemplateEngine.Utils.x.y.z.nupkg: 101303 -Microsoft.TemplateSearch.Common.x.y.z.nupkg: 85026 -Microsoft.TestPlatform.Build.x.y.z.nupkg: 62637 -Microsoft.TestPlatform.CLI.x.y.z.nupkg: 2185903 -Microsoft.Web.Xdt.x.y.z.nupkg: 106436 -Microsoft.Win32.Registry.AccessControl.x.y.z.nupkg: 35537 -Microsoft.Win32.SystemEvents.x.y.z.nupkg: 65001 -Microsoft.XmlSerializer.Generator.x.y.z.nupkg: 140637 -Newtonsoft.Json.x.y.z.nupkg: 925193 -NuGet.Build.Tasks.Console.x.y.z.nupkg: 32251 -NuGet.Build.Tasks.Pack.x.y.z.nupkg: 2505830 -NuGet.Build.Tasks.x.y.z.nupkg: 62427 -NuGet.CommandLine.XPlat.x.y.z.nupkg: 125259 -NuGet.Commands.x.y.z.nupkg: 488315 -NuGet.Common.x.y.z.nupkg: 116180 -NuGet.Configuration.x.y.z.nupkg: 149037 -NuGet.Credentials.x.y.z.nupkg: 60901 -NuGet.DependencyResolver.Core.x.y.z.nupkg: 86891 -NuGet.Frameworks.x.y.z.nupkg: 114025 -NuGet.LibraryModel.x.y.z.nupkg: 51201 -NuGet.PackageManagement.x.y.z.nupkg: 379858 -NuGet.Packaging.Core.x.y.z.nupkg: 11869 -NuGet.Packaging.x.y.z.nupkg: 531179 -NuGet.ProjectModel.x.y.z.nupkg: 190097 -NuGet.Protocol.x.y.z.nupkg: 628135 -NuGet.Resolver.x.y.z.nupkg: 68638 -NuGet.Versioning.x.y.z.nupkg: 63013 -PackageVersions.props: 74785 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.AspNetCore.App.Analyzers.dll: 240128 -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: 203264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll: 160768 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8192 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 8704 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll: 7680 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10240 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll: 11264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 11264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll: 11264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll: 11264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 11776 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 11264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/Microsoft.Extensions.Logging.Generators.dll: 65536 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/Microsoft.Extensions.Options.SourceGeneration.dll: 121856 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 11264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll: 12800 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 12800 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll: 10240 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/analyzers/dotnet/roslynx.y/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10240 -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/analyzers/dotnet/roslynx.y/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll: 10240 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/data/FrameworkList.xml: 33287 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/data/PackageOverrides.txt: 6850 -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: 23040 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Antiforgery.xml: 30195 -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: 13312 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Authentication.BearerToken.xml: 14617 -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: 29696 -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: 88665 -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: 77912 -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: 125440 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Endpoints.dll: 87552 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Endpoints.xml: 54681 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Forms.dll: 17920 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Forms.xml: 24831 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Server.dll: 104448 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.Server.xml: 153538 -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: 156585 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Components.xml: 402145 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Connections.Abstractions.dll: 24064 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Connections.Abstractions.xml: 61790 -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: 26064 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.dll: 70656 -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: 16453 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.DataProtection.xml: 160322 -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: 43008 -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: 64845 -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: 11264 -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: 67072 -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: 75264 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Abstractions.xml: 218773 -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: 6563 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Connections.dll: 48640 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Connections.xml: 34667 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.dll: 56320 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Extensions.dll: 104448 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.Extensions.xml: 95511 -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: 232207 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Http.xml: 104292 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpLogging.dll: 32768 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.HttpLogging.xml: 58772 -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: 92455 -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: 74752 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Abstractions.xml: 340589 -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: 337920 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Core.xml: 1165058 -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: 52224 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Mvc.Razor.xml: 127276 -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: 116224 -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: 20082 -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: 16896 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Razor.Runtime.xml: 28324 -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: 15872 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Routing.Abstractions.xml: 38227 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Routing.dll: 120832 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Routing.xml: 411486 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.HttpSys.dll: 9728 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.HttpSys.xml: 3861 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.IIS.dll: 9216 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.IIS.xml: 5185 -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: 353280 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.Server.Kestrel.Core.xml: 256750 -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: 25600 -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: 41416 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Core.dll: 73728 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.AspNetCore.SignalR.Core.xml: 160116 -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: 34304 -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: 45465 -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: 16131 -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: 16842 -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: 8332 -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: 5466 -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: 5365 -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: 10011 -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: 9275 -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: 8940 -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: 11730 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Configuration.xml: 29948 -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: 10927 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 19456 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.xml: 159585 -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: 9297 -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: 22689 -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: 4860 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Features.dll: 12288 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Features.xml: 15478 -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: 9313 -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: 5603 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Embedded.dll: 12288 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.FileProviders.Embedded.xml: 12546 -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: 23477 -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: 59315 -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: 38612 -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: 41658 -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: 76708 -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: 257041 -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: 21285 -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: 68537 -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: 6792 -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: 28289 -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: 2973 -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: 7141 -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: 4144 -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: 7825 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Extensions.Logging.xml: 29859 -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: 11516 -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: 2289 -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: 103245 -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: 82369 -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: 25600 -packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.JSInterop.xml: 58490 -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: 39149 -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: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.App.deps.json: 111 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.App.runtimeconfig.json: 120 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.Abstractions.dll: 129 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.BearerToken.dll: 128 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.Cookies.dll: 124 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.Core.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authentication.OAuth.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authorization.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Authorization.Policy.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Authorization.dll: 126 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.dll: 112 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Endpoints.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Forms.dll: 118 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Server.dll: 119 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Components.Web.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Connections.Abstractions.dll: 126 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.CookiePolicy.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Cors.dll: 106 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Cryptography.Internal.dll: 123 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll: 128 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.DataProtection.Abstractions.dll: 129 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.DataProtection.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.DataProtection.Extensions.dll: 127 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Diagnostics.Abstractions.dll: 126 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Diagnostics.dll: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll: 126 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.dll: 101 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HostFiltering.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Hosting.Abstractions.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Hosting.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll: 129 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Html.Abstractions.dll: 119 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Abstractions.dll: 119 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Connections.Common.dll: 125 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Connections.dll: 118 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.dll: 106 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Extensions.dll: 117 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Features.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Http.Results.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HttpLogging.dll: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HttpOverrides.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.HttpsPolicy.dll: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Identity.dll: 110 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Localization.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Localization.Routing.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Metadata.dll: 110 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Abstractions.dll: 118 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.ApiExplorer.dll: 117 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Core.dll: 110 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Cors.dll: 110 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.DataAnnotations.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.dll: 105 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Json.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Formatters.Xml.dll: 120 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Localization.dll: 118 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.Razor.dll: 111 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.RazorPages.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.TagHelpers.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Mvc.ViewFeatures.dll: 118 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.OutputCaching.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.RateLimiting.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Razor.dll: 107 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Razor.Runtime.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.RequestDecompression.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll: 130 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.ResponseCaching.dll: 117 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.ResponseCompression.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Rewrite.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Routing.Abstractions.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Routing.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.HttpSys.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.IIS.dll: 112 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.IISIntegration.dll: 123 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Core.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll: 137 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll: 131 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll: 134 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.Session.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.Common.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.Core.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.SignalR.Protocols.Json.dll: 124 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.StaticFiles.dll: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.WebSockets.dll: 112 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.AspNetCore.WebUtilities.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Caching.Abstractions.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Caching.Memory.dll: 116 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Abstractions.dll: 128 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Binder.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.CommandLine.dll: 127 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.EnvironmentVariables.dll: 136 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.FileExtensions.dll: 130 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Ini.dll: 119 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Json.dll: 120 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.KeyPerFile.dll: 126 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.UserSecrets.dll: 127 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Configuration.Xml.dll: 119 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 134 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.DependencyInjection.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.Abstractions.dll: 126 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.dll: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll: 139 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Diagnostics.HealthChecks.dll: 126 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Features.dll: 110 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Abstractions.dll: 128 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Composite.dll: 125 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Embedded.dll: 124 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileProviders.Physical.dll: 124 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.FileSystemGlobbing.dll: 120 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Hosting.Abstractions.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Hosting.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Http.dll: 106 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Identity.Core.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Identity.Stores.dll: 117 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Localization.Abstractions.dll: 127 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Localization.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Abstractions.dll: 122 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Configuration.dll: 123 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Console.dll: 117 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.Debug.dll: 115 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.EventLog.dll: 118 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.EventSource.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Logging.TraceSource.dll: 121 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.ObjectPool.dll: 112 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 133 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Options.DataAnnotations.dll: 125 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Options.dll: 109 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.Primitives.dll: 112 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Extensions.WebEncoders.dll: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.JSInterop.dll: 100 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Net.Http.Headers.dll: 107 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.EventLog.dll: 108 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Pipelines.dll: 100 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Pkcs.dll: 114 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Xml.dll: 113 -packs/Microsoft.AspNetCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.RateLimiting.dll: 110 -packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/apphost: 767840 -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: 1437504 -packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/libnethost.so: 696056 -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: 202905088 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 67584 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Interop.LibraryImportGenerator.resources.dll: 67584 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/cs/Microsoft.Interop.SourceGeneration.resources.dll: 67584 -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: 73728 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/Microsoft.Interop.LibraryImportGenerator.resources.dll: 73728 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/de/Microsoft.Interop.SourceGeneration.resources.dll: 73728 -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: 70656 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/Microsoft.Interop.LibraryImportGenerator.resources.dll: 70656 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/es/Microsoft.Interop.SourceGeneration.resources.dll: 70656 -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: 72704 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/Microsoft.Interop.LibraryImportGenerator.resources.dll: 72704 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/fr/Microsoft.Interop.SourceGeneration.resources.dll: 72704 -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: 70144 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/Microsoft.Interop.LibraryImportGenerator.resources.dll: 70144 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/it/Microsoft.Interop.SourceGeneration.resources.dll: 70144 -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: 79360 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/Microsoft.Interop.LibraryImportGenerator.resources.dll: 79360 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ja/Microsoft.Interop.SourceGeneration.resources.dll: 79360 -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: 71680 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/Microsoft.Interop.LibraryImportGenerator.resources.dll: 71680 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ko/Microsoft.Interop.SourceGeneration.resources.dll: 71680 -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: 306176 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll: 122880 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll: 259072 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll: 438272 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 73728 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Interop.LibraryImportGenerator.resources.dll: 73728 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pl/Microsoft.Interop.SourceGeneration.resources.dll: 73728 -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: 69120 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.LibraryImportGenerator.resources.dll: 69120 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.SourceGeneration.resources.dll: 69120 -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: 92160 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/Microsoft.Interop.LibraryImportGenerator.resources.dll: 92160 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/ru/Microsoft.Interop.SourceGeneration.resources.dll: 92160 -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: 179200 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll: 331776 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Interop.ComInterfaceGenerator.resources.dll: 69632 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Interop.LibraryImportGenerator.resources.dll: 69632 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/tr/Microsoft.Interop.SourceGeneration.resources.dll: 69632 -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: 62976 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.LibraryImportGenerator.resources.dll: 62976 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.SourceGeneration.resources.dll: 62976 -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: 62464 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.LibraryImportGenerator.resources.dll: 62464 -packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.SourceGeneration.resources.dll: 62464 -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: 34510 -packs/Microsoft.NETCore.App.Ref/x.y.z/data/PackageOverrides.txt: 7496 -packs/Microsoft.NETCore.App.Ref/x.y.z/data/PlatformManifest.txt: 27668 -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: 537046 -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: 138791 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Collections.dll: 36352 -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: 526045 -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: 369206 -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: 110682 -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: 77719 -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: 1421244 -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: 151311 -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: 107607 -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: 58749 -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: 77720 -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: 162994 -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: 29447 -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: 65684 -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: 9558 -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: 47758 -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: 28947 -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: 83115 -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: 22528 -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: 670894 -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: 20992 -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: 215764 -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: 348932 -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: 50176 -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: 61424 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Http.xml: 310728 -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: 133703 -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: 75974 -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: 170154 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Quic.dll: 12800 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Quic.xml: 35990 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Requests.dll: 30720 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.Requests.xml: 173557 -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: 297898 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Net.ServicePoint.dll: 5120 -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: 478683 -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: 114850 -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: 13041 -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: 16227 -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: 255064 -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: 46450 -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: 2576 -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: 33280 -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: 58253 -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: 361078 -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: 646374 -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: 821760 -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: 5120 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.dll: 88064 -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: 79204 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.RuntimeInformation.dll: 5120 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.InteropServices.xml: 691361 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Intrinsics.dll: 289280 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Intrinsics.xml: 2727813 -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: 174914 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.Serialization.dll: 6656 -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: 67696 -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: 7402161 -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: 5632 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.dll: 128512 -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: 6656 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.xml: 1456724 -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: 90049 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Security.SecureString.dll: 5120 -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: 120222 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.dll: 16384 -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: 64512 -packs/Microsoft.NETCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.xml: 531260 -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: 22528 -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: 74377 -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: 252148 -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: 77176 -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: 14427 -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: 1084668 -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: 262519 -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: 39624 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.CSharp.dll: 95 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.NETCore.App.deps.json: 106 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.NETCore.App.runtimeconfig.json: 115 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.VisualBasic.Core.dll: 105 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.VisualBasic.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Win32.Primitives.dll: 105 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/Microsoft.Win32.Registry.dll: 103 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/mscorlib.dll: 87 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/netstandard.dll: 90 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.AppContext.dll: 96 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Buffers.dll: 93 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.Concurrent.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.dll: 97 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.Immutable.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.NonGeneric.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Collections.Specialized.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.Annotations.dll: 112 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.DataAnnotations.dll: 116 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.EventBasedAsync.dll: 116 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.Primitives.dll: 111 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ComponentModel.TypeConverter.dll: 114 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Configuration.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Console.dll: 93 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Core.dll: 90 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Data.Common.dll: 97 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Data.DataSetExtensions.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Data.dll: 90 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Contracts.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Debug.dll: 103 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.DiagnosticSource.dll: 114 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.FileVersionInfo.dll: 113 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Process.dll: 105 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.StackTrace.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.TextWriterTraceListener.dll: 121 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Tools.dll: 103 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.TraceSource.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Diagnostics.Tracing.dll: 105 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.dll: 85 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Drawing.dll: 93 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Drawing.Primitives.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Dynamic.Runtime.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Formats.Asn1.dll: 98 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Formats.Tar.dll: 97 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Globalization.Calendars.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Globalization.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Globalization.Extensions.dll: 110 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.Brotli.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.FileSystem.dll: 111 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Compression.ZipFile.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.dll: 88 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.AccessControl.dll: 113 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.DriveInfo.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.Primitives.dll: 110 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.FileSystem.Watcher.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.IsolatedStorage.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.MemoryMappedFiles.dll: 106 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Pipes.AccessControl.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.Pipes.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.IO.UnmanagedMemoryStream.dll: 110 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.dll: 90 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.Expressions.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.Parallel.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Linq.Queryable.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Memory.dll: 92 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.dll: 89 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Http.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Http.Json.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.HttpListener.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Mail.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.NameResolution.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.NetworkInformation.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Ping.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Primitives.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Quic.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Requests.dll: 98 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Security.dll: 98 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.ServicePoint.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.Sockets.dll: 97 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebClient.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebHeaderCollection.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebProxy.dll: 98 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebSockets.Client.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Net.WebSockets.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Numerics.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Numerics.Vectors.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ObjectModel.dll: 97 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.CoreLib.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.DataContractSerialization.dll: 119 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.Uri.dll: 97 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.Xml.dll: 97 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Private.Xml.Linq.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.DispatchProxy.dll: 110 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.dll: 96 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Emit.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Emit.ILGeneration.dll: 114 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Emit.Lightweight.dll: 113 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Extensions.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Metadata.dll: 105 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.Primitives.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Reflection.TypeExtensions.dll: 111 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Resources.Reader.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Resources.ResourceManager.dll: 111 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Resources.Writer.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.CompilerServices.Unsafe.dll: 117 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.CompilerServices.VisualC.dll: 118 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.dll: 93 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Extensions.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Handles.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.InteropServices.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.InteropServices.JavaScript.dll: 120 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.InteropServices.RuntimeInformation.dll: 128 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Intrinsics.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Loader.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Numerics.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Formatters.dll: 118 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Json.dll: 112 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Primitives.dll: 118 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Runtime.Serialization.Xml.dll: 111 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.AccessControl.dll: 108 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Claims.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Algorithms.dll: 118 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Cng.dll: 111 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Csp.dll: 111 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Encoding.dll: 116 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.OpenSsl.dll: 115 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.Primitives.dll: 118 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Cryptography.X509Certificates.dll: 124 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Principal.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.Principal.Windows.dll: 112 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Security.SecureString.dll: 107 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ServiceModel.Web.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ServiceProcess.dll: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encoding.CodePages.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encoding.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encoding.Extensions.dll: 110 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Encodings.Web.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.Json.dll: 95 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Text.RegularExpressions.dll: 109 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Channels.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.dll: 95 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Overlapped.dll: 106 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.Dataflow.dll: 110 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.Extensions.dll: 112 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Tasks.Parallel.dll: 110 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Thread.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.ThreadPool.dll: 106 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Threading.Timer.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Transactions.dll: 98 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Transactions.Local.dll: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.ValueTuple.dll: 96 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Web.dll: 89 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Web.HttpUtility.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Windows.dll: 93 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.dll: 89 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.Linq.dll: 94 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.ReaderWriter.dll: 102 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.Serialization.dll: 103 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XDocument.dll: 99 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XmlDocument.dll: 101 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XmlSerializer.dll: 103 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XPath.dll: 95 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/System.Xml.XPath.XDocument.dll: 105 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/lib/netx.y/WindowsBase.dll: 90 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/createdump: 82 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libclrgc.so: 83 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libclrgcexp.so: 86 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libclrjit.so: 84 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libcoreclr.so: 85 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libcoreclrtraceptprovider.so: 100 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libhostfxr.so: 65 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libhostpolicy.so: 88 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libmscordaccore.so: 90 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libmscordbi.so: 86 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Globalization.Native.so: 105 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.IO.Compression.Native.so: 106 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Native.so: 91 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Net.Security.Native.so: 104 -packs/Microsoft.NETCore.App.Runtime.banana-rid/x.y.z/runtimes/banana-rid/native/libSystem.Security.Cryptography.Native.OpenSsl.so: 121 -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.nupkg: 787364 -runtime.banana-rid.Microsoft.DotNet.ILCompiler.x.y.z.nupkg: 124999992 -runtime.banana-rid.Microsoft.NETCore.DotNetAppHost.x.y.z.nupkg: 92093343 -runtime.banana-rid.Microsoft.NETCore.ILAsm.x.y.z.nupkg: 4247505 -runtime.banana-rid.Microsoft.NETCore.ILDAsm.x.y.z.nupkg: 4114134 -runtime.banana-rid.Microsoft.NETCore.TestHost.x.y.z.nupkg: 275565 -runtime.native.System.IO.Ports.x.y.z.nupkg: 17097 -sdk-manifests/x.y.z/microsoft.net.sdk.aspire/x.y.z/WorkloadManifest.Aspire.targets: 217 -sdk-manifests/x.y.z/microsoft.net.sdk.aspire/x.y.z/WorkloadManifest.json: 1914 -sdk-manifests/x.y.z/microsoft.net.sdk.aspire/x.y.z/WorkloadManifest.targets: 176 -sdk-manifests/x.y.z/microsoft.net.workload.emscripten.current/x.y.z/WorkloadManifest.json: 3427 -sdk-manifests/x.y.z/microsoft.net.workload.emscripten.current/x.y.z/WorkloadManifest.targets: 2363 -sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net6/x.y.z/WorkloadManifest.json: 1961 -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: 2540 -sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net7/x.y.z/WorkloadManifest.targets: 748 -sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net8/x.y.z/WorkloadManifest.json: 2816 -sdk-manifests/x.y.z/microsoft.net.workload.emscripten.net8/x.y.z/WorkloadManifest.targets: 836 -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/WasmFeatures.props: 1149 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadManifest.json: 17642 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadManifest.targets: 18271 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadManifest.Wasi.targets: 979 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.current/x.y.z/WorkloadTelemetry.targets: 4012 -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: 17519 -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: 18668 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net7/x.y.z/WorkloadManifest.targets: 5900 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.cs.json: 94 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.de.json: 84 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.en.json: 276 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.es.json: 108 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.fr.json: 96 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.it.json: 99 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.ja.json: 91 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.ko.json: 87 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.pl.json: 113 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.pt-BR.json: 97 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.ru.json: 102 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.tr.json: 80 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.zh-Hans.json: 86 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/localize/WorkloadManifest.zh-Hant.json: 86 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/WorkloadManifest.json: 18094 -sdk-manifests/x.y.z/microsoft.net.workload.mono.toolchain.net8/x.y.z/WorkloadManifest.targets: 5747 -sdk-manifests/x.y.z/workloadsets/x.y.z/baseline.workloadset.json: 799 -sdk/x.y.z/.toolsetversion: 77 -sdk/x.y.z/.version: 114 -sdk/x.y.z/AppHostTemplate/apphost: 767840 -sdk/x.y.z/Containers/build/Microsoft.NET.Build.Containers.props: 1590 -sdk/x.y.z/Containers/build/Microsoft.NET.Build.Containers.targets: 20007 -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: 16384 -sdk/x.y.z/Containers/tasks/netx.y/cs/System.CommandLine.resources.dll: 8704 -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: 17408 -sdk/x.y.z/Containers/tasks/netx.y/de/System.CommandLine.resources.dll: 8704 -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: 16896 -sdk/x.y.z/Containers/tasks/netx.y/es/System.CommandLine.resources.dll: 8704 -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: 17408 -sdk/x.y.z/Containers/tasks/netx.y/fr/System.CommandLine.resources.dll: 8704 -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: 17408 -sdk/x.y.z/Containers/tasks/netx.y/it/System.CommandLine.resources.dll: 8704 -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: 18944 -sdk/x.y.z/Containers/tasks/netx.y/ja/System.CommandLine.resources.dll: 8704 -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: 17408 -sdk/x.y.z/Containers/tasks/netx.y/ko/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/Containers/tasks/netx.y/Microsoft.DotNet.Cli.Utils.dll: 244224 -sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 120320 -sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.DependencyInjection.dll: 196608 -sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.DependencyModel.dll: 168960 -sdk/x.y.z/Containers/tasks/netx.y/Microsoft.Extensions.Logging.Abstractions.dll: 124416 -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: 117760 -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: 37253 -sdk/x.y.z/Containers/tasks/netx.y/Microsoft.NET.Build.Containers.dll: 535040 -sdk/x.y.z/Containers/tasks/netx.y/MSBuild.dll: 800768 -sdk/x.y.z/Containers/tasks/netx.y/Newtonsoft.Json.dll: 1843200 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.Common.dll: 365568 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.Configuration.dll: 596992 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.DependencyResolver.Core.dll: 299008 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.Frameworks.dll: 338944 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.LibraryModel.dll: 141824 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.Packaging.dll: 1693696 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.ProjectModel.dll: 785408 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.Protocol.dll: 2043904 -sdk/x.y.z/Containers/tasks/netx.y/NuGet.Versioning.dll: 146944 -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: 17408 -sdk/x.y.z/Containers/tasks/netx.y/pl/System.CommandLine.resources.dll: 8704 -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: 16384 -sdk/x.y.z/Containers/tasks/netx.y/pt-BR/System.CommandLine.resources.dll: 8704 -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: 20480 -sdk/x.y.z/Containers/tasks/netx.y/ru/System.CommandLine.resources.dll: 9216 -sdk/x.y.z/Containers/tasks/netx.y/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll: 741376 -sdk/x.y.z/Containers/tasks/netx.y/System.CommandLine.dll: 337408 -sdk/x.y.z/Containers/tasks/netx.y/System.Security.Cryptography.Pkcs.dll: 621056 -sdk/x.y.z/Containers/tasks/netx.y/System.Security.Cryptography.ProtectedData.dll: 34304 -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: 16896 -sdk/x.y.z/Containers/tasks/netx.y/tr/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/Containers/tasks/netx.y/Valleysoft.DockerCredsProvider.dll: 39936 -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: 15872 -sdk/x.y.z/Containers/tasks/netx.y/zh-Hans/System.CommandLine.resources.dll: 8704 -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: 15360 -sdk/x.y.z/Containers/tasks/netx.y/zh-Hant/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/cs/dotnet.resources.dll: 189952 -sdk/x.y.z/cs/Microsoft.Build.resources.dll: 102912 -sdk/x.y.z/cs/Microsoft.Build.Tasks.Core.resources.dll: 155136 -sdk/x.y.z/cs/Microsoft.Build.Utilities.Core.resources.dll: 26112 -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: 6656 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/cs/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/cs/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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: 10752 -sdk/x.y.z/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 -sdk/x.y.z/cs/MSBuild.resources.dll: 62464 -sdk/x.y.z/cs/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/cs/vstest.console.resources.dll: 40448 -sdk/x.y.z/Current/Microsoft.Common.CrossTargeting.targets/ImportAfter/Microsoft.TestPlatform.CrossTargeting.targets: 4316 -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: 28365 -sdk/x.y.z/datacollector.dll: 46592 -sdk/x.y.z/datacollector.dll.config: 1361 -sdk/x.y.z/datacollector.runtimeconfig.json: 375 -sdk/x.y.z/de/dotnet.resources.dll: 198656 -sdk/x.y.z/de/Microsoft.Build.resources.dll: 109056 -sdk/x.y.z/de/Microsoft.Build.Tasks.Core.resources.dll: 161280 -sdk/x.y.z/de/Microsoft.Build.Utilities.Core.resources.dll: 27136 -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: 9216 -sdk/x.y.z/de/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 9216 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/de/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/de/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/de/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 -sdk/x.y.z/de/MSBuild.resources.dll: 64000 -sdk/x.y.z/de/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/de/vstest.console.resources.dll: 41472 -sdk/x.y.z/dotnet.deps.json: 82677 -sdk/x.y.z/dotnet.dll: 2422784 -sdk/x.y.z/dotnet.runtimeconfig.json: 347 -sdk/x.y.z/DotnetTools/dotnet-dev-certs/x.y.z/tools/netx.y/any/dotnet-dev-certs.deps.json: 454 -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: 347 -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/BuildHost-netcore/cs/Microsoft.CodeAnalysis.resources.dll: 36864 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/cs/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/de/Microsoft.CodeAnalysis.resources.dll: 38912 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/de/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/de/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/es/Microsoft.CodeAnalysis.resources.dll: 38400 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/es/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/es/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/fr/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 40448 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/fr/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Humanizer.dll: 509952 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/it/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/it/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/it/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ja/Microsoft.CodeAnalysis.resources.dll: 42496 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll: 43008 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ja/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ko/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ko/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Build.Locator.dll: 32256 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.CodeAnalysis.dll: 2946560 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.dll: 3880960 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.deps.json: 46488 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll: 80896 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll.config: 34346 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.runtimeconfig.json: 375 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Configuration.Abstractions.dll: 17408 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Configuration.Binder.dll: 32256 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Configuration.dll: 33280 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 53760 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.DependencyInjection.dll: 81920 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Logging.Abstractions.dll: 54784 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Logging.Configuration.dll: 17408 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Logging.Console.dll: 61440 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Logging.dll: 40960 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 12288 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Options.dll: 54272 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Microsoft.Extensions.Primitives.dll: 33280 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/Newtonsoft.Json.dll: 692736 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/pl/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/pl/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/pt-BR/Microsoft.CodeAnalysis.resources.dll: 37888 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll: 38912 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/pt-BR/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ru/Microsoft.CodeAnalysis.resources.dll: 49152 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll: 47104 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/ru/System.CommandLine.resources.dll: 9216 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/runtimes/browser/lib/netx.y/System.Text.Encodings.Web.dll: 60416 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Collections.Immutable.dll: 235520 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.CommandLine.dll: 136192 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Composition.AttributedModel.dll: 9728 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Composition.Convention.dll: 43008 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Composition.Hosting.dll: 45056 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Composition.Runtime.dll: 15360 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Composition.TypedParts.dll: 54784 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.IO.Pipelines.dll: 67584 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Reflection.Metadata.dll: 465408 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Text.Encodings.Web.dll: 59904 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/System.Text.Json.dll: 577536 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/tr/Microsoft.CodeAnalysis.resources.dll: 37376 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/tr/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/zh-Hans/Microsoft.CodeAnalysis.resources.dll: 34304 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/zh-Hans/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/zh-Hant/Microsoft.CodeAnalysis.resources.dll: 34304 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 -sdk/x.y.z/DotnetTools/dotnet-format/BuildHost-netcore/zh-Hant/System.CommandLine.resources.dll: 8704 -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: 36352 -sdk/x.y.z/DotnetTools/dotnet-format/cs/Microsoft.CodeAnalysis.CSharp.resources.dll: 413696 -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: 36864 -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: 290816 -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: 8704 -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: 36864 -sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.CSharp.resources.dll: 442880 -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: 188928 -sdk/x.y.z/DotnetTools/dotnet-format/de/Microsoft.CodeAnalysis.resources.dll: 38912 -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: 306688 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.deps.json: 73859 -sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.dll: 158720 -sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.dll.config: 33595 -sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.runtimeconfig.json: 413 -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: 433664 -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: 301568 -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: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/fr/dotnet-format.resources.dll: 19456 -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: 444416 -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: 39424 -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: 308736 -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: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/Humanizer.dll: 509952 -sdk/x.y.z/DotnetTools/dotnet-format/it/dotnet-format.resources.dll: 19456 -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: 439808 -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: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/it/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 -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: 306176 -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: 7168 -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: 8704 -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: 38912 -sdk/x.y.z/DotnetTools/dotnet-format/ja/Microsoft.CodeAnalysis.CSharp.resources.dll: 485888 -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: 42496 -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: 8704 -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: 444928 -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: 39424 -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: 311296 -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: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Bcl.AsyncInterfaces.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Build.Locator.dll: 32256 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Build.Tasks.Core.dll: 1126912 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Build.Utilities.Core.dll: 279040 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.AnalyzerUtilities.dll: 657408 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.CSharp.dll: 6423552 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.CSharp.Features.dll: 2065920 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.CSharp.Workspaces.dll: 886272 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.dll: 2946560 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Features.dll: 4928000 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Scripting.dll: 127488 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.VisualBasic.dll: 4813824 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.VisualBasic.Features.dll: 1135104 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll: 781824 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Workspaces.dll: 3880960 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll: 80896 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll: 101376 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.DiaSymReader.dll: 76800 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 53760 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.DependencyInjection.dll: 81920 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.FileSystemGlobbing.dll: 35328 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Logging.Abstractions.dll: 54784 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Logging.dll: 40960 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Options.dll: 54272 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Extensions.Primitives.dll: 33280 -sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.NET.StringTools.dll: 20480 -sdk/x.y.z/DotnetTools/dotnet-format/Newtonsoft.Json.dll: 692736 -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: 445952 -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: 185344 -sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-format/pl/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 -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: 316416 -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: 7168 -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: 8704 -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: 425984 -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: 37888 -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: 295936 -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: 7168 -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: 8704 -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: 589312 -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: 49152 -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: 398336 -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: 7680 -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: 9216 -sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll: 162304 -sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll: 790528 -sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll: 309760 -sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Windows.Extensions.dll: 61952 -sdk/x.y.z/DotnetTools/dotnet-format/System.CodeDom.dll: 174080 -sdk/x.y.z/DotnetTools/dotnet-format/System.CommandLine.dll: 136192 -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: 43008 -sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.Hosting.dll: 45056 -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.Configuration.ConfigurationManager.dll: 432640 -sdk/x.y.z/DotnetTools/dotnet-format/System.Diagnostics.EventLog.dll: 41472 -sdk/x.y.z/DotnetTools/dotnet-format/System.IO.Pipelines.dll: 67584 -sdk/x.y.z/DotnetTools/dotnet-format/System.Reflection.MetadataLoadContext.dll: 242688 -sdk/x.y.z/DotnetTools/dotnet-format/System.Resources.Extensions.dll: 65024 -sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Cryptography.Pkcs.dll: 255488 -sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Cryptography.ProtectedData.dll: 26624 -sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Cryptography.Xml.dll: 187904 -sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Permissions.dll: 103936 -sdk/x.y.z/DotnetTools/dotnet-format/System.Windows.Extensions.dll: 16896 -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: 421888 -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: 37376 -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: 8704 -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: 374272 -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: 34304 -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: 266240 -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: 8704 -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: 373760 -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: 34304 -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: 265216 -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: 8704 -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: 17915 -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: 347 -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: 9728 -sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.IdentityModel.JsonWebTokens.dll: 113664 -sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.IdentityModel.Logging.dll: 28672 -sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/Microsoft.IdentityModel.Tokens.dll: 272384 -sdk/x.y.z/DotnetTools/dotnet-user-jwts/x.y.z/tools/netx.y/any/System.IdentityModel.Tokens.Jwt.dll: 71680 -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: 10594 -sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/dotnet-user-secrets.dll: 57856 -sdk/x.y.z/DotnetTools/dotnet-user-secrets/x.y.z/tools/netx.y/any/dotnet-user-secrets.runtimeconfig.json: 347 -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: 692736 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/cs/Microsoft.CodeAnalysis.resources.dll: 36864 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/cs/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/de/Microsoft.CodeAnalysis.resources.dll: 38912 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/de/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/de/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/es/Microsoft.CodeAnalysis.resources.dll: 38400 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/es/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/es/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/fr/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 40448 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/fr/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Humanizer.dll: 509952 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/it/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/it/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/it/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ja/Microsoft.CodeAnalysis.resources.dll: 42496 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll: 43008 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ja/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ko/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39936 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ko/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Build.Locator.dll: 32256 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.CodeAnalysis.dll: 2946560 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.dll: 3880960 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.deps.json: 46488 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll: 80896 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll.config: 34346 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.runtimeconfig.json: 375 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Configuration.Abstractions.dll: 17408 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Configuration.Binder.dll: 32256 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Configuration.dll: 33280 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.DependencyInjection.Abstractions.dll: 53760 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.DependencyInjection.dll: 81920 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Logging.Abstractions.dll: 54784 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Logging.Configuration.dll: 17408 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Logging.Console.dll: 61440 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Logging.dll: 40960 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 12288 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Options.dll: 54272 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Microsoft.Extensions.Primitives.dll: 33280 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/Newtonsoft.Json.dll: 692736 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/pl/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll: 39424 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/pl/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/pt-BR/Microsoft.CodeAnalysis.resources.dll: 37888 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll: 38912 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/pt-BR/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ru/Microsoft.CodeAnalysis.resources.dll: 49152 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll: 47104 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/ru/System.CommandLine.resources.dll: 9216 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/runtimes/browser/lib/netx.y/System.Text.Encodings.Web.dll: 60416 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Collections.Immutable.dll: 235520 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.CommandLine.dll: 136192 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Composition.AttributedModel.dll: 9728 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Composition.Convention.dll: 43008 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Composition.Hosting.dll: 45056 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Composition.Runtime.dll: 15360 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Composition.TypedParts.dll: 54784 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.IO.Pipelines.dll: 67584 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Reflection.Metadata.dll: 465408 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Text.Encodings.Web.dll: 59904 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/System.Text.Json.dll: 577536 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/tr/Microsoft.CodeAnalysis.resources.dll: 37376 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll: 37888 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/tr/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/zh-Hans/Microsoft.CodeAnalysis.resources.dll: 34304 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/zh-Hans/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/zh-Hant/Microsoft.CodeAnalysis.resources.dll: 34304 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll: 35840 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/BuildHost-netcore/zh-Hant/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/dotnet-watch.resources.dll: 7168 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/cs/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36352 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/dotnet-watch.resources.dll: 7168 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/de/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 36864 -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: 188928 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.deps.json: 54368 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.dll: 187392 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.dll.config: 33273 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/dotnet-watch.runtimeconfig.json: 511 -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: 7168 -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: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/fr/dotnet-watch.resources.dll: 7168 -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: 7168 -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: 8704 -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: 7168 -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: 8192 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/dotnet-watch.resources.dll: 7680 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ja/Microsoft.CodeAnalysis.CSharp.Features.resources.dll: 38912 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ko/dotnet-watch.resources.dll: 7168 -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: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Build.Locator.dll: 32256 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.AnalyzerUtilities.dll: 657408 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.CSharp.Features.dll: 2065920 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.CSharp.Workspaces.dll: 886272 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Features.dll: 4928000 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Scripting.dll: 127488 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.dll: 3880960 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll: 80896 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll: 101376 -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: 43008 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Newtonsoft.Json.dll: 692736 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/dotnet-watch.resources.dll: 7168 -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: 185344 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.Scripting.resources.dll: 8192 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/pt-BR/dotnet-watch.resources.dll: 7168 -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: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/ru/dotnet-watch.resources.dll: 7680 -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: 7680 -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: 9216 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll: 790528 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll: 61952 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll: 174080 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CommandLine.dll: 136192 -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: 43008 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.Hosting.dll: 45056 -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/System.Configuration.ConfigurationManager.dll: 432640 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Reflection.MetadataLoadContext.dll: 242688 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Resources.Extensions.dll: 65024 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.ProtectedData.dll: 26624 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Permissions.dll: 103936 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Windows.Extensions.dll: 16896 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/dotnet-watch.resources.dll: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hans/dotnet-watch.resources.dll: 7168 -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: 8704 -sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/zh-Hant/dotnet-watch.resources.dll: 7168 -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: 8704 -sdk/x.y.z/es/dotnet.resources.dll: 197120 -sdk/x.y.z/es/Microsoft.Build.resources.dll: 106496 -sdk/x.y.z/es/Microsoft.Build.Tasks.Core.resources.dll: 157696 -sdk/x.y.z/es/Microsoft.Build.Utilities.Core.resources.dll: 26624 -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: 49664 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/es/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/es/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/es/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 -sdk/x.y.z/es/MSBuild.resources.dll: 62976 -sdk/x.y.z/es/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/es/vstest.console.resources.dll: 41984 -sdk/x.y.z/Extensions/Microsoft.Diagnostics.NETCore.Client.dll: 382976 -sdk/x.y.z/Extensions/Microsoft.TestPlatform.Extensions.BlameDataCollector.dll: 201728 -sdk/x.y.z/Extensions/Microsoft.TestPlatform.Extensions.EventLogCollector.dll: 40448 -sdk/x.y.z/Extensions/Microsoft.TestPlatform.TestHostRuntimeProvider.dll: 101376 -sdk/x.y.z/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.dll: 63488 -sdk/x.y.z/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.dll: 227840 -sdk/x.y.z/fr/dotnet.resources.dll: 198144 -sdk/x.y.z/fr/Microsoft.Build.resources.dll: 108544 -sdk/x.y.z/fr/Microsoft.Build.Tasks.Core.resources.dll: 161280 -sdk/x.y.z/fr/Microsoft.Build.Utilities.Core.resources.dll: 27136 -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: 6656 -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: 50688 -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.Extensions.BlameDataCollector.resources.dll: 7680 -sdk/x.y.z/fr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/fr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 -sdk/x.y.z/fr/MSBuild.resources.dll: 61952 -sdk/x.y.z/fr/System.CommandLine.resources.dll: 8704 -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: 352256 -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: 375296 -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: 366592 -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: 374784 -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: 20582 -sdk/x.y.z/FSharp/fsc.dll: 86528 -sdk/x.y.z/FSharp/fsc.runtimeconfig.json: 379 -sdk/x.y.z/FSharp/FSharp.Build.dll: 178688 -sdk/x.y.z/FSharp/FSharp.Compiler.Interactive.Settings.dll: 45568 -sdk/x.y.z/FSharp/FSharp.Compiler.Service.dll: 36798464 -sdk/x.y.z/FSharp/FSharp.Core.dll: 4567040 -sdk/x.y.z/FSharp/FSharp.Core.xml: 1212615 -sdk/x.y.z/FSharp/FSharp.DependencyManager.Nuget.dll: 232960 -sdk/x.y.z/FSharp/fsi.deps.json: 20582 -sdk/x.y.z/FSharp/fsi.dll: 203776 -sdk/x.y.z/FSharp/fsi.runtimeconfig.json: 379 -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: 368128 -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: 410112 -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: 380416 -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: 2578558 -sdk/x.y.z/FSharp/Microsoft.Build.Framework.dll: 731648 -sdk/x.y.z/FSharp/Microsoft.Build.Tasks.Core.dll: 2566656 -sdk/x.y.z/FSharp/Microsoft.Build.Utilities.Core.dll: 711680 -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: 41984 -sdk/x.y.z/FSharp/Microsoft.Portable.FSharp.Targets: 2053 -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: 374272 -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: 359424 -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: 500736 -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: 741376 -sdk/x.y.z/FSharp/System.CodeDom.dll: 475648 -sdk/x.y.z/FSharp/System.Configuration.ConfigurationManager.dll: 1060352 -sdk/x.y.z/FSharp/System.Diagnostics.EventLog.dll: 44032 -sdk/x.y.z/FSharp/System.Resources.Extensions.dll: 119296 -sdk/x.y.z/FSharp/System.Security.Cryptography.Pkcs.dll: 621056 -sdk/x.y.z/FSharp/System.Security.Cryptography.ProtectedData.dll: 34304 -sdk/x.y.z/FSharp/System.Security.Cryptography.Xml.dll: 439296 -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: 359936 -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: 318464 -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: 316416 -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: 197120 -sdk/x.y.z/it/Microsoft.Build.resources.dll: 107520 -sdk/x.y.z/it/Microsoft.Build.Tasks.Core.resources.dll: 159232 -sdk/x.y.z/it/Microsoft.Build.Utilities.Core.resources.dll: 26624 -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.Extensions.BlameDataCollector.resources.dll: 7680 -sdk/x.y.z/it/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/it/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/it/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 -sdk/x.y.z/it/MSBuild.resources.dll: 62464 -sdk/x.y.z/it/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/it/vstest.console.resources.dll: 41472 -sdk/x.y.z/ja/dotnet.resources.dll: 221696 -sdk/x.y.z/ja/Microsoft.Build.resources.dll: 121344 -sdk/x.y.z/ja/Microsoft.Build.Tasks.Core.resources.dll: 179712 -sdk/x.y.z/ja/Microsoft.Build.Utilities.Core.resources.dll: 29696 -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: 55808 -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.Extensions.BlameDataCollector.resources.dll: 7680 -sdk/x.y.z/ja/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/ja/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8704 -sdk/x.y.z/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 14336 -sdk/x.y.z/ja/MSBuild.resources.dll: 69120 -sdk/x.y.z/ja/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/ja/vstest.console.resources.dll: 45056 -sdk/x.y.z/KnownWorkloadManifests.txt: 381 -sdk/x.y.z/ko/dotnet.resources.dll: 199680 -sdk/x.y.z/ko/Microsoft.Build.resources.dll: 108544 -sdk/x.y.z/ko/Microsoft.Build.Tasks.Core.resources.dll: 164352 -sdk/x.y.z/ko/Microsoft.Build.Utilities.Core.resources.dll: 27136 -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: 50688 -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.Extensions.BlameDataCollector.resources.dll: 7680 -sdk/x.y.z/ko/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/ko/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 -sdk/x.y.z/ko/MSBuild.resources.dll: 64000 -sdk/x.y.z/ko/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/ko/vstest.console.resources.dll: 41984 -sdk/x.y.z/Microsoft.ApplicationInsights.dll: 925696 -sdk/x.y.z/Microsoft.AspNetCore.DeveloperCertificates.XPlat.dll: 105984 -sdk/x.y.z/Microsoft.Build.dll: 5072384 -sdk/x.y.z/Microsoft.Build.Framework.dll: 731648 -sdk/x.y.z/Microsoft.Build.NuGetSdkResolver.dll: 154112 -sdk/x.y.z/Microsoft.Build.Tasks.Core.dll: 2566656 -sdk/x.y.z/Microsoft.Build.Utilities.Core.dll: 711680 -sdk/x.y.z/Microsoft.Common.CrossTargeting.targets: 13902 -sdk/x.y.z/Microsoft.Common.CurrentVersion.targets: 369190 -sdk/x.y.z/Microsoft.Common.overridetasks: 6498 -sdk/x.y.z/Microsoft.Common.targets: 3322 -sdk/x.y.z/Microsoft.Common.tasks: 19030 -sdk/x.y.z/Microsoft.Common.Test.targets: 954 -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: 244224 -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: 30208 -sdk/x.y.z/Microsoft.DotNet.SdkResolver.dll: 18432 -sdk/x.y.z/Microsoft.DotNet.TemplateLocator.dll: 260608 -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: 120320 -sdk/x.y.z/Microsoft.Extensions.DependencyInjection.dll: 196608 -sdk/x.y.z/Microsoft.Extensions.DependencyModel.dll: 168960 -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: 124416 -sdk/x.y.z/Microsoft.Extensions.Logging.Configuration.dll: 26624 -sdk/x.y.z/Microsoft.Extensions.Logging.Console.dll: 134656 -sdk/x.y.z/Microsoft.Extensions.Logging.dll: 79360 -sdk/x.y.z/Microsoft.Extensions.Options.ConfigurationExtensions.dll: 19968 -sdk/x.y.z/Microsoft.Extensions.Options.dll: 117760 -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: 175104 -sdk/x.y.z/Microsoft.NET.props: 2102 -sdk/x.y.z/Microsoft.NET.Sdk.WorkloadManifestReader.dll: 253952 -sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll: 48128 -sdk/x.y.z/Microsoft.NET.StringTools.dll: 41984 -sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props: 599 -sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props: 985 -sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props: 50236 -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: 1191424 -sdk/x.y.z/Microsoft.TemplateEngine.Cli.xml: 167324 -sdk/x.y.z/Microsoft.TemplateEngine.Core.Contracts.dll: 14336 -sdk/x.y.z/Microsoft.TemplateEngine.Core.dll: 365568 -sdk/x.y.z/Microsoft.TemplateEngine.Edge.dll: 744448 -sdk/x.y.z/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll: 636416 -sdk/x.y.z/Microsoft.TemplateEngine.Utils.dll: 233472 -sdk/x.y.z/Microsoft.TemplateSearch.Common.dll: 160256 -sdk/x.y.z/Microsoft.TestPlatform.Build.dll: 68608 -sdk/x.y.z/Microsoft.TestPlatform.CommunicationUtilities.dll: 235520 -sdk/x.y.z/Microsoft.TestPlatform.CoreUtilities.dll: 140288 -sdk/x.y.z/Microsoft.TestPlatform.CrossPlatEngine.dll: 673280 -sdk/x.y.z/Microsoft.TestPlatform.PlatformAbstractions.dll: 72192 -sdk/x.y.z/Microsoft.TestPlatform.targets: 8679 -sdk/x.y.z/Microsoft.TestPlatform.Utilities.dll: 104960 -sdk/x.y.z/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.dll: 252928 -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: 136704 -sdk/x.y.z/Microsoft.VisualStudio.TestPlatform.Common.dll: 486400 -sdk/x.y.z/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll: 685568 -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/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: 50688 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/de/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 53248 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/es/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 52736 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/fr/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 53248 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/it/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 52736 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/ja/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 60416 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/ko/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 54272 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/Microsoft.NET.Build.Extensions.Tasks.dll: 209920 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/pl/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 55296 -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: 68096 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/tr/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 51200 -sdk/x.y.z/Microsoft/Microsoft.NET.Build.Extensions/tools/netx.y/zh-Hans/Microsoft.NET.Build.Extensions.Tasks.resources.dll: 45568 -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: 112405 -sdk/x.y.z/MSBuild.dll: 800768 -sdk/x.y.z/MSBuild.runtimeconfig.json: 347 -sdk/x.y.z/NETCoreSdkRuntimeIdentifierChain.txt: 38 -sdk/x.y.z/Newtonsoft.Json.dll: 1843200 -sdk/x.y.z/NuGet.Build.Tasks.Console.dll: 145408 -sdk/x.y.z/NuGet.Build.Tasks.Console.runtimeconfig.json: 413 -sdk/x.y.z/NuGet.Build.Tasks.dll: 304128 -sdk/x.y.z/NuGet.CommandLine.XPlat.deps.json: 112437 -sdk/x.y.z/NuGet.CommandLine.XPlat.dll: 701952 -sdk/x.y.z/NuGet.CommandLine.XPlat.runtimeconfig.json: 347 -sdk/x.y.z/NuGet.Commands.dll: 1510400 -sdk/x.y.z/NuGet.Common.dll: 365568 -sdk/x.y.z/NuGet.Configuration.dll: 596992 -sdk/x.y.z/NuGet.Credentials.dll: 172032 -sdk/x.y.z/NuGet.DependencyResolver.Core.dll: 299008 -sdk/x.y.z/NuGet.Frameworks.dll: 338944 -sdk/x.y.z/NuGet.LibraryModel.dll: 141824 -sdk/x.y.z/NuGet.Packaging.dll: 1693696 -sdk/x.y.z/NuGet.ProjectModel.dll: 785408 -sdk/x.y.z/NuGet.props: 2857 -sdk/x.y.z/NuGet.Protocol.dll: 2043904 -sdk/x.y.z/NuGet.RestoreEx.targets: 3023 -sdk/x.y.z/NuGet.targets: 69222 -sdk/x.y.z/NuGet.Versioning.dll: 146944 -sdk/x.y.z/pl/dotnet.resources.dll: 200704 -sdk/x.y.z/pl/Microsoft.Build.resources.dll: 110592 -sdk/x.y.z/pl/Microsoft.Build.Tasks.Core.resources.dll: 162304 -sdk/x.y.z/pl/Microsoft.Build.Utilities.Core.resources.dll: 27136 -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: 6656 -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: 50176 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/pl/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/pl/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 14336 -sdk/x.y.z/pl/MSBuild.resources.dll: 64000 -sdk/x.y.z/pl/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/pl/vstest.console.resources.dll: 41472 -sdk/x.y.z/PortableRuntimeIdentifierGraph.json: 7241 -sdk/x.y.z/pt-BR/dotnet.resources.dll: 193024 -sdk/x.y.z/pt-BR/Microsoft.Build.resources.dll: 103936 -sdk/x.y.z/pt-BR/Microsoft.Build.Tasks.Core.resources.dll: 156160 -sdk/x.y.z/pt-BR/Microsoft.Build.Utilities.Core.resources.dll: 26112 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/pt-BR/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/pt-BR/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13824 -sdk/x.y.z/pt-BR/MSBuild.resources.dll: 61440 -sdk/x.y.z/pt-BR/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/pt-BR/vstest.console.resources.dll: 40448 -sdk/x.y.z/ref/Microsoft.Build.Framework.dll: 165376 -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: 413696 -sdk/x.y.z/Roslyn/bincore/cs/Microsoft.CodeAnalysis.resources.dll: 36864 -sdk/x.y.z/Roslyn/bincore/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 290816 -sdk/x.y.z/Roslyn/bincore/csc.deps.json: 7666 -sdk/x.y.z/Roslyn/bincore/csc.dll: 124928 -sdk/x.y.z/Roslyn/bincore/csc.runtimeconfig.json: 407 -sdk/x.y.z/Roslyn/bincore/de/Microsoft.CodeAnalysis.CSharp.resources.dll: 442880 -sdk/x.y.z/Roslyn/bincore/de/Microsoft.CodeAnalysis.resources.dll: 38912 -sdk/x.y.z/Roslyn/bincore/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 306688 -sdk/x.y.z/Roslyn/bincore/es/Microsoft.CodeAnalysis.CSharp.resources.dll: 433664 -sdk/x.y.z/Roslyn/bincore/es/Microsoft.CodeAnalysis.resources.dll: 38400 -sdk/x.y.z/Roslyn/bincore/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 301568 -sdk/x.y.z/Roslyn/bincore/fr/Microsoft.CodeAnalysis.CSharp.resources.dll: 444416 -sdk/x.y.z/Roslyn/bincore/fr/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/Roslyn/bincore/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 308736 -sdk/x.y.z/Roslyn/bincore/it/Microsoft.CodeAnalysis.CSharp.resources.dll: 439808 -sdk/x.y.z/Roslyn/bincore/it/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/Roslyn/bincore/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 306176 -sdk/x.y.z/Roslyn/bincore/ja/Microsoft.CodeAnalysis.CSharp.resources.dll: 485888 -sdk/x.y.z/Roslyn/bincore/ja/Microsoft.CodeAnalysis.resources.dll: 42496 -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: 444928 -sdk/x.y.z/Roslyn/bincore/ko/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/Roslyn/bincore/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 311296 -sdk/x.y.z/Roslyn/bincore/Microsoft.CodeAnalysis.CSharp.dll: 18190848 -sdk/x.y.z/Roslyn/bincore/Microsoft.CodeAnalysis.dll: 8023552 -sdk/x.y.z/Roslyn/bincore/Microsoft.CodeAnalysis.VisualBasic.dll: 13621248 -sdk/x.y.z/Roslyn/bincore/pl/Microsoft.CodeAnalysis.CSharp.resources.dll: 445952 -sdk/x.y.z/Roslyn/bincore/pl/Microsoft.CodeAnalysis.resources.dll: 39424 -sdk/x.y.z/Roslyn/bincore/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 316416 -sdk/x.y.z/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll: 425984 -sdk/x.y.z/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.resources.dll: 37888 -sdk/x.y.z/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 295936 -sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.CSharp.resources.dll: 589312 -sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.resources.dll: 49152 -sdk/x.y.z/Roslyn/bincore/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 398336 -sdk/x.y.z/Roslyn/bincore/System.Collections.Immutable.dll: 718336 -sdk/x.y.z/Roslyn/bincore/System.Reflection.Metadata.dll: 1058304 -sdk/x.y.z/Roslyn/bincore/tr/Microsoft.CodeAnalysis.CSharp.resources.dll: 421888 -sdk/x.y.z/Roslyn/bincore/tr/Microsoft.CodeAnalysis.resources.dll: 37376 -sdk/x.y.z/Roslyn/bincore/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 291840 -sdk/x.y.z/Roslyn/bincore/vbc.deps.json: 7751 -sdk/x.y.z/Roslyn/bincore/vbc.dll: 124928 -sdk/x.y.z/Roslyn/bincore/vbc.runtimeconfig.json: 407 -sdk/x.y.z/Roslyn/bincore/VBCSCompiler.deps.json: 9608 -sdk/x.y.z/Roslyn/bincore/VBCSCompiler.dll: 217600 -sdk/x.y.z/Roslyn/bincore/VBCSCompiler.runtimeconfig.json: 407 -sdk/x.y.z/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll: 374272 -sdk/x.y.z/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.resources.dll: 34304 -sdk/x.y.z/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 266240 -sdk/x.y.z/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll: 373760 -sdk/x.y.z/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.resources.dll: 34304 -sdk/x.y.z/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll: 265216 -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: 13564 -sdk/x.y.z/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll: 325120 -sdk/x.y.z/Roslyn/Microsoft.CSharp.Core.targets: 11501 -sdk/x.y.z/Roslyn/Microsoft.Managed.Core.CurrentVersions.targets: 114 -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: 248320 -sdk/x.y.z/ru/Microsoft.Build.resources.dll: 137216 -sdk/x.y.z/ru/Microsoft.Build.Tasks.Core.resources.dll: 203264 -sdk/x.y.z/ru/Microsoft.Build.Utilities.Core.resources.dll: 33280 -sdk/x.y.z/ru/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 -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: 7168 -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: 60416 -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.Extensions.BlameDataCollector.resources.dll: 8192 -sdk/x.y.z/ru/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/ru/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5632 -sdk/x.y.z/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 9216 -sdk/x.y.z/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 15872 -sdk/x.y.z/ru/MSBuild.resources.dll: 80384 -sdk/x.y.z/ru/System.CommandLine.resources.dll: 9216 -sdk/x.y.z/ru/vstest.console.resources.dll: 53248 -sdk/x.y.z/RuntimeIdentifierGraph.json: 76463 -sdk/x.y.z/runtimes/any/native/Microsoft.TestPlatform.targets: 8679 -sdk/x.y.z/runtimes/any/native/NuGet.props: 2857 -sdk/x.y.z/runtimes/any/native/NuGet.RestoreEx.targets: 3023 -sdk/x.y.z/runtimes/any/native/NuGet.targets: 69222 -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: 741376 -sdk/x.y.z/runtimes/win/lib/netx.y/System.ServiceProcess.ServiceController.dll: 131584 -sdk/x.y.z/SDKPrecomputedAssemblyReferences.cache: 1808476 -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: 8704 -sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/es/Microsoft.Build.Tasks.Git.resources.dll: 8704 -sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/fr/Microsoft.Build.Tasks.Git.resources.dll: 8704 -sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/it/Microsoft.Build.Tasks.Git.resources.dll: 8704 -sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/ja/Microsoft.Build.Tasks.Git.resources.dll: 9216 -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: 68608 -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: 8704 -sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/ru/Microsoft.Build.Tasks.Git.resources.dll: 9728 -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: 8192 -sdk/x.y.z/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll: 8192 -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: 2308 -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/tools/netx.y/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll: 97792 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/netx.y/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.deps.json: 3595 -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: 384 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/netx.y/System.CommandLine.dll: 337408 -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: 4872 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.props: 773 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.targets: 11070 -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: 69120 -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: 580608 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Publish/tools/netx.y/Microsoft.Web.XmlTransform.dll: 184832 -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: 34304 -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.Razor.Utilities.Shared.dll: 72192 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.xml: 45965 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.deps.json: 14858 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.dll: 1335296 -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/RazorSourceGenerator.razorencconfig: 70 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/source-generators/System.Collections.Immutable.dll: 242688 -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: 124928 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.AspNetCore.Razor.Utilities.Shared.dll: 150016 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.CodeAnalysis.Razor.Compiler.dll: 3578368 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Css.Parser.dll: 329728 -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: 1843200 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.deps.json: 10492 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.dll: 337408 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.runtimeconfig.json: 384 -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: 13653 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ContentTypeMappings.props: 48811 -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: 15080 -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: 14188 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets: 13108 -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.ServiceWorker.targets: 14489 -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: 175104 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/Microsoft.NET.Sdk.StaticWebAssets.Tool.deps.json: 3589 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/Microsoft.NET.Sdk.StaticWebAssets.Tool.dll: 8704 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/Microsoft.NET.Sdk.StaticWebAssets.Tool.runtimeconfig.json: 384 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/netx.y/System.CommandLine.dll: 136192 -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: 1754 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.targets: 7033 -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: 60416 -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: 1900 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.targets: 1745 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.WebAssembly/targets/Microsoft.NET.Sdk.WebAssembly.9_0.temp.targets: 3715 -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: 3457 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.targets: 1910 -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: 29370 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_all.globalconfig: 28757 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_default_warnaserror.globalconfig: 7415 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_default.globalconfig: 6358 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_minimum_warnaserror.globalconfig: 12048 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_minimum.globalconfig: 11085 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_none_warnaserror.globalconfig: 16373 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_none.globalconfig: 16206 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_recommended_warnaserror.globalconfig: 16489 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_recommended.globalconfig: 15620 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_all_warnaserror.globalconfig: 29294 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_all.globalconfig: 27903 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_default_warnaserror.globalconfig: 5754 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_default.globalconfig: 3785 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_minimum_warnaserror.globalconfig: 11723 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_minimum.globalconfig: 9976 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_none_warnaserror.globalconfig: 16373 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_none.globalconfig: 16206 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_recommended_warnaserror.globalconfig: 16413 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_recommended.globalconfig: 14766 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_all_warnaserror.globalconfig: 29709 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_all.globalconfig: 27973 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_default_warnaserror.globalconfig: 4864 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_default.globalconfig: 2524 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_minimum_warnaserror.globalconfig: 11564 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_minimum.globalconfig: 9460 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_none_warnaserror.globalconfig: 16373 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_none.globalconfig: 16206 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_recommended_warnaserror.globalconfig: 16426 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_recommended.globalconfig: 14426 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all_warnaserror.globalconfig: 29701 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all.globalconfig: 27752 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_default_warnaserror.globalconfig: 3272 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_default.globalconfig: 1179 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_minimum_warnaserror.globalconfig: 11410 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_minimum.globalconfig: 9089 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_none_warnaserror.globalconfig: 16373 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_none.globalconfig: 16206 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_recommended_warnaserror.globalconfig: 16347 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_recommended.globalconfig: 14132 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_all_warnaserror.globalconfig: 29795 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_all.globalconfig: 27854 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default_warnaserror.globalconfig: 3001 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig: 313 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_minimum_warnaserror.globalconfig: 11413 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_minimum.globalconfig: 9098 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_none_warnaserror.globalconfig: 16373 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_none.globalconfig: 16206 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_recommended_warnaserror.globalconfig: 16350 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_recommended.globalconfig: 14141 -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/analysisleveldesign_9_all_warnaserror.globalconfig: 4397 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_all.globalconfig: 4314 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_default_warnaserror.globalconfig: 497 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_default.globalconfig: 330 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_minimum_warnaserror.globalconfig: 1434 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_minimum.globalconfig: 1287 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_none_warnaserror.globalconfig: 1900 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_none.globalconfig: 1733 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_recommended_warnaserror.globalconfig: 1929 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_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/analysisleveldocumentation_9_all_warnaserror.globalconfig: 592 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_all.globalconfig: 427 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_default_warnaserror.globalconfig: 511 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_default.globalconfig: 344 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_minimum_warnaserror.globalconfig: 511 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_minimum.globalconfig: 344 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_none_warnaserror.globalconfig: 593 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_none.globalconfig: 426 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_recommended_warnaserror.globalconfig: 608 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_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/analysislevelglobalization_9_all_warnaserror.globalconfig: 1303 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_all.globalconfig: 1154 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_default_warnaserror.globalconfig: 511 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_default.globalconfig: 344 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_minimum_warnaserror.globalconfig: 613 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_minimum.globalconfig: 448 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_none_warnaserror.globalconfig: 1027 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_none.globalconfig: 860 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_recommended_warnaserror.globalconfig: 1047 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_9_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/analysislevelinteroperability_9_all_warnaserror.globalconfig: 1427 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_all.globalconfig: 792 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_default_warnaserror.globalconfig: 991 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_default.globalconfig: 350 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_minimum_warnaserror.globalconfig: 1435 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_minimum.globalconfig: 800 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_none_warnaserror.globalconfig: 1421 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_none.globalconfig: 1254 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_recommended_warnaserror.globalconfig: 1443 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_recommended.globalconfig: 808 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_all_warnaserror.globalconfig: 1128 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_all.globalconfig: 965 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_default_warnaserror.globalconfig: 967 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_default.globalconfig: 800 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_minimum_warnaserror.globalconfig: 1055 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_minimum.globalconfig: 890 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_none_warnaserror.globalconfig: 1048 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_none.globalconfig: 881 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_recommended_warnaserror.globalconfig: 1063 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_recommended.globalconfig: 898 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_all_warnaserror.globalconfig: 1128 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_all.globalconfig: 965 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_default_warnaserror.globalconfig: 967 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_default.globalconfig: 800 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_minimum_warnaserror.globalconfig: 1055 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_minimum.globalconfig: 890 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_none_warnaserror.globalconfig: 1048 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_none.globalconfig: 881 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_recommended_warnaserror.globalconfig: 1063 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_recommended.globalconfig: 898 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_all_warnaserror.globalconfig: 1128 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_all.globalconfig: 965 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_default_warnaserror.globalconfig: 967 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_default.globalconfig: 800 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_minimum_warnaserror.globalconfig: 1055 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_minimum.globalconfig: 890 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_none_warnaserror.globalconfig: 1048 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_none.globalconfig: 881 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_recommended_warnaserror.globalconfig: 1063 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_recommended.globalconfig: 898 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_all_warnaserror.globalconfig: 1132 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_all.globalconfig: 977 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_default_warnaserror.globalconfig: 599 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_default.globalconfig: 432 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_minimum_warnaserror.globalconfig: 1059 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_minimum.globalconfig: 902 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none_warnaserror.globalconfig: 1048 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none.globalconfig: 881 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_recommended_warnaserror.globalconfig: 1067 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_recommended.globalconfig: 910 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_all_warnaserror.globalconfig: 1224 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_all.globalconfig: 1073 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_default_warnaserror.globalconfig: 515 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_default.globalconfig: 348 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_minimum_warnaserror.globalconfig: 1060 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_minimum.globalconfig: 905 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_none_warnaserror.globalconfig: 1048 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_none.globalconfig: 881 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_recommended_warnaserror.globalconfig: 1068 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_recommended.globalconfig: 913 -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/analysislevelnaming_9_all_warnaserror.globalconfig: 1802 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_all.globalconfig: 1663 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_default_warnaserror.globalconfig: 497 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_default.globalconfig: 330 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_minimum_warnaserror.globalconfig: 497 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_minimum.globalconfig: 330 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_none_warnaserror.globalconfig: 1414 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_none.globalconfig: 1247 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_recommended_warnaserror.globalconfig: 1438 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_recommended.globalconfig: 1291 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_all_warnaserror.globalconfig: 6002 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_all.globalconfig: 5764 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_default_warnaserror.globalconfig: 3345 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_default.globalconfig: 3053 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_minimum_warnaserror.globalconfig: 5005 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_minimum.globalconfig: 4745 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_none_warnaserror.globalconfig: 5165 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_none.globalconfig: 4998 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_recommended_warnaserror.globalconfig: 5198 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_5_recommended.globalconfig: 4942 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_all_warnaserror.globalconfig: 6012 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_all.globalconfig: 5794 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_default_warnaserror.globalconfig: 2422 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_default.globalconfig: 2130 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_minimum_warnaserror.globalconfig: 4930 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_minimum.globalconfig: 4688 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_none_warnaserror.globalconfig: 5165 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_none.globalconfig: 4998 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_recommended_warnaserror.globalconfig: 5208 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_recommended.globalconfig: 4972 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_all_warnaserror.globalconfig: 6225 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_all.globalconfig: 6021 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_default_warnaserror.globalconfig: 1952 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_default.globalconfig: 1660 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_minimum_warnaserror.globalconfig: 4862 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_minimum.globalconfig: 4628 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_none_warnaserror.globalconfig: 5165 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_none.globalconfig: 4998 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_recommended_warnaserror.globalconfig: 5213 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_recommended.globalconfig: 4987 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_all_warnaserror.globalconfig: 6211 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_all.globalconfig: 6040 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_default_warnaserror.globalconfig: 1009 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_default.globalconfig: 623 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_minimum_warnaserror.globalconfig: 4702 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_minimum.globalconfig: 4497 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_none_warnaserror.globalconfig: 5165 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_none.globalconfig: 4998 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_recommended_warnaserror.globalconfig: 5128 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_recommended.globalconfig: 4933 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_all_warnaserror.globalconfig: 6211 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_all.globalconfig: 6040 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_default_warnaserror.globalconfig: 726 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_default.globalconfig: 340 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_minimum_warnaserror.globalconfig: 4702 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_minimum.globalconfig: 4497 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_none_warnaserror.globalconfig: 5165 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_none.globalconfig: 4998 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_recommended_warnaserror.globalconfig: 5128 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_recommended.globalconfig: 4933 -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: 430 -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/analysislevelreliability_9_all_warnaserror.globalconfig: 2098 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_all.globalconfig: 1304 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_default_warnaserror.globalconfig: 1154 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_default.globalconfig: 340 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_minimum_warnaserror.globalconfig: 1712 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_minimum.globalconfig: 910 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_none_warnaserror.globalconfig: 1694 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_none.globalconfig: 1527 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_recommended_warnaserror.globalconfig: 1720 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_recommended.globalconfig: 918 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_all_warnaserror.globalconfig: 10132 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_5_all.globalconfig: 10149 -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: 10132 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_all.globalconfig: 10149 -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: 10326 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_all.globalconfig: 10347 -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: 10326 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all.globalconfig: 10347 -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/analysislevelsecurity_9_all_warnaserror.globalconfig: 10326 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_all.globalconfig: 10347 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_default_warnaserror.globalconfig: 501 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_default.globalconfig: 334 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_minimum_warnaserror.globalconfig: 501 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_minimum.globalconfig: 334 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_none_warnaserror.globalconfig: 2783 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_none.globalconfig: 2616 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_recommended_warnaserror.globalconfig: 2821 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_recommended.globalconfig: 2702 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all_warnaserror.globalconfig: 5007 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all.globalconfig: 4629 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_default_warnaserror.globalconfig: 2305 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_default.globalconfig: 1871 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_minimum_warnaserror.globalconfig: 3685 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_minimum.globalconfig: 3279 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_none_warnaserror.globalconfig: 3852 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_none.globalconfig: 3685 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_recommended_warnaserror.globalconfig: 3884 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_recommended.globalconfig: 3482 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_all_warnaserror.globalconfig: 4916 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_all.globalconfig: 4031 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_default_warnaserror.globalconfig: 1860 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_default.globalconfig: 1031 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_minimum_warnaserror.globalconfig: 3521 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_minimum.globalconfig: 2606 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_none_warnaserror.globalconfig: 3852 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_none.globalconfig: 3685 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_recommended_warnaserror.globalconfig: 3793 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_recommended.globalconfig: 2884 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_all_warnaserror.globalconfig: 4918 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_all.globalconfig: 3858 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_default_warnaserror.globalconfig: 1862 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_default.globalconfig: 858 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_minimum_warnaserror.globalconfig: 3523 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_minimum.globalconfig: 2433 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_none_warnaserror.globalconfig: 3852 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_none.globalconfig: 3685 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_recommended_warnaserror.globalconfig: 3795 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_recommended.globalconfig: 2711 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_all_warnaserror.globalconfig: 4919 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_all.globalconfig: 3737 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_default_warnaserror.globalconfig: 1863 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_default.globalconfig: 737 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_minimum_warnaserror.globalconfig: 3524 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_minimum.globalconfig: 2312 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_none_warnaserror.globalconfig: 3852 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_none.globalconfig: 3685 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_recommended_warnaserror.globalconfig: 3796 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_recommended.globalconfig: 2590 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_all_warnaserror.globalconfig: 4921 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_all.globalconfig: 3743 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_default_warnaserror.globalconfig: 1676 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_default.globalconfig: 328 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_minimum_warnaserror.globalconfig: 3526 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_minimum.globalconfig: 2318 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_none_warnaserror.globalconfig: 3852 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_none.globalconfig: 3685 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_recommended_warnaserror.globalconfig: 3798 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_recommended.globalconfig: 2596 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.props: 3618 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.targets: 89801 -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: 266752 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/fr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 276992 -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: 114176 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll: 2440192 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers.dll: 88576 -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: 361984 -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: 230912 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hant/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll: 232960 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_all.globalconfig: 9101 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_default.globalconfig: 125 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_minimum.globalconfig: 1845 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_none.globalconfig: 9320 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_recommended.globalconfig: 7081 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/Microsoft.CodeAnalysis.CSharp.CodeStyle.targets: 6661 -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: 1696768 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll: 621056 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.dll: 617472 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.dll: 734720 -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.globalconfig: 3850 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_default.globalconfig: 125 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_minimum.globalconfig: 1285 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_none.globalconfig: 4171 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_recommended.globalconfig: 3085 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.targets: 6816 -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: 1696768 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll: 621056 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.dll: 273408 -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: 2432 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.targets: 4434 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/Sdk/UseArtifactsOutputPath.props: 2397 -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: 3894 -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: 5523 -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: 11151 -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: 6887 -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: 2341 -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: 74134 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets: 21341 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Analyzers.targets: 12912 -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: 5616 -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: 6788 -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: 12326 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets: 29475 -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: 2202 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets: 79633 -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: 6438 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets: 17368 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/cs/Microsoft.DotNet.ApiCompatibility.resources.dll: 9216 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/cs/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/cs/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/cs/Microsoft.NET.Build.Tasks.resources.dll: 54784 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/de/Microsoft.DotNet.ApiCompatibility.resources.dll: 9728 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/de/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/de/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/de/Microsoft.NET.Build.Tasks.resources.dll: 57856 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/es/Microsoft.DotNet.ApiCompatibility.resources.dll: 9216 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/es/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/es/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/es/Microsoft.NET.Build.Tasks.resources.dll: 57344 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/fr/Microsoft.DotNet.ApiCompatibility.resources.dll: 9216 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/fr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/fr/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/fr/Microsoft.NET.Build.Tasks.resources.dll: 57856 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/it/Microsoft.DotNet.ApiCompatibility.resources.dll: 9216 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/it/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/it/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/it/Microsoft.NET.Build.Tasks.resources.dll: 57344 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ja/Microsoft.DotNet.ApiCompatibility.resources.dll: 10240 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ja/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 6144 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ja/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ja/Microsoft.NET.Build.Tasks.resources.dll: 65536 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ko/Microsoft.DotNet.ApiCompatibility.resources.dll: 9728 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ko/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ko/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ko/Microsoft.NET.Build.Tasks.resources.dll: 58880 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.Bcl.AsyncInterfaces.dll: 9728 -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: 69120 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.DotNet.ApiCompatibility.dll: 103936 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.DotNet.ApiSymbolExtensions.dll: 38912 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.DotNet.PackageValidation.dll: 54784 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/Microsoft.NET.Build.Tasks.dll: 1143296 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pl/Microsoft.DotNet.ApiCompatibility.resources.dll: 9216 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pl/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pl/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pl/Microsoft.NET.Build.Tasks.resources.dll: 59904 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pt-BR/Microsoft.DotNet.ApiCompatibility.resources.dll: 9216 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pt-BR/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pt-BR/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/pt-BR/Microsoft.NET.Build.Tasks.resources.dll: 55808 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.Deployment.DotNet.Releases.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.DotNet.ApiCompat.Task.resources.dll: 7168 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.DotNet.ApiCompatibility.resources.dll: 10240 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 6144 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.DotNet.PackageValidation.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/ru/Microsoft.NET.Build.Tasks.resources.dll: 73728 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/tr/Microsoft.DotNet.ApiCompatibility.resources.dll: 9728 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/tr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/tr/Microsoft.DotNet.PackageValidation.resources.dll: 6144 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hans/Microsoft.DotNet.ApiCompatibility.resources.dll: 9216 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hans/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hans/Microsoft.DotNet.PackageValidation.resources.dll: 6144 -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.DotNet.ApiCompat.Task.resources.dll: 6656 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hant/Microsoft.DotNet.ApiCompatibility.resources.dll: 8704 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hant/Microsoft.DotNet.ApiSymbolExtensions.resources.dll: 5632 -sdk/x.y.z/Sdks/Microsoft.NET.Sdk/tools/netx.y/zh-Hant/Microsoft.DotNet.PackageValidation.resources.dll: 6144 -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: 7168 -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: 36352 -sdk/x.y.z/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll: 7168 -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: 7168 -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: 6144 -sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 -sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/Microsoft.SourceLink.Bitbucket.Git.dll: 31744 -sdk/x.y.z/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll: 6144 -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: 6144 -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: 1247 -sdk/x.y.z/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.targets: 4482 -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: 21504 -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: 6144 -sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/ko/Microsoft.SourceLink.GitHub.resources.dll: 6144 -sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/Microsoft.SourceLink.GitHub.dll: 29696 -sdk/x.y.z/Sdks/Microsoft.SourceLink.GitHub/tools/core/pl/Microsoft.SourceLink.GitHub.resources.dll: 6144 -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: 6144 -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: 6144 -sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/ko/Microsoft.SourceLink.GitLab.resources.dll: 6144 -sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/Microsoft.SourceLink.GitLab.dll: 29696 -sdk/x.y.z/Sdks/Microsoft.SourceLink.GitLab/tools/core/pl/Microsoft.SourceLink.GitLab.resources.dll: 6144 -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: 6144 -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: 245248 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Commands.dll: 1502720 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Common.dll: 372736 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Configuration.dll: 604160 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Credentials.dll: 178688 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.DependencyResolver.Core.dll: 307200 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Frameworks.dll: 345088 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.LibraryModel.dll: 148992 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Packaging.dll: 1520640 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.ProjectModel.dll: 792576 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Protocol.dll: 2042880 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Versioning.dll: 153088 -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: 81920 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Commands.dll: 653824 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Common.dll: 118272 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Configuration.dll: 173056 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Credentials.dll: 59392 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.DependencyResolver.Core.dll: 88576 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Frameworks.dll: 128000 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.LibraryModel.dll: 47616 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Packaging.dll: 740352 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.ProjectModel.dll: 222720 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Protocol.dll: 866816 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/NuGet.Versioning.dll: 60416 -sdk/x.y.z/Sdks/NuGet.Build.Tasks.Pack/README.md: 41 -sdk/x.y.z/System.CodeDom.dll: 475648 -sdk/x.y.z/System.CommandLine.dll: 337408 -sdk/x.y.z/System.ComponentModel.Composition.dll: 98816 -sdk/x.y.z/System.Configuration.ConfigurationManager.dll: 1060352 -sdk/x.y.z/System.Diagnostics.EventLog.dll: 44032 -sdk/x.y.z/System.Reflection.MetadataLoadContext.dll: 567296 -sdk/x.y.z/System.Resources.Extensions.dll: 119296 -sdk/x.y.z/System.Security.Cryptography.Pkcs.dll: 621056 -sdk/x.y.z/System.Security.Cryptography.ProtectedData.dll: 34304 -sdk/x.y.z/System.Security.Cryptography.Xml.dll: 439296 -sdk/x.y.z/System.ServiceProcess.ServiceController.dll: 24064 -sdk/x.y.z/testhost-1.0.runtimeconfig.json: 165 -sdk/x.y.z/testhost-1.1.runtimeconfig.json: 165 -sdk/x.y.z/testhost-2.0.runtimeconfig.json: 165 -sdk/x.y.z/testhost-2.1.runtimeconfig.json: 165 -sdk/x.y.z/testhost-3.0.runtimeconfig.json: 165 -sdk/x.y.z/testhost-3.1.runtimeconfig.json: 165 -sdk/x.y.z/testhost-5.0.runtimeconfig.json: 158 -sdk/x.y.z/testhost-6.0.runtimeconfig.json: 158 -sdk/x.y.z/testhost-7.0.runtimeconfig.json: 158 -sdk/x.y.z/testhost-8.0.runtimeconfig.json: 158 -sdk/x.y.z/testhost-latest.runtimeconfig.json: 199 -sdk/x.y.z/testhost.deps.json: 28350 -sdk/x.y.z/testhost.dll: 60416 -sdk/x.y.z/tr/dotnet.resources.dll: 189440 -sdk/x.y.z/tr/Microsoft.Build.resources.dll: 103424 -sdk/x.y.z/tr/Microsoft.Build.Tasks.Core.resources.dll: 154624 -sdk/x.y.z/tr/Microsoft.Build.Utilities.Core.resources.dll: 26112 -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: 48640 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/tr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/tr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 8192 -sdk/x.y.z/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 13312 -sdk/x.y.z/tr/MSBuild.resources.dll: 61952 -sdk/x.y.z/tr/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/tr/vstest.console.resources.dll: 40960 -sdk/x.y.z/trustedroots/codesignctl.pem: 509306 -sdk/x.y.z/trustedroots/timestampctl.pem: 547487 -sdk/x.y.z/vstest.console.deps.json: 39684 -sdk/x.y.z/vstest.console.dll: 644096 -sdk/x.y.z/vstest.console.dll.config: 3391 -sdk/x.y.z/vstest.console.runtimeconfig.json: 375 -sdk/x.y.z/zh-Hans/dotnet.resources.dll: 171520 -sdk/x.y.z/zh-Hans/Microsoft.Build.resources.dll: 94208 -sdk/x.y.z/zh-Hans/Microsoft.Build.Tasks.Core.resources.dll: 141824 -sdk/x.y.z/zh-Hans/Microsoft.Build.Utilities.Core.resources.dll: 24064 -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: 6144 -sdk/x.y.z/zh-Hans/Microsoft.DotNet.TemplateLocator.resources.dll: 8704 -sdk/x.y.z/zh-Hans/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll: 8704 -sdk/x.y.z/zh-Hans/Microsoft.TemplateEngine.Cli.resources.dll: 44032 -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: 5632 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/zh-Hans/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 7680 -sdk/x.y.z/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 12800 -sdk/x.y.z/zh-Hans/MSBuild.resources.dll: 54272 -sdk/x.y.z/zh-Hans/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/zh-Hans/vstest.console.resources.dll: 35840 -sdk/x.y.z/zh-Hant/dotnet.resources.dll: 173056 -sdk/x.y.z/zh-Hant/Microsoft.Build.resources.dll: 92672 -sdk/x.y.z/zh-Hant/Microsoft.Build.Tasks.Core.resources.dll: 140288 -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: 5632 -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.Extensions.BlameDataCollector.resources.dll: 7168 -sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll: 5632 -sdk/x.y.z/zh-Hant/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll: 5632 -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.Extensions.Html.TestLogger.resources.dll: 5120 -sdk/x.y.z/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll: 7680 -sdk/x.y.z/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll: 12800 -sdk/x.y.z/zh-Hant/MSBuild.resources.dll: 55808 -sdk/x.y.z/zh-Hant/System.CommandLine.resources.dll: 8704 -sdk/x.y.z/zh-Hant/vstest.console.resources.dll: 36352 -shared/Microsoft.AspNetCore.App/x.y.z/.version: 65 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Antiforgery.dll: 99840 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.App.deps.json: 22061 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.App.runtimeconfig.json: 295 -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: 49664 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.Cookies.dll: 94720 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.Core.dll: 70144 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.dll: 135680 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authentication.OAuth.dll: 82432 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authorization.dll: 88064 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Authorization.Policy.dll: 56320 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Authorization.dll: 37376 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.dll: 809984 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Endpoints.dll: 704000 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Forms.dll: 76288 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Server.dll: 866816 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Components.Web.dll: 372224 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Connections.Abstractions.dll: 50688 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.CookiePolicy.dll: 35328 -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: 407552 -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: 435200 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll: 31744 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.dll: 93184 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HostFiltering.dll: 32256 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Hosting.Abstractions.dll: 22528 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Hosting.dll: 433664 -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: 304640 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Connections.Common.dll: 34304 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Connections.dll: 302080 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.dll: 285696 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Http.Extensions.dll: 689152 -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: 228864 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HttpLogging.dll: 185344 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HttpOverrides.dll: 55808 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.HttpsPolicy.dll: 29184 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Identity.dll: 531456 -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: 246784 -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: 1956352 -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: 221184 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.RazorPages.dll: 435200 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.TagHelpers.dll: 261120 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Mvc.ViewFeatures.dll: 720384 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.OutputCaching.dll: 236032 -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: 53760 -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: 131072 -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: 39936 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Routing.dll: 814592 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.HttpSys.dll: 15360 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.IIS.dll: 17408 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.IISIntegration.dll: 32768 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.Server.Kestrel.Core.dll: 2215936 -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: 221184 -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: 490496 -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: 143872 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.WebSockets.dll: 53248 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.AspNetCore.WebUtilities.dll: 240640 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Caching.Abstractions.dll: 38400 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Caching.Memory.dll: 73728 -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: 120320 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.DependencyInjection.dll: 196608 -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: 20480 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Diagnostics.HealthChecks.dll: 93184 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Features.dll: 24576 -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: 51200 -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: 55296 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Hosting.dll: 132096 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Http.dll: 172032 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Identity.Core.dll: 435712 -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: 124416 -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: 134656 -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: 43520 -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: 19968 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Options.DataAnnotations.dll: 17408 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Extensions.Options.dll: 117760 -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: 123904 -shared/Microsoft.AspNetCore.App/x.y.z/Microsoft.Net.Http.Headers.dll: 199680 -shared/Microsoft.AspNetCore.App/x.y.z/System.Diagnostics.EventLog.dll: 44032 -shared/Microsoft.AspNetCore.App/x.y.z/System.IO.Pipelines.dll: 169472 -shared/Microsoft.AspNetCore.App/x.y.z/System.Security.Cryptography.Pkcs.dll: 621056 -shared/Microsoft.AspNetCore.App/x.y.z/System.Security.Cryptography.Xml.dll: 439296 -shared/Microsoft.AspNetCore.App/x.y.z/System.Threading.RateLimiting.dll: 145408 -shared/Microsoft.AspNetCore.App/x.y.z/THIRD-PARTY-NOTICES.txt: 55638 -shared/Microsoft.NETCore.App/x.y.z/.version: 66 -shared/Microsoft.NETCore.App/x.y.z/createdump: 1807160 -shared/Microsoft.NETCore.App/x.y.z/libclrgc.so: 5029328 -shared/Microsoft.NETCore.App/x.y.z/libclrgcexp.so: 5532952 -shared/Microsoft.NETCore.App/x.y.z/libclrjit.so: 43403384 -shared/Microsoft.NETCore.App/x.y.z/libcoreclr.so: 150529200 -shared/Microsoft.NETCore.App/x.y.z/libcoreclrtraceptprovider.so: 2215352 -shared/Microsoft.NETCore.App/x.y.z/libhostpolicy.so: 5514736 -shared/Microsoft.NETCore.App/x.y.z/libmscordaccore.so: 78500608 -shared/Microsoft.NETCore.App/x.y.z/libmscordbi.so: 17377176 -shared/Microsoft.NETCore.App/x.y.z/libSystem.Globalization.Native.so: 260728 -shared/Microsoft.NETCore.App/x.y.z/libSystem.IO.Compression.Native.so: 2722416 -shared/Microsoft.NETCore.App/x.y.z/libSystem.Native.so: 389936 -shared/Microsoft.NETCore.App/x.y.z/libSystem.Net.Security.Native.so: 42744 -shared/Microsoft.NETCore.App/x.y.z/libSystem.Security.Cryptography.Native.OpenSsl.so: 422792 -shared/Microsoft.NETCore.App/x.y.z/Microsoft.CSharp.dll: 747008 -shared/Microsoft.NETCore.App/x.y.z/Microsoft.NETCore.App.deps.json: 25932 -shared/Microsoft.NETCore.App/x.y.z/Microsoft.NETCore.App.runtimeconfig.json: 49 -shared/Microsoft.NETCore.App/x.y.z/Microsoft.VisualBasic.Core.dll: 1207296 -shared/Microsoft.NETCore.App/x.y.z/Microsoft.VisualBasic.dll: 7168 -shared/Microsoft.NETCore.App/x.y.z/Microsoft.Win32.Primitives.dll: 5120 -shared/Microsoft.NETCore.App/x.y.z/Microsoft.Win32.Registry.dll: 22528 -shared/Microsoft.NETCore.App/x.y.z/mscorlib.dll: 49664 -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: 174592 -shared/Microsoft.NETCore.App/x.y.z/System.Collections.dll: 238592 -shared/Microsoft.NETCore.App/x.y.z/System.Collections.Immutable.dll: 718336 -shared/Microsoft.NETCore.App/x.y.z/System.Collections.NonGeneric.dll: 82944 -shared/Microsoft.NETCore.App/x.y.z/System.Collections.Specialized.dll: 82944 -shared/Microsoft.NETCore.App/x.y.z/System.ComponentModel.Annotations.dll: 180224 -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: 731136 -shared/Microsoft.NETCore.App/x.y.z/System.Configuration.dll: 9216 -shared/Microsoft.NETCore.App/x.y.z/System.Console.dll: 189440 -shared/Microsoft.NETCore.App/x.y.z/System.Core.dll: 13312 -shared/Microsoft.NETCore.App/x.y.z/System.Data.Common.dll: 2890752 -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: 388096 -shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.FileVersionInfo.dll: 31744 -shared/Microsoft.NETCore.App/x.y.z/System.Diagnostics.Process.dll: 253952 -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: 204800 -shared/Microsoft.NETCore.App/x.y.z/System.Formats.Tar.dll: 266240 -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: 239104 -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: 67584 -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: 114176 -shared/Microsoft.NETCore.App/x.y.z/System.IO.UnmanagedMemoryStream.dll: 5632 -shared/Microsoft.NETCore.App/x.y.z/System.Linq.dll: 459264 -shared/Microsoft.NETCore.App/x.y.z/System.Linq.Expressions.dll: 3679744 -shared/Microsoft.NETCore.App/x.y.z/System.Linq.Parallel.dll: 786432 -shared/Microsoft.NETCore.App/x.y.z/System.Linq.Queryable.dll: 161280 -shared/Microsoft.NETCore.App/x.y.z/System.Memory.dll: 132608 -shared/Microsoft.NETCore.App/x.y.z/System.Net.dll: 7168 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Http.dll: 1657856 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Http.Json.dll: 109568 -shared/Microsoft.NETCore.App/x.y.z/System.Net.HttpListener.dll: 285184 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Mail.dll: 413696 -shared/Microsoft.NETCore.App/x.y.z/System.Net.NameResolution.dll: 72704 -shared/Microsoft.NETCore.App/x.y.z/System.Net.NetworkInformation.dll: 157184 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Ping.dll: 90112 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Primitives.dll: 215040 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Quic.dll: 288768 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Requests.dll: 344576 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Security.dll: 775168 -shared/Microsoft.NETCore.App/x.y.z/System.Net.ServicePoint.dll: 5120 -shared/Microsoft.NETCore.App/x.y.z/System.Net.Sockets.dll: 554496 -shared/Microsoft.NETCore.App/x.y.z/System.Net.WebClient.dll: 153088 -shared/Microsoft.NETCore.App/x.y.z/System.Net.WebHeaderCollection.dll: 44544 -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: 169984 -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: 57856 -shared/Microsoft.NETCore.App/x.y.z/System.Private.CoreLib.dll: 12767744 -shared/Microsoft.NETCore.App/x.y.z/System.Private.DataContractSerialization.dll: 2083840 -shared/Microsoft.NETCore.App/x.y.z/System.Private.Uri.dll: 225280 -shared/Microsoft.NETCore.App/x.y.z/System.Private.Xml.dll: 8056832 -shared/Microsoft.NETCore.App/x.y.z/System.Private.Xml.Linq.dll: 380416 -shared/Microsoft.NETCore.App/x.y.z/System.Reflection.DispatchProxy.dll: 55808 -shared/Microsoft.NETCore.App/x.y.z/System.Reflection.dll: 6144 -shared/Microsoft.NETCore.App/x.y.z/System.Reflection.Emit.dll: 268288 -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: 1058304 -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: 5120 -shared/Microsoft.NETCore.App/x.y.z/System.Runtime.InteropServices.dll: 91136 -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: 5120 -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: 306688 -shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Serialization.dll: 6656 -shared/Microsoft.NETCore.App/x.y.z/System.Runtime.Serialization.Formatters.dll: 294400 -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: 79360 -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: 5632 -shared/Microsoft.NETCore.App/x.y.z/System.Security.Cryptography.dll: 2171392 -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: 6656 -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: 5120 -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: 838144 -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: 1411072 -shared/Microsoft.NETCore.App/x.y.z/System.Text.RegularExpressions.dll: 974336 -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: 471040 -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: 38912 -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 -Spectre.Console.x.y.z.nupkg: 630112 -System.CodeDom.x.y.z.nupkg: 209585 -System.Collections.Immutable.x.y.z.nupkg: 299427 -System.CommandLine.DragonFruit.x.y.z.nupkg: 24187 -System.CommandLine.NamingConventionBinder.x.y.z.nupkg: 76306 -System.CommandLine.Rendering.x.y.z.nupkg: 55668 -System.CommandLine.x.y.z.nupkg: 304145 -System.ComponentModel.Composition.Registration.x.y.z.nupkg: 56307 -System.ComponentModel.Composition.x.y.z.nupkg: 201627 -System.Composition.AttributedModel.x.y.z.nupkg: 30846 -System.Composition.Convention.x.y.z.nupkg: 59578 -System.Composition.Hosting.x.y.z.nupkg: 65259 -System.Composition.Runtime.x.y.z.nupkg: 37898 -System.Composition.TypedParts.x.y.z.nupkg: 69080 -System.Composition.x.y.z.nupkg: 18960 -System.Configuration.ConfigurationManager.x.y.z.nupkg: 427448 -System.Data.Odbc.x.y.z.nupkg: 321836 -System.Data.OleDb.x.y.z.nupkg: 264000 -System.Diagnostics.DiagnosticSource.x.y.z.nupkg: 188272 -System.Diagnostics.EventLog.x.y.z.nupkg: 165678 -System.Diagnostics.PerformanceCounter.x.y.z.nupkg: 137666 -System.DirectoryServices.AccountManagement.x.y.z.nupkg: 207116 -System.DirectoryServices.Protocols.x.y.z.nupkg: 321111 -System.DirectoryServices.x.y.z.nupkg: 390906 -System.Formats.Asn1.x.y.z.nupkg: 111397 -System.Formats.Cbor.x.y.z.nupkg: 94250 -System.IdentityModel.Tokens.Jwt.x.y.z.nupkg: 41472 -System.IO.Hashing.x.y.z.nupkg: 66793 -System.IO.Packaging.x.y.z.nupkg: 136782 -System.IO.Pipelines.x.y.z.nupkg: 90004 -System.IO.Ports.x.y.z.nupkg: 119137 -System.Management.x.y.z.nupkg: 280452 -System.Memory.Data.x.y.z.nupkg: 43989 -System.Net.Http.Json.x.y.z.nupkg: 68035 -System.Net.Http.WinHttpHandler.x.y.z.nupkg: 107061 -System.Numerics.Tensors.x.y.z.nupkg: 129552 -System.Reflection.Context.x.y.z.nupkg: 88748 -System.Reflection.Metadata.x.y.z.nupkg: 505092 -System.Reflection.MetadataLoadContext.x.y.z.nupkg: 227939 -System.Resources.Extensions.x.y.z.nupkg: 72574 -System.Runtime.Caching.x.y.z.nupkg: 143646 -System.Runtime.Serialization.Schema.x.y.z.nupkg: 48590 -System.Security.Cryptography.Cose.x.y.z.nupkg: 86079 -System.Security.Cryptography.Pkcs.x.y.z.nupkg: 469405 -System.Security.Cryptography.ProtectedData.x.y.z.nupkg: 48107 -System.Security.Cryptography.Xml.x.y.z.nupkg: 191885 -System.Security.Permissions.x.y.z.nupkg: 211368 -System.ServiceModel.Syndication.x.y.z.nupkg: 141159 -System.ServiceProcess.ServiceController.x.y.z.nupkg: 88126 -System.Speech.x.y.z.nupkg: 454073 -System.Text.Encoding.CodePages.x.y.z.nupkg: 1571567 -System.Text.Encodings.Web.x.y.z.nupkg: 118539 -System.Text.Json.x.y.z.nupkg: 748079 -System.Threading.AccessControl.x.y.z.nupkg: 69998 -System.Threading.Channels.x.y.z.nupkg: 99095 -System.Threading.RateLimiting.x.y.z.nupkg: 84681 -System.Threading.Tasks.Dataflow.x.y.z.nupkg: 280825 -System.Windows.Extensions.x.y.z.nupkg: 54282 -templates/x.y.z/microsoft.dotnet.common.itemtemplates.x.y.z.nupkg: 151391 -templates/x.y.z/microsoft.dotnet.common.projecttemplates.x.y.z.nupkg: 143185 -templates/x.y.z/microsoft.dotnet.test.projecttemplates.x.y.z.nupkg: 125860 -templates/x.y.z/microsoft.dotnet.web.itemtemplates.x.y.z.nupkg: 59574 -templates/x.y.z/microsoft.dotnet.web.projecttemplates.x.y.z.nupkg: 5656137 -ThirdPartyNotices.txt: 78664 -Valleysoft.DockerCredsProvider.x.y.z-1.nupkg: 11628 -Valleysoft.DockerCredsProvider.x.y.z.nupkg: 11489 -vbc.Symbols.x.y.z.nupkg: 49555 -VBCSCompiler.Symbols.x.y.z.nupkg: 72561 -VerticalManifest.xml: 93949 -xunit.abstractions.x.y.z.nupkg: 7272 -xunit.core.x.y.z.nupkg: 6132 -xunit.extensibility.core.x.y.z.nupkg: 79927 -xunit.extensibility.execution.x.y.z.nupkg: 292426 -xunit.runner.utility.x.y.z.nupkg: 268714 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/FormatTestFormatted.cs b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/FormatTestFormatted.cs deleted file mode 100644 index 81d4a3a79..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/FormatTestFormatted.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace FormatTest -{ - internal class Test - { - public void Run() - { - string test = "Hello World"; - Console.WriteLine(test); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkAssemblyVersions.diff b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkAssemblyVersions.diff deleted file mode 100644 index 8b1378917..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkAssemblyVersions.diff +++ /dev/null @@ -1 +0,0 @@ - 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 deleted file mode 100644 index cfd17f75b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdkFiles.diff +++ /dev/null @@ -1,54 +0,0 @@ -diff --git a/msftSdkFiles.txt b/sbSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/sbSdkFiles.txt -@@ ------------ @@ - ./host/fxr/x.y.z/ - ./host/fxr/x.y.z/libhostfxr.so - ./LICENSE.txt -+./metadata/ -+./metadata/workloads/ -+./metadata/workloads/x.y.z/ -+./metadata/workloads/x.y.z/userlocal - ./packs/ - ./packs/Microsoft.AspNetCore.App.Ref/ - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ -@@ ------------ @@ - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.xml - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Threading.RateLimiting.dll - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Threading.RateLimiting.xml --./packs/Microsoft.NETCore.App.Host.portable-rid/ --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/ --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/ --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/ --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/ --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/apphost --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/coreclr_delegates.h --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/hostfxr.h --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/libnethost.a --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/libnethost.so --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/nethost.h --./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/singlefilehost -+./packs/Microsoft.NETCore.App.Host.banana-rid/ -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/ -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/ -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/ -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/ -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/apphost -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/coreclr_delegates.h -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/hostfxr.h -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/libnethost.a -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/libnethost.so -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/nethost.h -+./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/banana-rid/native/singlefilehost - ./packs/Microsoft.NETCore.App.Ref/ - ./packs/Microsoft.NETCore.App.Ref/x.y.z/ - ./packs/Microsoft.NETCore.App.Ref/x.y.z/analyzers/ -@@ ------------ @@ - ./sdk/x.y.z/Microsoft.Build.NuGetSdkResolver.dll - ./sdk/x.y.z/Microsoft.Build.Tasks.Core.dll - ./sdk/x.y.z/Microsoft.Build.Utilities.Core.dll --./sdk/x.y.z/Microsoft.CodeCoverage.IO.dll - ./sdk/x.y.z/Microsoft.Common.CrossTargeting.targets - ./sdk/x.y.z/Microsoft.Common.CurrentVersion.targets - ./sdk/x.y.z/Microsoft.Common.overridetasks \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/PoisonUsage.txt b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/PoisonUsage.txt deleted file mode 100644 index f1ab9ecc1..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/PoisonUsage.txt +++ /dev/null @@ -1 +0,0 @@ - \ 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 deleted file mode 100644 index 472899b4c..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.runtime.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "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.source-build-externals.json b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-externals.json deleted file mode 100644 index 305376292..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/licenses/Licenses.source-build-externals.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "files": [ - { - "path": "src/application-insights/LOGGING/ThirdPartyNotices.txt", - "detected_license_expression": "unknown AND apache-2.0 AND mit AND bsd-new" - } - ] -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/local.NuGet.Config b/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/local.NuGet.Config deleted file mode 100644 index d71c973ac..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/local.NuGet.Config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - 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 deleted file mode 100644 index 881020f5a..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/AssemblyVersionHelpers.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/AssemblyVersionHelpers.cs deleted file mode 100644 index 9f1b74849..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/AssemblyVersionHelpers.cs +++ /dev/null @@ -1,36 +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.Collections.Generic; -using System.Data; -using System.IO; -using System.Linq; -using System.Reflection; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -public static class AssemblyVersionHelpers -{ - public static void WriteAssemblyVersionsToFile(Dictionary assemblyVersions, string outputPath) - { - string[] lines = assemblyVersions - .Select(kvp => $"{kvp.Key} - {kvp.Value}") - .Order() - .ToArray(); - File.WriteAllLines(outputPath, lines); - } - - // It's known that assembly versions can be different between builds in their revision field. Disregard that difference - // by excluding that field in the output. - public static Version? GetVersion(AssemblyName assemblyName) - { - if (assemblyName.Version is not null) - { - return new Version(assemblyName.Version.ToString(3)); - } - - return null; - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/BaselineHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/BaselineHelper.cs deleted file mode 100644 index 7a3f58bac..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/BaselineHelper.cs +++ /dev/null @@ -1,135 +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.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using Microsoft.Extensions.FileSystemGlobbing; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.UnifiedBuild.Tests -{ - internal class BaselineHelper - { - 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 CompareBaselineContents(string baselineFileName, string actualContents, string logsDirectory, ITestOutputHelper outputHelper, bool warnOnDiffs = false, string baselineSubDir = "") - { - string actualFilePath = Path.Combine(logsDirectory, $"Updated{baselineFileName}"); - if (!actualContents.EndsWith(Environment.NewLine)) - actualContents += Environment.NewLine; - File.WriteAllText(actualFilePath, actualContents); - - CompareFiles(GetBaselineFilePath(baselineFileName, baselineSubDir), actualFilePath, outputHelper, warnOnDiffs); - } - - public static void CompareFiles(string expectedFilePath, string actualFilePath, ITestOutputHelper outputHelper, bool warnOnDiffs = false) - { - string? message = null; - string prefix = warnOnDiffs ? "##vso[task.logissue type=warning;]" : string.Empty; - string actualFileText = File.ReadAllText(actualFilePath).Trim(); - - if (!File.Exists(expectedFilePath)) - { - // Assume no diffs expected if file isn't present - if (!string.IsNullOrWhiteSpace(actualFileText)) - { - message = $""" - - {prefix}Baseline file '{expectedFilePath}' was not found, so no differences were expected, but differences found: - - {actualFileText} - """; - } - } - else - { - string baselineFileText = File.ReadAllText(expectedFilePath).Trim(); - if (baselineFileText != actualFileText) - { - // Retrieve a diff in order to provide a UX which calls out the diffs. - string diff = DiffFiles(expectedFilePath, actualFilePath, outputHelper); - message = $"{Environment.NewLine}{prefix}Expected file '{expectedFilePath}' does not match actual file '{actualFilePath}`. {Environment.NewLine}" - + $"{diff}{Environment.NewLine}"; - } - } - - if (message is null) - return; - - if (warnOnDiffs) - { - outputHelper.WriteLine(message); - outputHelper.WriteLine("##vso[task.complete result=SucceededWithIssues;]"); - } - else - { - Assert.Fail(message); - } - } - - public static string DiffFiles(string file1Path, string file2Path, ITestOutputHelper outputHelper) - { - (Process Process, string StdOut, string StdErr) diffResult = - ExecuteHelper.ExecuteProcess("git", $"diff --no-index {file1Path} {file2Path}", outputHelper); - - return diffResult.StdOut; - } - - public static string GetAssetsDirectory() => Path.Combine(Directory.GetCurrentDirectory(), "assets"); - - public static string GetBaselineFilePath(string baselineFileName, string baselineSubDir = "") => - Path.Combine(GetAssetsDirectory(), "baselines", baselineSubDir, baselineFileName); - - public static string RemoveRids(string diff, string portableRid, string targetRid, bool isPortable = false) => - isPortable ? diff.Replace(portableRid, "portable-rid") : diff.Replace(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(@"\")}|{Regex.Escape(@"/")}]"; - string result = Regex.Replace(source, $@"{pathSeparator}(net|roslyn)[1-9]+\.[0-9]+{pathSeparator}", match => - { - string wordPart = match.Groups[1].Value; - return $"{'/'}{wordPart}{NonSemanticVersionPlaceholder}{'/'}"; - }); - - // 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-]+)*))?(?=[/\\.-_])"); - return semanticVersionRegex.Replace(result, SemanticVersionPlaceholder); - } - - /// - /// This returns a that can be used to match on a path whose versions have been removed via - /// . - /// - public static Matcher GetFileMatcherFromPath(string path) - { - path = path - .Replace(SemanticVersionPlaceholder, SemanticVersionPlaceholderMatchingPattern) - .Replace(NonSemanticVersionPlaceholder, NonSemanticVersionPlaceholderMatchingPattern); - Matcher matcher = new(); - matcher.AddInclude(path); - return matcher; - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Config.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Config.cs deleted file mode 100644 index 03f6b0d2f..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Config.cs +++ /dev/null @@ -1,62 +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.Diagnostics.CodeAnalysis; -using System.IO; -using System.Net; -using System.Net.Http; -using System.Threading.Tasks; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -public class Config -{ - public static string PortableRid { get; } = GetRuntimeConfig(PortableRidSwitch); - const string PortableRidSwitch = RuntimeConfigSwitchPrefix + nameof(PortableRid); - - public static string LogsDirectory { get; } = GetRuntimeConfig(LogsDirectorySwitch); - const string LogsDirectorySwitch = RuntimeConfigSwitchPrefix + nameof(LogsDirectory); - - public static string TargetRid { get; } = GetRuntimeConfig(TargetRidSwitch); - const string TargetRidSwitch = RuntimeConfigSwitchPrefix + nameof(TargetRid); - - public static string TargetArchitecture { get; } = TargetRid.Split('-')[1]; - - public static bool WarnOnContentDiffs { get; } = TryGetRuntimeConfig(WarnOnContentDiffsSwitch, out bool value) ? value : false; - const string WarnOnContentDiffsSwitch = RuntimeConfigSwitchPrefix + nameof(WarnOnContentDiffs); - - public const string RuntimeConfigSwitchPrefix = "Microsoft.DotNet.UnifiedBuild.Tests."; - - public static string DownloadCacheDirectory { get; } = Path.Combine(Config.LogsDirectory, "Microsoft.DotNet.UnifiedBuild.Tests", "DownloadCache"); - - public static string GetRuntimeConfig(string key) - { - return TryGetRuntimeConfig(key, out string? value) ? value : throw new InvalidOperationException($"Runtime config setting '{key}' must be specified"); - } - - public static bool TryGetRuntimeConfig(string key, out bool value) - { - string? rawValue = (string?)AppContext.GetData(key); - if (string.IsNullOrEmpty(rawValue)) - { - value = default!; - return false; - } - value = bool.Parse(rawValue); - return true; - } - - public static bool TryGetRuntimeConfig(string key, [NotNullWhen(true)] out string? value) - { - value = (string?)AppContext.GetData(key); - if (string.IsNullOrEmpty(value)) - { - return false; - } - return true; - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Exclusions.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Exclusions.cs deleted file mode 100644 index 65598a6b9..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Exclusions.cs +++ /dev/null @@ -1,68 +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.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.IO.Enumeration; -using System.Linq; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -public class Exclusions -{ - public const string UbPrefix = "ub"; - public const string MsftPrefix = "msft"; - - public Exclusions(string rid) - { - _rid = rid; - } - - string _rid; - - string[] GetRidSpecificExclusionFileNames(string path) - { - string filename = Path.GetFileNameWithoutExtension(path); - string extension = Path.GetExtension(path); - Debug.Assert(path == $"{filename}{extension}", $"{path} != {filename}{extension}"); - string[] parts = _rid.Split('-'); - string[] fileNames = new string[parts.Length+1]; - fileNames[0] = $"{filename}{extension}"; - for (int i = 1; i < parts.Length; i++) - { - fileNames[i] = $"{filename}-{string.Join('-', parts[..i])}-any{extension}"; - } - fileNames[parts.Length] = $"{filename}-{_rid}{extension}"; - return fileNames; - } - - public IEnumerable RemoveContentDiffFileExclusions(IEnumerable files, string? prefix = null) - { - var exclusions = GetFileExclusions(prefix); - Func condition = f => !IsFileExcluded(f, exclusions, prefix); - return files.Where(condition); - } - - public IEnumerable RemoveAssemblyVersionFileExclusions(IEnumerable files, string? prefix = null) - { - var exclusions = GetFileExclusions(prefix).Concat(GetNativeDllExclusions(prefix)).Concat(GetAssemblyVersionExclusions(prefix)); - Func condition = f => !IsFileExcluded(f, exclusions, prefix); - return files.Where(condition); - } - - public List GetFileExclusions(string? prefix = null) => GetRidSpecificExclusionFileNames("SdkFileDiffExclusions.txt").SelectMany(f => Utilities.TryParseExclusionsFile(f, prefix)).ToList(); - public List GetAssemblyVersionExclusions(string? prefix = null) => GetRidSpecificExclusionFileNames("SdkAssemblyVersionDiffExclusions.txt").SelectMany(f => Utilities.TryParseExclusionsFile(f, prefix)).ToList(); - public List GetNativeDllExclusions(string? prefix = null) => GetRidSpecificExclusionFileNames("NativeDlls.txt").SelectMany(f => Utilities.TryParseExclusionsFile(f, prefix)).ToList(); - public string GetBaselineFileDiffFileName() => GetRidSpecificExclusionFileNames("MsftToUbSdkFiles.diff").Last(); - - static string NormalizePath(string path) - { - return path.Replace('\\', '/'); - } - - public bool IsFileExcluded(string file, IEnumerable exclusions, string? prefix = null) - => exclusions.Any(exclusion => FileSystemName.MatchesSimpleExpression(exclusion, NormalizePath(file))); -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/ExecuteHelper.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/ExecuteHelper.cs deleted file mode 100644 index 697ab8b48..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/ExecuteHelper.cs +++ /dev/null @@ -1,132 +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.Diagnostics; -using System.Linq; -using System.Text; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -internal static class ExecuteHelper -{ - public static (Process Process, string StdOut, string StdErr) ExecuteProcess( - string fileName, - string args, - ITestOutputHelper outputHelper, - bool logOutput = false, - bool excludeInfo = false, - Action? configureCallback = null, - int millisecondTimeout = -1) - { - if (!excludeInfo) - { - outputHelper.WriteLine($"Executing: {fileName} {args}"); - } - - Process process = new() - { - EnableRaisingEvents = true, - StartInfo = - { - FileName = fileName, - Arguments = args, - RedirectStandardOutput = true, - RedirectStandardError = true, - } - }; - - // The `dotnet test` execution context sets a number of dotnet related ENVs that cause issues when executing - // dotnet commands. Clear these to avoid side effects. - foreach (string key in process.StartInfo.Environment.Keys.Where(key => key != "HOME").ToList()) - { - process.StartInfo.Environment.Remove(key); - } - - configureCallback?.Invoke(process); - - StringBuilder stdOutput = new(); - process.OutputDataReceived += new DataReceivedEventHandler( - (sender, e) => - { - lock (stdOutput) - { - stdOutput.AppendLine(e.Data); - } - }); - - StringBuilder stdError = new(); - process.ErrorDataReceived += new DataReceivedEventHandler( - (sender, e) => - { - lock (stdError) - { - stdError.AppendLine(e.Data); - } - }); - - process.Start(); - - process.BeginOutputReadLine(); - process.BeginErrorReadLine(); - process.WaitForExit(millisecondTimeout); - - if (!process.HasExited) - { - outputHelper.WriteLine($"Process did not exit. Killing {fileName} {args} after waiting {millisecondTimeout} milliseconds."); - process.Kill(true); - process.WaitForExit(); - } - - string output; - string error; - - lock (stdOutput) - { - output = stdOutput.ToString().Trim(); - } - - lock (stdError) - { - error = stdError.ToString().Trim(); - } - - if (logOutput) - { - if (!string.IsNullOrWhiteSpace(output)) - { - outputHelper.WriteLine(output); - } - - if (string.IsNullOrWhiteSpace(error)) - { - outputHelper.WriteLine(error); - } - } - - return (process, output, error); - } - - public static string ExecuteProcessValidateExitCode(string fileName, string args, ITestOutputHelper outputHelper) - { - (Process Process, string StdOut, string StdErr) result = ExecuteHelper.ExecuteProcess(fileName, args, outputHelper); - ValidateExitCode(result); - - return result.StdOut; - } - - public static void ValidateExitCode((Process Process, string StdOut, string StdErr) result, int expectedExitCode = 0) - { - if (result.Process.ExitCode != expectedExitCode) - { - ProcessStartInfo startInfo = result.Process.StartInfo; - string msg = $"Failed to execute {startInfo.FileName} {startInfo.Arguments}" + - $"{Environment.NewLine}Exit code: {result.Process.ExitCode}" + - $"{Environment.NewLine}{result.StdOut}" + - $"{Environment.NewLine}{result.StdErr}"; - throw new InvalidOperationException(msg); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj deleted file mode 100644 index 86b3f1f15..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Microsoft.DotNet.UnifiedBuild.Tests.csproj +++ /dev/null @@ -1,64 +0,0 @@ - - - - $(NetCurrent) - $(DefaultExcludesInProjectFolder);assets/**/* - true - console%3bverbosity=diagnostic;trx%3bverbosity=diagnostic%3bLogFileName=$(MSBuildProjectName).trx - $(VSTestCLIRunSettings);RunConfiguration.DotNetHostPath=$(DotnetTool) - - - - - - - - - - - - - - - <_ProducedPackages Include="$(ArtifactsShippingPackagesDir)**/*.nupkg" /> - - - - - $(ArtifactsTestResultsDir) - - - $(TargetRid) - - - $(PortableRid) - - - $(UBTestsWarnOnContentDiffs) - - - $(ArtifactsDir)VerticalManifest.xml - - - - - $(SdkTarballPath) - - - $(SourceBuiltSdkVersion) - - - - $(UBTestsMsftSdkArchivePath) - - - - - @(_ProducedPackages->'%(Identity)') - - - - - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/NugetPackageContentTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/NugetPackageContentTests.cs deleted file mode 100644 index f112584f7..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/NugetPackageContentTests.cs +++ /dev/null @@ -1,115 +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 NuGet.Common; -using NuGet.Packaging; -using NuGet.Protocol; -using NuGet.Protocol.Core.Types; -using NuGet.Versioning; -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.Reflection; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -[Trait("Category", "SdkContent")] -public class NugetPackageContentTests : TestBase -{ - static readonly ImmutableArray ExcludedFileExtensions = [".psmdcp", ".p7s"]; - - static ImmutableArray? _packages = null; - public NugetPackageContentTests(ITestOutputHelper outputHelper) : base(outputHelper) { } - - public static IEnumerable GetPackages() - { - return _packages ??= NugetPackageDownloadHelpers.DownloadPackages(); - } - - /// - /// Verifies the file layout of the source built sdk tarball to the Microsoft build. - /// The differences are captured in baselines/MsftToUbSdkDiff.txt. - /// Version numbers that appear in paths are compared but are stripped from the baseline. - /// This makes the baseline durable between releases. This does mean however, entries - /// in the baseline may appear identical if the diff is version specific. - /// - [Theory] - [MemberData(nameof(GetPackages))] - public async Task CompareFileContents(string packageName, string testNugetPackagePath, string baselineNugetPackagePath) - { - var ct = CancellationToken.None; - using PackageArchiveReader testPackageReader = new PackageArchiveReader(File.OpenRead(testNugetPackagePath)); - - using PackageArchiveReader packageReader = new PackageArchiveReader(baselineNugetPackagePath); - IEnumerable baselineFiles = (await packageReader.GetFilesAsync(ct)).Where(f => !ExcludedFileExtensions.Contains(Path.GetExtension(f))); - IEnumerable testFiles = (await testPackageReader.GetFilesAsync(ct)).Where(f => !ExcludedFileExtensions.Contains(Path.GetExtension(f))); - - var testPackageContentsFileName = Path.Combine(Config.LogsDirectory, packageName + "_ub_files.txt"); - await File.WriteAllLinesAsync(testPackageContentsFileName, testFiles); - var baselinePackageContentsFileName = Path.Combine(Config.LogsDirectory, packageName + "_msft_files.txt"); - await File.WriteAllLinesAsync(testPackageContentsFileName, baselineFiles); - - string diff = BaselineHelper.DiffFiles(baselinePackageContentsFileName, testPackageContentsFileName, OutputHelper); - diff = SdkContentTests.RemoveDiffMarkers(diff); - BaselineHelper.CompareBaselineContents($"MsftToUb-{packageName}-Files.diff", diff, Config.LogsDirectory, OutputHelper, Config.WarnOnContentDiffs); - } - - [Theory] - [MemberData(nameof(GetPackages))] - public async Task CompareAssemblyVersions(string packageName, string testNugetPackagePath, string baselineNugetPackagePath) - { - using PackageArchiveReader testPackageReader = new PackageArchiveReader(File.OpenRead(testNugetPackagePath)); - - using PackageArchiveReader baselinePackageReader = new PackageArchiveReader(baselineNugetPackagePath); - IEnumerable baselineFiles = (await baselinePackageReader.GetFilesAsync(CancellationToken.None)).Where(f => !ExcludedFileExtensions.Contains(Path.GetExtension(f))); - IEnumerable testFiles = (await testPackageReader.GetFilesAsync(CancellationToken.None)).Where(f => !ExcludedFileExtensions.Contains(Path.GetExtension(f))); - Dictionary baselineAssemblyVersions = new(); - Dictionary testAssemblyVersions = new(); - foreach (var fileName in baselineFiles.Intersect(testFiles)) - { - string baselineFileName = Path.GetTempFileName(); - string testFileName = Path.GetTempFileName(); - using (FileStream baselineFile = File.OpenWrite(baselineFileName)) - using (FileStream testFile = File.OpenWrite(testFileName)) - { - await baselinePackageReader.GetEntry(fileName).Open().CopyToAsync(baselineFile); - await testPackageReader.GetEntry(fileName).Open().CopyToAsync(testFile); - } - try - { - var baselineAssemblyVersion = AssemblyName.GetAssemblyName(testFileName); - baselineAssemblyVersions.Add(fileName, baselineAssemblyVersion.Version); - } - catch (BadImageFormatException) - { - Assert.Throws(() => AssemblyName.GetAssemblyName(baselineFileName)); - break; - } - var testAssemblyVersion = AssemblyName.GetAssemblyName(baselineFileName); - testAssemblyVersions.Add(fileName, testAssemblyVersion.Version); - - File.Delete(baselineFileName); - File.Delete(testFileName); - } - - string UbVersionsFileName = packageName + "_ub_assemblyversions.txt"; - AssemblyVersionHelpers.WriteAssemblyVersionsToFile(testAssemblyVersions, UbVersionsFileName); - - string MsftVersionsFileName = packageName + "_msft_assemblyversions.txt"; - AssemblyVersionHelpers.WriteAssemblyVersionsToFile(baselineAssemblyVersions, MsftVersionsFileName); - - string diff = BaselineHelper.DiffFiles(MsftVersionsFileName, UbVersionsFileName, OutputHelper); - diff = SdkContentTests.RemoveDiffMarkers(diff); - BaselineHelper.CompareBaselineContents($"MsftToUb_{packageName}.diff", diff, Config.LogsDirectory, OutputHelper, Config.WarnOnContentDiffs); - } -} - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/NugetPackageDownloadHelpers.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/NugetPackageDownloadHelpers.cs deleted file mode 100644 index e75d1f04b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/NugetPackageDownloadHelpers.cs +++ /dev/null @@ -1,113 +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 NuGet.Common; -using NuGet.Protocol; -using NuGet.Protocol.Core.Types; -using NuGet.Versioning; -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Xml; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -public static class NugetPackageDownloadHelpers -{ - static string[] NugetIndices = [ - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-libraries-transport/nuget/v3/index.json", - "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json", - ]; - - static string DownloadCacheDir = Path.Combine(Config.DownloadCacheDirectory, "NugetPackageBaselines"); - - const string PackagesSwitch = Config.RuntimeConfigSwitchPrefix + "Packages"; - static string PackagesConfig { get; } = Config.GetRuntimeConfig(PackagesSwitch); - static ImmutableArray PackagesPaths { get; } = PackagesConfig.Split(";") - // Nuget is unable to find fsharp or command-line-api packages for some reason - .Where(p => !(Path.GetFileName(Path.GetDirectoryName(p)) is "fsharp" or "command-line-api")).ToImmutableArray(); - - static string ManifestPath { get; } = Config.GetRuntimeConfig(ManifestSwitch); - const string ManifestSwitch = Config.RuntimeConfigSwitchPrefix + "AssetManifestPath"; - - public static ImmutableArray DownloadPackages() - { - Directory.CreateDirectory(DownloadCacheDir); - - XmlDocument manifest = new XmlDocument(); - manifest.Load(ManifestPath); - XmlNodeList packagesInManifest = manifest.SelectNodes("/Build/Package")!; - List packagesInfo = new(packagesInManifest.Count); - List> downloadPackageTasks = new(packagesInManifest.Count); - foreach (XmlNode node in packagesInManifest) - { - if (node.Attributes?["DotNetReleaseShipping"]?.Value != "true") - continue; - var id = node.Attributes!["Id"]!.Value; - var version = node.Attributes["Version"]!.Value; - var path = PackagesPaths.Where(path => Path.GetFileName(path) == $"{id}.{version}.nupkg").Single(); - packagesInfo.Add([id, path, null!]); - downloadPackageTasks.Add(DownloadPackage(id, new NuGetVersion(version))); - } - var packageDownloadTasks = downloadPackageTasks.ToArray(); - Task.WaitAll(packageDownloadTasks); - for (int i = 0; i < packageDownloadTasks.Length; i++) - { - var task = packageDownloadTasks[i]; - packagesInfo[i][2] = task.Result!; - } - return packagesInfo.Where(p => p[2] is not null).ToImmutableArray(); - } - - static async Task DownloadPackage(string packageId, NuGetVersion packageVersion) - { - var packagePath = Path.Combine(DownloadCacheDir, $"{packageId}.{packageVersion.ToFullString()}.nupkg"); - if (File.Exists(packagePath)) - { - return packagePath; - } - - bool found = false; - ILogger logger = NullLogger.Instance; - CancellationToken cancellationToken = CancellationToken.None; - SourceCacheContext cache = new SourceCacheContext(); - using (var packageFile = File.Create(packagePath)) - { - foreach (var nugetRepository in NugetIndices) - { - SourceRepository repository = Repository.Factory.GetCoreV3(nugetRepository); - FindPackageByIdResource resource = await repository.GetResourceAsync(); - - found = await resource.CopyNupkgToStreamAsync( - packageId, - packageVersion, - packageFile, - cache, - logger, - cancellationToken); - - if (found) - { - break; - } - } - } - if (!found) - { - return null; - } - return packagePath; - } -} - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Readme.md b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Readme.md deleted file mode 100644 index 49568f86a..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Unified Build Validation Tests - -This project compares the output of the Unified Build system with the official Microsoft Build. There are tests to compare the list of files in the SDK archive, and the versions of each managed assembly in each SDK. -Files can be excluded from each comparison in by placing the file name in one of the files in the `assets/` folder. Each file will apply to a all or a subset of RIDs depending on the suffix of the filename. For example, filenames in SdkFileDiffExclusions-linux-any.txt will be excluded from all linux SDK comparisons. - -| File Name | Purpose | -|--------------------------------------|------------------------------------------------------------------------------------------------------------------------| -| SdkFileDiffExclusions.txt | Files that should not be included in any file comparisons | -| NativeDlls.txt | Files that end in .dll or .exe that are not managed assemblies and should be excluded from assembly version validation | -| SdkAssemblyVersionDiffExclusions.txt | Files that should not be included in the assembly version validation for any other reason | - -## SDK archive file list comparison - -The files of each sdk archive iterated through, filtered and the name is written to `msftSdkFiles.txt` or `ubSdkFiles.txt` in the same directory as the test assembly. Then the test runs `git diff --no-index msftSdkFiles.txt ubSdkFiles.txt` and writes stdout to `$(OutDir)/log/UpdatedMsftToUbSdkFiles-{Rid}.diff`. This diff is then compared with the expected baseline in `./assets/baselines/MsftToUbSdkFiles-{Rid}.diff`. If the baselines are not identical, the test fails. - -### Updating the baseline - -If the test fails, but you've inspected the `UpdatedMsftToUbSdkFiles-{RID}.diff` and the changes are expected, then overwrite `./assets/baselines/MsftToUbSdkFiles-{Rid}.diff` with the updated baseline diff. - -## Sdk assembly version comparison - -This is done the similarly to the file comparison, but only looks at files that end in `.dll` or `.exe`, and filters out filename in `SdkFileDiffExclusions.txt`, `NativeDlls.txt`, and `SdkAssemblyVersionDiffExclusions.txt`. Each file name and the assembly version are written to `ub_assemblyversions.txt` or `msft_assemblyversions.txt`. Those files are then `git diff`'ed, and stdout is written to `$(OutDir)/log/UpdatedMsftToUbSdkAssemblyVersions-{Rid}.diff`. Then, the test diffs that with the baseline. - -### Updating the baseline - -If the test fails and the changes to the baseline are expected, the overwrite `./assets/baselines/MsftToUbSdkFiles-{RID}.diff` with the updated baseline. diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/SdkContentTests.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/SdkContentTests.cs deleted file mode 100644 index 6ff4ca955..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/SdkContentTests.cs +++ /dev/null @@ -1,248 +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.Collections.Concurrent; -using System.Collections.Generic; -using System.Data; -using System.IO; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Reflection; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -[Trait("Category", "SdkContent")] -public class SdkContentTests : TestBase -{ - Exclusions Exclusions; - - static string UbSdkArchivePath { get; } = Config.GetRuntimeConfig(UbSdkArchivePathSwitch); - const string UbSdkArchivePathSwitch = Config.RuntimeConfigSwitchPrefix + nameof(UbSdkArchivePath); - - static string UbSdkVersion { get; } = Config.GetRuntimeConfig(UbSdkVersionSwitch); - const string UbSdkVersionSwitch = Config.RuntimeConfigSwitchPrefix + nameof(UbSdkVersion); - - static string MsftSdkArchivePath { get; } = Config.TryGetRuntimeConfig(MsftSdkArchivePathSwitch, out string? value) ? value : DownloadMsftSdkArchive().Result; - const string MsftSdkArchivePathSwitch = Config.RuntimeConfigSwitchPrefix + nameof(MsftSdkArchivePath); - - - public SdkContentTests(ITestOutputHelper outputHelper) : base(outputHelper) - { - Exclusions = new(Config.TargetRid); - } - - /// - /// Verifies the file layout of the source built sdk tarball to the Microsoft build. - /// The differences are captured in baselines/MsftToUbSdkDiff.txt. - /// Version numbers that appear in paths are compared but are stripped from the baseline. - /// This makes the baseline durable between releases. This does mean however, entries - /// in the baseline may appear identical if the diff is version specific. - /// - [Fact] - public void CompareMsftToUbFileList() - { - const string msftFileListingFileName = "msftSdkFiles.txt"; - const string ubFileListingFileName = "ubSdkFiles.txt"; - WriteTarballFileList(MsftSdkArchivePath, msftFileListingFileName, isPortable: true, Exclusions.MsftPrefix); - WriteTarballFileList(UbSdkArchivePath, ubFileListingFileName, isPortable: true, Exclusions.UbPrefix); - - string diff = BaselineHelper.DiffFiles(msftFileListingFileName, ubFileListingFileName, OutputHelper); - diff = RemoveDiffMarkers(diff); - BaselineHelper.CompareBaselineContents(Exclusions.GetBaselineFileDiffFileName(), diff, Config.LogsDirectory, OutputHelper, Config.WarnOnContentDiffs); - } - - [Fact] - public async Task CompareMsftToUbAssemblyVersions() - { - Assert.NotNull(MsftSdkArchivePath); - Assert.NotNull(UbSdkArchivePath); - - DirectoryInfo tempDir = Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName())); - try - { - DirectoryInfo ubSdkDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, Exclusions.UbPrefix)); - Utilities.ExtractTarball(UbSdkArchivePath, ubSdkDir.FullName, OutputHelper); - - DirectoryInfo msftSdkDir = Directory.CreateDirectory(Path.Combine(tempDir.FullName, Exclusions.MsftPrefix)); - Utilities.ExtractTarball(MsftSdkArchivePath, msftSdkDir.FullName, OutputHelper); - - var t1 = Task.Run(() => GetSdkAssemblyVersions(ubSdkDir.FullName)); - var t2 = Task.Run(() => GetSdkAssemblyVersions(msftSdkDir.FullName)); - var results = await Task.WhenAll(t1, t2); - Dictionary ubSdkAssemblyVersions = results[0]; - Dictionary msftSdkAssemblyVersions = results[1]; - - RemoveExcludedAssemblyVersionPaths(ubSdkAssemblyVersions, msftSdkAssemblyVersions); - - const string UbVersionsFileName = "ub_assemblyversions.txt"; - AssemblyVersionHelpers.WriteAssemblyVersionsToFile(ubSdkAssemblyVersions, UbVersionsFileName); - - const string MsftVersionsFileName = "msft_assemblyversions.txt"; - AssemblyVersionHelpers.WriteAssemblyVersionsToFile(msftSdkAssemblyVersions, MsftVersionsFileName); - - string diff = BaselineHelper.DiffFiles(MsftVersionsFileName, UbVersionsFileName, OutputHelper); - diff = RemoveDiffMarkers(diff); - BaselineHelper.CompareBaselineContents($"MsftToUbSdkAssemblyVersions-{Config.TargetRid}.diff", diff, Config.LogsDirectory, OutputHelper, Config.WarnOnContentDiffs); - } - finally - { - tempDir.Delete(recursive: true); - } - } - - private void RemoveExcludedAssemblyVersionPaths(Dictionary ubSdkAssemblyVersions, Dictionary msftSdkAssemblyVersions) - { - IEnumerable assemblyVersionDiffFilters = Exclusions.GetAssemblyVersionExclusions() - .Select(filter => filter.TrimStart("./".ToCharArray())); - // Remove entries that are not in both. If they should be in both, the mismatch will be caught in another test - foreach (var kvp in ubSdkAssemblyVersions) - { - if (!msftSdkAssemblyVersions.ContainsKey(kvp.Key)) - { - ubSdkAssemblyVersions.Remove(kvp.Key); - } - } - - foreach (var kvp in msftSdkAssemblyVersions) - { - if (!ubSdkAssemblyVersions.ContainsKey(kvp.Key)) - { - msftSdkAssemblyVersions.Remove(kvp.Key); - } - } - - // Remove any excluded files as long as UB SDK's file has the same or greater assembly version compared to the corresponding - // file in the MSFT SDK. If the version is less, the file will show up in the results as this is not a scenario - // that is valid for shipping. - string[] ubSdkFileArray = ubSdkAssemblyVersions.Keys.ToArray(); - for (int i = ubSdkFileArray.Length - 1; i >= 0; i--) - { - string assemblyPath = ubSdkFileArray[i]; - if (ubSdkAssemblyVersions.TryGetValue(assemblyPath, out Version? ubVersion) && - msftSdkAssemblyVersions.TryGetValue(assemblyPath, out Version? msftVersion) && - ubVersion >= msftVersion && - Utilities.IsFileExcluded(assemblyPath, assemblyVersionDiffFilters)) - { - ubSdkAssemblyVersions.Remove(assemblyPath); - msftSdkAssemblyVersions.Remove(assemblyPath); - } - } - } - - private Dictionary GetSdkAssemblyVersions(string ubSdkPath, string? prefix = null) - { - Exclusions ex = Exclusions; - IEnumerable exclusionFilters = ex.GetFileExclusions(prefix) - .Concat(ex.GetNativeDllExclusions(prefix)) - .Concat(ex.GetAssemblyVersionExclusions(prefix)) - .Select(filter => filter.TrimStart("./".ToCharArray())); - ConcurrentDictionary ubSdkAssemblyVersions = new(); - List tasks = new List(); - foreach (string dir in Directory.EnumerateDirectories(ubSdkPath, "*", SearchOption.AllDirectories).Append(ubSdkPath)) - { - var t = Task.Run(() => - { - foreach (string file in Directory.EnumerateFiles(dir, "*", SearchOption.TopDirectoryOnly)) - { - string fileExt = Path.GetExtension(file); - if (fileExt.Equals(".dll", StringComparison.OrdinalIgnoreCase) || - fileExt.Equals(".exe", StringComparison.OrdinalIgnoreCase)) - { - string relativePath = Path.GetRelativePath(ubSdkPath, file); - string normalizedPath = BaselineHelper.RemoveVersions(relativePath); - if (!ex.IsFileExcluded(normalizedPath, exclusionFilters)) - { - try - { - AssemblyName assemblyName = AssemblyName.GetAssemblyName(file); - Assert.True(ubSdkAssemblyVersions.TryAdd(normalizedPath, AssemblyVersionHelpers.GetVersion(assemblyName))); - } - catch (BadImageFormatException) - { - Console.WriteLine($"BadImageFormatException: {file}"); - } - } - } - } - }); - tasks.Add(t); - } - Task.WaitAll(tasks.ToArray()); - return ubSdkAssemblyVersions.ToDictionary(); - } - - private void WriteTarballFileList(string? tarballPath, string outputFileName, bool isPortable, string sdkType) - { - if (!File.Exists(tarballPath)) - { - throw new InvalidOperationException($"Tarball path '{tarballPath}' does not exist."); - } - - string fileListing = Utilities.GetTarballContentNames(tarballPath).Aggregate((a, b) => $"{a}{Environment.NewLine}{b}"); - fileListing = BaselineHelper.RemoveRids(fileListing, Config.PortableRid, Config.TargetRid, isPortable); - fileListing = BaselineHelper.RemoveVersions(fileListing); - IEnumerable files = fileListing.Split(Environment.NewLine).OrderBy(path => path); - files = Exclusions.RemoveContentDiffFileExclusions(files, sdkType); - - File.WriteAllLines(outputFileName, files); - } - - public static string RemoveDiffMarkers(string source) - { - Regex indexRegex = new("^index .*", RegexOptions.Multiline); - string result = indexRegex.Replace(source, "index ------------"); - - Regex diffSegmentRegex = new("^@@ .* @@", RegexOptions.Multiline); - return diffSegmentRegex.Replace(result, "@@ ------------ @@").ReplaceLineEndings(); - } - - static string GetArchiveExtension(string path) - { - if (path.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase)) - return ".zip"; - if (path.EndsWith(".tar.gz", StringComparison.InvariantCultureIgnoreCase)) - return ".tar.gz"; - throw new InvalidOperationException($"Path does not have a valid archive extenions: '{path}'"); - } - - static async Task DownloadMsftSdkArchive() - { - string downloadCacheDir = Path.Combine(Config.DownloadCacheDirectory, "Sdks"); - Directory.CreateDirectory(downloadCacheDir); - var client = new HttpClient(new HttpClientHandler() { AllowAutoRedirect = false }); - var channel = UbSdkVersion[..5] + "xx"; - var akaMsUrl = $"https://aka.ms/dotnet/{channel}/daily/dotnet-sdk-{Config.TargetRid}{GetArchiveExtension(UbSdkArchivePath)}"; - - var redirectResponse = await client.GetAsync(akaMsUrl); - - // aka.ms returns a 301 for valid redirects and a 302 to Bing for invalid URLs - if (redirectResponse.StatusCode != HttpStatusCode.Moved) - { - throw new InvalidOperationException($"Could not find download link for Microsoft built sdk at '{akaMsUrl}'"); - } - var closestUrl = redirectResponse.Headers.Location!.ToString(); - var msftSdkFileName = Path.GetFileName(redirectResponse.Headers.Location.LocalPath); - - var localMsftSdkPath = Path.Combine(downloadCacheDir, msftSdkFileName); - - if (File.Exists(localMsftSdkPath)) - { - return localMsftSdkPath; - } - - var fileStream = await client.GetStreamAsync(closestUrl); - using (FileStream file = File.Create(localMsftSdkPath)) - { - await fileStream.CopyToAsync(file); - } - - return localMsftSdkPath; - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/TestBase.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/TestBase.cs deleted file mode 100644 index 4454764ed..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/TestBase.cs +++ /dev/null @@ -1,24 +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 Xunit; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -public abstract class TestBase -{ - public ITestOutputHelper OutputHelper { get; } - - public TestBase(ITestOutputHelper outputHelper) - { - OutputHelper = outputHelper; - if (!Directory.Exists(Config.LogsDirectory)) - { - Directory.CreateDirectory(Config.LogsDirectory); - } - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Utilities.cs b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Utilities.cs deleted file mode 100644 index 57bfa0a48..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/Utilities.cs +++ /dev/null @@ -1,226 +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.Extensions.FileSystemGlobbing; -using System; -using System.Collections.Generic; -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; -using Xunit.Abstractions; - -namespace Microsoft.DotNet.UnifiedBuild.Tests; - -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.Replace('\\', '/'), 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 IEnumerable TryParseExclusionsFile(string exclusionsFileName, string? prefix = null) - { - string exclusionsFilePath = Path.Combine(BaselineHelper.GetAssetsDirectory(), exclusionsFileName); - int prefixSkip = prefix?.Length + 1 ?? 0; - if (!File.Exists(exclusionsFilePath)) - { - return []; - } - 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), - // use 'tar' instead. - if (tarballPath.EndsWith(".tar.gz", StringComparison.InvariantCultureIgnoreCase) || tarballPath.EndsWith(".tgz", StringComparison.InvariantCultureIgnoreCase)) - { - ExecuteHelper.ExecuteProcessValidateExitCode("tar", $"xzf {tarballPath} -C {outputDir}", outputHelper); - } - else if (tarballPath.EndsWith(".zip")) - { - ZipFile.ExtractToDirectory(tarballPath, outputDir); - } - else - { - throw new InvalidOperationException($"Unsupported archive format: {tarballPath}"); - } - } - - public static void ExtractTarball(string tarballPath, string outputDir, string targetFilePath) - { - Matcher matcher = new(); - matcher.AddInclude(targetFilePath); - - using FileStream fileStream = File.OpenRead(tarballPath); - using GZipStream decompressorStream = new(fileStream, CompressionMode.Decompress); - using TarReader reader = new(decompressorStream); - - TarEntry? entry; - while ((entry = reader.GetNextEntry()) is not null) - { - if (matcher.Match(entry.Name).HasMatches) - { - string outputPath = Path.Join(outputDir, entry.Name); - Directory.CreateDirectory(Path.GetDirectoryName(outputPath)!); - - using FileStream outputFileStream = File.Create(outputPath); - entry.DataStream!.CopyTo(outputFileStream); - break; - } - } - } - - public static IEnumerable GetTarballContentNames(string tarballPath) - { - if (tarballPath.EndsWith(".zip")) - { - using ZipArchive zip = ZipFile.OpenRead(tarballPath); - foreach (ZipArchiveEntry entry in zip.Entries) - { - yield return entry.FullName; - } - yield break; - } - else if (tarballPath.EndsWith(".tar.gz") || tarballPath.EndsWith(".tgz")) - { - using FileStream fileStream = File.OpenRead(tarballPath); - using GZipStream decompressorStream = new(fileStream, CompressionMode.Decompress); - using TarReader reader = new(decompressorStream); - - TarEntry? entry; - while ((entry = reader.GetNextEntry()) is not null) - { - yield return entry.Name; - } - } - else - { - throw new InvalidOperationException($"Unsupported archive format: {tarballPath}"); - } - } - - public static void ExtractNupkg(string package, string outputDir) - { - Directory.CreateDirectory(outputDir); - - using ZipArchive zip = ZipFile.OpenRead(package); - foreach (ZipArchiveEntry entry in zip.Entries) - { - string outputPath = Path.Combine(outputDir, entry.FullName); - Directory.CreateDirectory(Path.GetDirectoryName(outputPath)!); - entry.ExtractToFile(outputPath); - } - } - - public static async Task RetryAsync(Func executor, ITestOutputHelper outputHelper) - { - await Utilities.RetryAsync( - async () => - { - try - { - await executor(); - return null; - } - catch (Exception e) - { - return e; - } - }, - outputHelper); - } - - private static async Task RetryAsync(Func> executor, ITestOutputHelper outputHelper) - { - const int maxRetries = 5; - const int waitFactor = 5; - - int retryCount = 0; - - Exception? exception = await executor(); - while (exception != null) - { - retryCount++; - if (retryCount >= maxRetries) - { - throw new InvalidOperationException($"Failed after {retryCount} retries.", exception); - } - - int waitTime = Convert.ToInt32(Math.Pow(waitFactor, retryCount - 1)); - if (outputHelper != null) - { - outputHelper.WriteLine($"Retry {retryCount}/{maxRetries}, retrying in {waitTime} seconds..."); - } - - Thread.Sleep(TimeSpan.FromSeconds(waitTime)); - exception = await executor(); - } - } - - 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); - Assert.False(files.Length > 1, $"Found multiple files matching the pattern {pattern}: {Environment.NewLine}{string.Join(Environment.NewLine, files)}"); - Assert.False(files.Length == 0, $"Did not find any files matching the pattern {pattern}"); - return files[0]; - } -} diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls-win-any.txt b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls-win-any.txt deleted file mode 100644 index e59d5de0f..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls-win-any.txt +++ /dev/null @@ -1,49 +0,0 @@ -# Contains the list of native .dll and .exe files that shouldn't have their assembly version checked. -# -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# Examples -# 'folder/*' matches 'folder/' and 'folder/abc' -# 'folder/?*' matches 'folder/abc' but not 'folder/' -# -# We do not want to filter-out folder entries, therefore, we should use: '?*' and not just '*' - - -./sdk/x.y.z/AppHostTemplate/apphost.exe -./host/fxr/x.y.z/hostfxr.dll -./shared/Microsoft.AspNetCore.App/x.y.z/aspnetcorev2_inprocess.dll -./shared/Microsoft.WindowsDesktop.App/x.y.z/D3DCompiler_47_cor3.dll -./shared/Microsoft.NETCore.App/x.y.z/clretwrc.dll -./shared/Microsoft.NETCore.App/x.y.z/clrgc.dll -./shared/Microsoft.WindowsDesktop.App/x.y.z/PenImc_cor3.dll -./shared/Microsoft.WindowsDesktop.App/x.y.z/PresentationNative_cor3.dll -./shared/Microsoft.NETCore.App/x.y.z/clrgcexp.dll -./shared/Microsoft.NETCore.App/x.y.z/clrjit.dll -./shared/Microsoft.WindowsDesktop.App/x.y.z/vcruntime140_cor3.dll -./shared/Microsoft.NETCore.App/x.y.z/coreclr.dll -./shared/Microsoft.NETCore.App/x.y.z/createdump.exe -./shared/Microsoft.WindowsDesktop.App/x.y.z/wpfgfx_cor3.dll -./shared/Microsoft.NETCore.App/x.y.z/hostpolicy.dll -./shared/Microsoft.NETCore.App/x.y.z/Microsoft.DiaSymReader.Native.amd64.dll -./shared/Microsoft.NETCore.App/x.y.z/mscordaccore.dll -./shared/Microsoft.NETCore.App/x.y.z/mscordaccore_amd64_amd64_x.y.z.dll -./shared/Microsoft.NETCore.App/x.y.z/mscordbi.dll -./shared/Microsoft.NETCore.App/x.y.z/mscorrc.dll -./shared/Microsoft.NETCore.App/x.y.z/msquic.dll -./packs/Microsoft.NETCore.App.Host.win-x64/x.y.z/runtimes/win-x64/native/apphost.exe -./packs/Microsoft.NETCore.App.Host.win-x86/x.y.z/runtimes/win-x86/native/apphost.exe -./packs/Microsoft.NETCore.App.Host.win-arm64/x.y.z/runtimes/win-arm64/native/apphost.exe -./packs/Microsoft.NETCore.App.Host.win-x64/x.y.z/runtimes/win-x64/native/comhost.dll -./packs/Microsoft.NETCore.App.Host.win-x86/x.y.z/runtimes/win-x86/native/comhost.dll -./packs/Microsoft.NETCore.App.Host.win-arm64/x.y.z/runtimes/win-arm64/native/comhost.dll -./packs/Microsoft.NETCore.App.Host.win-x64/x.y.z/runtimes/win-x64/native/ijwhost.dll -./packs/Microsoft.NETCore.App.Host.win-x86/x.y.z/runtimes/win-x86/native/ijwhost.dll -./packs/Microsoft.NETCore.App.Host.win-arm64/x.y.z/runtimes/win-arm64/native/ijwhost.dll -./packs/Microsoft.NETCore.App.Host.win-x64/x.y.z/runtimes/win-x64/native/nethost.dll -./packs/Microsoft.NETCore.App.Host.win-x86/x.y.z/runtimes/win-x86/native/nethost.dll -./packs/Microsoft.NETCore.App.Host.win-arm64/x.y.z/runtimes/win-arm64/native/nethost.dll -./packs/Microsoft.NETCore.App.Host.win-x64/x.y.z/runtimes/win-x64/native/singlefilehost.exe -./packs/Microsoft.NETCore.App.Host.win-x86/x.y.z/runtimes/win-x86/native/singlefilehost.exe -./packs/Microsoft.NETCore.App.Host.win-arm64/x.y.z/runtimes/win-arm64/native/singlefilehost.exe -./shared/Microsoft.NETCore.App/x.y.z/System.IO.Compression.Native.dll -./dotnet.exe diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls-win-x64.txt b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls-win-x64.txt deleted file mode 100644 index 918503d71..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls-win-x64.txt +++ /dev/null @@ -1,11 +0,0 @@ -# Contains the list of native .dll and .exe files that shouldn't have their assembly version checked. -# -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# Examples -# 'folder/*' matches 'folder/' and 'folder/abc' -# 'folder/?*' matches 'folder/abc' but not 'folder/' -# -# We do not want to filter-out folder entries, therefore, we should use: '?*' and not just '*' - -./shared/Microsoft.NETCore.App/x.y.z/mscordaccore_amd64_amd64_x.y.z.dll diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls.txt b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls.txt deleted file mode 100644 index 8624457fa..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/NativeDlls.txt +++ /dev/null @@ -1,13 +0,0 @@ -# Contains the list of native .dll and .exe files that shouldn't have their assembly version checked. -# -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# Examples -# 'folder/*' matches 'folder/' and 'folder/abc' -# 'folder/?*' matches 'folder/abc' but not 'folder/' -# -# We do not want to filter-out folder entries, therefore, we should use: '?*' and not just '*' - -./sdk/x.y.z/TestHostNetFramework/x64/msdia140.dll -./sdk/x.y.z/TestHostNetFramework/x86/msdia140.dll -./sdk/x.y.z/datacollector.dll diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkAssemblyVersionDiffExclusions.txt b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkAssemblyVersionDiffExclusions.txt deleted file mode 100644 index 658d97d78..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkAssemblyVersionDiffExclusions.txt +++ /dev/null @@ -1,56 +0,0 @@ -# Contains the list of files whose assembly versions are to be excluded from comparison between the MSFT & SB SDK. -# These exclusions only take effect if the assembly version of the file in the SB SDK is equal to or greater than -# the version in the MSFT SDK. If the version is less, the file will show up in the results as this is not a scenario -# that is valid for shipping. -# -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# Examples -# 'folder/*' matches 'folder/' and 'folder/abc' -# 'folder/?*' matches 'folder/abc' but not 'folder/' -# -# We do not want to filter-out folder entries, therefore, we should use: '?*' and not just '*' - -./sdk/x.y.z/*/NuGet.Commands.resources.dll -./sdk/x.y.z/*/NuGet.Common.resources.dll -./sdk/x.y.z/*/NuGet.Configuration.resources.dll -./sdk/x.y.z/*/NuGet.Credentials.resources.dll -./sdk/x.y.z/*/NuGet.DependencyResolver.Core.resources.dll -./sdk/x.y.z/*/NuGet.Frameworks.resources.dll -./sdk/x.y.z/*/NuGet.LibraryModel.resources.dll -./sdk/x.y.z/*/NuGet.Localization.resources.dll -./sdk/x.y.z/*/NuGet.PackageManagement.resources.dll -./sdk/x.y.z/*/NuGet.Packaging.Core.resources.dll -./sdk/x.y.z/*/NuGet.Packaging.resources.dll -./sdk/x.y.z/*/NuGet.ProjectModel.resources.dll -./sdk/x.y.z/*/NuGet.Protocol.resources.dll -./sdk/x.y.z/*/NuGet.Resolver.resources.dll -./sdk/x.y.z/*/NuGet.Versioning.resources.dll -./sdk/x.y.z/*/NuGet.VisualStudio.Contracts.resources.dll -./sdk/x.y.z/*/Test.Utility.resources.dll - -./sdk/x.y.z/DotnetTools/dotnet-format/dotnet-format.dll -./sdk/x.y.z/DotnetTools/dotnet-format/*/dotnet-format.resources.dll -./sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.Bcl.AsyncInterfaces.dll -./sdk/x.y.z/DotnetTools/dotnet-format/Microsoft.DiaSymReader.dll -./sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll -./sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll -./sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll -./sdk/x.y.z/DotnetTools/dotnet-format/runtimes/win/lib/netx.y/System.Windows.Extensions.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.CodeDom.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.AttributedModel.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.Convention.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.Hosting.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.Runtime.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Composition.TypedParts.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Configuration.ConfigurationManager.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Diagnostics.EventLog.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Reflection.MetadataLoadContext.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Resources.Extensions.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Cryptography.Pkcs.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Cryptography.ProtectedData.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Cryptography.Xml.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Security.Permissions.dll -./sdk/x.y.z/DotnetTools/dotnet-format/System.Windows.Extensions.dll - -./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.DiaSymReader.dll diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkFileDiffExclusions-linux-any.txt b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkFileDiffExclusions-linux-any.txt deleted file mode 100644 index 1344e262f..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkFileDiffExclusions-linux-any.txt +++ /dev/null @@ -1,14 +0,0 @@ -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# Format -# {msft|sb}, [# comment] -# msft = Microsoft built SDK -# ub = Unified Build SDK -# -# Examples -# 'folder/*' matches 'folder/' and 'folder/abc' -# 'folder/?*' matches 'folder/abc' but not 'folder/' - -# These files are Windows specific and should not be in the Microsoft build -msft,./sdk/x.y.z/Containers/containerize/* -msft,./sdk/x.y.z/Containers/tasks/net472/* diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkFileDiffExclusions-osx-any.txt b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkFileDiffExclusions-osx-any.txt deleted file mode 100644 index 1344e262f..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/SdkFileDiffExclusions-osx-any.txt +++ /dev/null @@ -1,14 +0,0 @@ -# This list is processed using FileSystemName.MatchesSimpleExpression -# -# Format -# {msft|sb}, [# comment] -# msft = Microsoft built SDK -# ub = Unified Build SDK -# -# Examples -# 'folder/*' matches 'folder/' and 'folder/abc' -# 'folder/?*' matches 'folder/abc' but not 'folder/' - -# These files are Windows specific and should not be in the Microsoft build -msft,./sdk/x.y.z/Containers/containerize/* -msft,./sdk/x.y.z/Containers/tasks/net472/* diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-arm.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-arm.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-arm64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-arm64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-musl-x64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-linux-x64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-osx-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-osx-arm64.diff deleted file mode 100644 index 8b1378917..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-osx-arm64.diff +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-osx-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-osx-x64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-win-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-win-arm64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-win-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-win-x64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-win-x86.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkAssemblyVersions-win-x86.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-arm.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-arm.diff deleted file mode 100644 index fff0fe82b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-arm.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll -@@ ------------ @@ - ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll - ./sdk/x.y.z/Microsoft.NET.StringTools.dll - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props --./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-arm64.diff deleted file mode 100644 index fff0fe82b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-arm64.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll -@@ ------------ @@ - ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll - ./sdk/x.y.z/Microsoft.NET.StringTools.dll - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props --./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm.diff deleted file mode 100644 index fff0fe82b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll -@@ ------------ @@ - ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll - ./sdk/x.y.z/Microsoft.NET.StringTools.dll - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props --./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm64.diff deleted file mode 100644 index fff0fe82b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-arm64.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll -@@ ------------ @@ - ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll - ./sdk/x.y.z/Microsoft.NET.StringTools.dll - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props --./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-x64.diff deleted file mode 100644 index fff0fe82b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-musl-x64.diff +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll -@@ ------------ @@ - ./sdk/x.y.z/Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll - ./sdk/x.y.z/Microsoft.NET.StringTools.dll - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledCliTools.props --./sdk/x.y.z/Microsoft.NETCoreSdk.BundledMSBuildInformation.props - ./sdk/x.y.z/Microsoft.NETCoreSdk.BundledVersions.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.props - ./sdk/x.y.z/Microsoft.NETFramework.CurrentVersion.targets diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-x64.diff deleted file mode 100644 index dde40bb0e..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-linux-x64.diff +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.DiaSymReader.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Extensions.DependencyInjection.Abstractions.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Extensions.Logging.Abstractions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.VisualStudio.Setup.Configuration.Interop.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/middleware/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/middleware/Microsoft.AspNetCore.Watch.BrowserRefresh.dll -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CommandLine.dll -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.Runtime.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.TypedParts.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Configuration.ConfigurationManager.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Diagnostics.EventLog.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Reflection.MetadataLoadContext.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Resources.Extensions.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.ProtectedData.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.Xml.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Permissions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/ diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-osx-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-osx-arm64.diff deleted file mode 100644 index dde40bb0e..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-osx-arm64.diff +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.DiaSymReader.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Extensions.DependencyInjection.Abstractions.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Extensions.Logging.Abstractions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.VisualStudio.Setup.Configuration.Interop.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/middleware/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/middleware/Microsoft.AspNetCore.Watch.BrowserRefresh.dll -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CommandLine.dll -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.Runtime.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.TypedParts.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Configuration.ConfigurationManager.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Diagnostics.EventLog.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Reflection.MetadataLoadContext.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Resources.Extensions.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.ProtectedData.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.Xml.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Permissions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/ diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-osx-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-osx-x64.diff deleted file mode 100644 index dde40bb0e..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-osx-x64.diff +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/msftSdkFiles.txt b/ubSdkFiles.txt -index ------------ ---- a/msftSdkFiles.txt -+++ b/ubSdkFiles.txt -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.DiaSymReader.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Extensions.DependencyInjection.Abstractions.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.Extensions.Logging.Abstractions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/Microsoft.VisualStudio.Setup.Configuration.Interop.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/middleware/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/middleware/Microsoft.AspNetCore.Watch.BrowserRefresh.dll -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/ --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Security.Cryptography.Pkcs.dll -+./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Diagnostics.EventLog.Messages.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/runtimes/win/lib/netx.y/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CodeDom.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.CommandLine.dll -@@ ------------ @@ - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.Runtime.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Composition.TypedParts.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Configuration.ConfigurationManager.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Diagnostics.EventLog.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Reflection.MetadataLoadContext.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Resources.Extensions.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.Pkcs.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.ProtectedData.dll --./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Cryptography.Xml.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Security.Permissions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/System.Windows.Extensions.dll - ./sdk/x.y.z/DotnetTools/dotnet-watch/x.y.z/tools/netx.y/any/tr/ diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-win-arm64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-win-arm64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-win-x64.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-win-x64.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-win-x86.diff b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/assets/baselines/MsftToUbSdkFiles-win-x86.diff deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/xunit.runner.json b/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/xunit.runner.json deleted file mode 100644 index 6c0d1e49b..000000000 --- a/src/SourceBuild/content/test/Microsoft.DotNet.UnifiedBuild.Tests/xunit.runner.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json", - "diagnosticMessages": true -} diff --git a/src/SourceBuild/content/test/TestUtilities/ConditionalDiscovererException.cs b/src/SourceBuild/content/test/TestUtilities/ConditionalDiscovererException.cs deleted file mode 100644 index 917572e84..000000000 --- a/src/SourceBuild/content/test/TestUtilities/ConditionalDiscovererException.cs +++ /dev/null @@ -1,12 +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; - -namespace TestUtilities; - -internal class ConditionalDiscovererException : Exception -{ - public ConditionalDiscovererException(string message) : base(message) { } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/TestUtilities/ConditionalFactAttribute.cs b/src/SourceBuild/content/test/TestUtilities/ConditionalFactAttribute.cs deleted file mode 100644 index 4fe2035f0..000000000 --- a/src/SourceBuild/content/test/TestUtilities/ConditionalFactAttribute.cs +++ /dev/null @@ -1,31 +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.Collections.Generic; -using System.Linq; -using Xunit; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace TestUtilities; - -[XunitTestCaseDiscoverer("TestUtilities.ConditionalFactDiscoverer", "TestUtilities")] -[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] -public sealed class ConditionalFactAttribute : FactAttribute -{ - public Type? CalleeType { get; } - public string[] ConditionMemberNames { get; } - - public ConditionalFactAttribute(Type calleeType, params string[] conditionMemberNames) - { - CalleeType = calleeType; - ConditionMemberNames = conditionMemberNames; - } - - public ConditionalFactAttribute(params string[] conditionMemberNames) - { - ConditionMemberNames = conditionMemberNames; - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/TestUtilities/ConditionalFactDiscoverer.cs b/src/SourceBuild/content/test/TestUtilities/ConditionalFactDiscoverer.cs deleted file mode 100644 index c47ef547a..000000000 --- a/src/SourceBuild/content/test/TestUtilities/ConditionalFactDiscoverer.cs +++ /dev/null @@ -1,28 +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.Collections.Generic; -using System.Linq; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace TestUtilities; - -public class ConditionalFactDiscoverer : FactDiscoverer -{ - public ConditionalFactDiscoverer(IMessageSink diagnosticMessageSink) : base(diagnosticMessageSink) { } - - protected override IXunitTestCase CreateTestCase(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo factAttribute) - { - if (ConditionalTestDiscoverer.TryEvaluateSkipConditions(discoveryOptions, DiagnosticMessageSink, testMethod, factAttribute.GetConstructorArguments().ToArray(), out string skipReason, out ExecutionErrorTestCase errorTestCase)) - { - return skipReason != null - ? (IXunitTestCase) new SkippedTestCase(skipReason, DiagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), discoveryOptions.MethodDisplayOptionsOrDefault(), testMethod) - : base.CreateTestCase(discoveryOptions, testMethod, factAttribute); - } - - return errorTestCase; - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/TestUtilities/ConditionalTestDiscoverer.cs b/src/SourceBuild/content/test/TestUtilities/ConditionalTestDiscoverer.cs deleted file mode 100644 index 8b09c85bf..000000000 --- a/src/SourceBuild/content/test/TestUtilities/ConditionalTestDiscoverer.cs +++ /dev/null @@ -1,181 +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. - -#nullable disable - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace TestUtilities; - -// Internal helper class for code common to conditional test discovery through -// [ConditionalFact] and [ConditionalTheory] -internal static class ConditionalTestDiscoverer -{ - // This helper method evaluates the given condition member names for a given set of test cases. - // If any condition member evaluates to 'false', the test cases are marked to be skipped. - // The skip reason is the collection of all the condition members that evaluated to 'false'. - internal static string EvaluateSkipConditions(ITestMethod testMethod, object[] conditionArguments) - { - Type calleeType = null; - string[] conditionMemberNames = null; - - if (CheckInputToSkipExecution(conditionArguments, ref calleeType, ref conditionMemberNames, testMethod)) return null; - - MethodInfo testMethodInfo = testMethod.Method.ToRuntimeMethod(); - Type testMethodDeclaringType = testMethodInfo.DeclaringType; - List falseConditions = new List(conditionMemberNames.Count()); - - foreach (string entry in conditionMemberNames) - { - string conditionMemberName = entry; - - // Null condition member names are silently tolerated - if (string.IsNullOrWhiteSpace(conditionMemberName)) - { - continue; - } - - Type declaringType; - - if (calleeType != null) - { - declaringType = calleeType; - } - else - { - declaringType = testMethodDeclaringType; - - string[] symbols = conditionMemberName.Split('.'); - if (symbols.Length == 2) - { - conditionMemberName = symbols[1]; - ITypeInfo type = testMethod.TestClass.Class.Assembly.GetTypes(false).Where(t => t.Name.Contains(symbols[0])).FirstOrDefault(); - if (type != null) - { - declaringType = type.ToRuntimeType(); - } - } - } - - Func conditionFunc; - if ((conditionFunc = LookupConditionalMember(declaringType, conditionMemberName)) == null) - { - throw new ConditionalDiscovererException(GetFailedLookupString(conditionMemberName, declaringType)); - } - - // In the case of multiple conditions, collect the results of all - // of them to produce a summary skip reason. - try - { - if (!conditionFunc()) - { - falseConditions.Add(conditionMemberName); - } - } - catch (Exception exc) - { - falseConditions.Add($"{conditionMemberName} ({exc.GetType().Name})"); - } - } - - // Compose a summary of all conditions that returned false. - if (falseConditions.Count > 0) - { - return string.Format("Condition(s) not met: \"{0}\"", string.Join("\", \"", falseConditions)); - } - - // No conditions returned false (including the absence of any conditions). - return null; - } - - internal static bool TryEvaluateSkipConditions(ITestFrameworkDiscoveryOptions discoveryOptions, IMessageSink diagnosticMessageSink, ITestMethod testMethod, object[] conditionArguments, out string skipReason, out ExecutionErrorTestCase errorTestCase) - { - skipReason = null; - errorTestCase = null; - try - { - skipReason = EvaluateSkipConditions(testMethod, conditionArguments); - return true; - } - catch (ConditionalDiscovererException e) - { - errorTestCase = new ExecutionErrorTestCase( - diagnosticMessageSink, - discoveryOptions.MethodDisplayOrDefault(), - discoveryOptions.MethodDisplayOptionsOrDefault(), - testMethod, - e.Message); - return false; - } - } - - internal static string GetFailedLookupString(string name, Type type) - { - return - $"An appropriate member '{name}' could not be found. " + - $"The conditional method needs to be a static method, property, or field on the type {type} or any ancestor, " + - "of any visibility, accepting zero arguments, and having a return type of Boolean."; - } - - internal static Func LookupConditionalMember(Type t, string name) - { - if (t == null || name == null) - return null; - - TypeInfo ti = t.GetTypeInfo(); - - MethodInfo mi = ti.GetDeclaredMethod(name); - if (mi != null && mi.IsStatic && mi.GetParameters().Length == 0 && mi.ReturnType == typeof(bool)) - return () => (bool)mi.Invoke(null, null); - - PropertyInfo pi = ti.GetDeclaredProperty(name); - if (pi != null && pi.PropertyType == typeof(bool) && pi.GetMethod != null && pi.GetMethod.IsStatic && pi.GetMethod.GetParameters().Length == 0) - return () => (bool)pi.GetValue(null); - - FieldInfo fi = ti.GetDeclaredField(name); - if (fi != null && fi.FieldType == typeof(bool) && fi.IsStatic) - return () => (bool)fi.GetValue(null); - - return LookupConditionalMember(ti.BaseType, name); - } - - internal static bool CheckInputToSkipExecution(object[] conditionArguments, ref Type calleeType, ref string[] conditionMemberNames, ITestMethod testMethod = null) - { - // A null or empty list of conditionArguments is treated as "no conditions". - // and the test cases will be executed. - // Example: [ConditionalClass()] - if (conditionArguments == null || conditionArguments.Length == 0) return true; - - calleeType = conditionArguments[0] as Type; - if (calleeType != null) - { - if (conditionArguments.Length < 2) - { - // [ConditionalFact(typeof(x))] no provided methods. - return true; - } - - // [ConditionalFact(typeof(x), "MethodName")] - conditionMemberNames = conditionArguments[1] as string[]; - } - else - { - // For [ConditionalClass], unable to get the Type info. All test cases will be executed. - if (testMethod == null) return true; - - // [ConditionalFact("MethodName")] - conditionMemberNames = conditionArguments[0] as string[]; - } - - // [ConditionalFact((string[]) null)] - if (conditionMemberNames == null || conditionMemberNames.Count() == 0) return true; - - return false; - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/TestUtilities/ConditionalTheoryAttribute.cs b/src/SourceBuild/content/test/TestUtilities/ConditionalTheoryAttribute.cs deleted file mode 100644 index 919a6d775..000000000 --- a/src/SourceBuild/content/test/TestUtilities/ConditionalTheoryAttribute.cs +++ /dev/null @@ -1,31 +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.Collections.Generic; -using System.Linq; -using Xunit; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace TestUtilities; - -[XunitTestCaseDiscoverer("TestUtilities.ConditionalTheoryDiscoverer", "TestUtilities")] -[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] -public sealed class ConditionalTheoryAttribute : TheoryAttribute -{ - public Type? CalleeType { get; } - public string[] ConditionMemberNames { get; } - - public ConditionalTheoryAttribute(Type calleeType, params string[] conditionMemberNames) - { - CalleeType = calleeType; - ConditionMemberNames = conditionMemberNames; - } - - public ConditionalTheoryAttribute(params string[] conditionMemberNames) - { - ConditionMemberNames = conditionMemberNames; - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/TestUtilities/ConditionalTheoryDiscoverer.cs b/src/SourceBuild/content/test/TestUtilities/ConditionalTheoryDiscoverer.cs deleted file mode 100644 index c7e55bf38..000000000 --- a/src/SourceBuild/content/test/TestUtilities/ConditionalTheoryDiscoverer.cs +++ /dev/null @@ -1,56 +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.Collections.Generic; -using System.Linq; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace TestUtilities; - -public class ConditionalTheoryDiscoverer : TheoryDiscoverer -{ - private readonly Dictionary _conditionCache = new(); - - public ConditionalTheoryDiscoverer(IMessageSink diagnosticMessageSink) : base(diagnosticMessageSink) { } - - protected override IEnumerable CreateTestCasesForTheory(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo theoryAttribute) - { - if (ConditionalTestDiscoverer.TryEvaluateSkipConditions(discoveryOptions, DiagnosticMessageSink, testMethod, theoryAttribute.GetConstructorArguments().ToArray(), out string skipReason, out ExecutionErrorTestCase errorTestCase)) - { - return skipReason != null ? - new[] { new SkippedTestCase(skipReason, DiagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), discoveryOptions.MethodDisplayOptionsOrDefault(), testMethod) } : - base.CreateTestCasesForTheory(discoveryOptions, testMethod, theoryAttribute); - } - - return new IXunitTestCase[] { errorTestCase }; - } - - protected override IEnumerable CreateTestCasesForDataRow(ITestFrameworkDiscoveryOptions discoveryOptions, ITestMethod testMethod, IAttributeInfo theoryAttribute, object[] dataRow) - { - IMethodInfo methodInfo = testMethod.Method; - List skippedTestCase = new(); - - if (!_conditionCache.TryGetValue(methodInfo, out string? skipReason)) - { - if (!ConditionalTestDiscoverer.TryEvaluateSkipConditions(discoveryOptions, DiagnosticMessageSink, testMethod, theoryAttribute.GetConstructorArguments().ToArray(), out skipReason, out ExecutionErrorTestCase errorTestCase)) - { - return new IXunitTestCase[] { errorTestCase }; - } - - _conditionCache.Add(methodInfo, skipReason!); - - if (skipReason != null) - { - // If this is the first time we evalute the condition we return a SkippedTestCase to avoid printing a skip for every inline-data. - skippedTestCase.Add(new SkippedTestCase(skipReason, DiagnosticMessageSink, discoveryOptions.MethodDisplayOrDefault(), discoveryOptions.MethodDisplayOptionsOrDefault(), testMethod)); - } - } - - return skipReason != null ? - (IEnumerable)skippedTestCase : - base.CreateTestCasesForDataRow(discoveryOptions, testMethod, theoryAttribute, dataRow); - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/TestUtilities/SkippedTestCase.cs b/src/SourceBuild/content/test/TestUtilities/SkippedTestCase.cs deleted file mode 100644 index e7fc97956..000000000 --- a/src/SourceBuild/content/test/TestUtilities/SkippedTestCase.cs +++ /dev/null @@ -1,50 +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.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace TestUtilities; - -/// Wraps another test case that should be skipped. -internal sealed class SkippedTestCase : XunitTestCase -{ - private string? _skipReason; - - [Obsolete("Called by the de-serializer; should only be called by deriving classes for de-serialization purposes")] - public SkippedTestCase() : base() - { - } - - public SkippedTestCase( - string skipReason, - IMessageSink diagnosticMessageSink, - TestMethodDisplay defaultMethodDisplay, - TestMethodDisplayOptions defaultMethodDisplayOptions, - ITestMethod testMethod, - object[]? testMethodArguments = null) - : base(diagnosticMessageSink, defaultMethodDisplay, defaultMethodDisplayOptions, testMethod, testMethodArguments) - { - _skipReason = skipReason; - } - - protected override string GetSkipReason(IAttributeInfo factAttribute) - => _skipReason ?? base.GetSkipReason(factAttribute); - - public override void Deserialize(IXunitSerializationInfo data) - { - base.Deserialize(data); - _skipReason = data.GetValue(nameof(_skipReason)); - } - - public override void Serialize(IXunitSerializationInfo data) - { - base.Serialize(data); - data.AddValue(nameof(_skipReason), _skipReason); - } -} \ No newline at end of file diff --git a/src/SourceBuild/content/test/TestUtilities/TestUtilities.csproj b/src/SourceBuild/content/test/TestUtilities/TestUtilities.csproj deleted file mode 100644 index c5a88adaf..000000000 --- a/src/SourceBuild/content/test/TestUtilities/TestUtilities.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - $(NetCurrent) - true - - - - - - - - \ No newline at end of file diff --git a/src/SourceBuild/content/test/scenario-tests/Directory.Build.targets b/src/SourceBuild/content/test/scenario-tests/Directory.Build.targets deleted file mode 100644 index 56dccb479..000000000 --- a/src/SourceBuild/content/test/scenario-tests/Directory.Build.targets +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/SourceBuild/content/test/scenario-tests/scenario-tests.proj b/src/SourceBuild/content/test/scenario-tests/scenario-tests.proj deleted file mode 100644 index 410ac2f54..000000000 --- a/src/SourceBuild/content/test/scenario-tests/scenario-tests.proj +++ /dev/null @@ -1,17 +0,0 @@ - - - - $(NetCurrent) - true - - - - - - - - diff --git a/src/SourceBuild/content/test/tests.proj b/src/SourceBuild/content/test/tests.proj deleted file mode 100644 index 2f8df9ccb..000000000 --- a/src/SourceBuild/content/test/tests.proj +++ /dev/null @@ -1,29 +0,0 @@ - - - - <_RunScenarioTests>true - - - <_RunScenarioTests Condition="'$(BuildArchitecture.ToLowerInvariant())' != '$(TargetArchitecture.ToLowerInvariant())'">false - - - <_RunScenarioTests Condition="'$(BuildOS)' != 'windows' and '$(DotNetBuildSourceOnly)' != 'true' and '$(__PortableTargetOS.ToLowerInvariant())' != '$(TargetOS.ToLowerInvariant())'">false - - - <_RunScenarioTests Condition="'$(UseOfficialBuildVersioning)' == 'false'">false - - - - - - - - - - diff --git a/src/SourceBuild/patches/roslyn/0001-ambiguous-call-site.patch b/src/SourceBuild/patches/roslyn/0001-ambiguous-call-site.patch deleted file mode 100644 index ed342cd31..000000000 --- a/src/SourceBuild/patches/roslyn/0001-ambiguous-call-site.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Michael Simons -Date: Thu, 2 May 2024 21:52:54 +0000 -Subject: [PATCH] Avoid ambiguous call site - ---- - .../GenerateType/AbstractGenerateTypeService.Editor.cs | 4 ++-- - .../Workspace/Core/CodeGeneration/CodeGenerationHelpers.cs | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/Features/Core/Portable/GenerateType/AbstractGenerateTypeService.Editor.cs b/src/Features/Core/Portable/GenerateType/AbstractGenerateTypeService.Editor.cs -index 8adaaeda551..b099e092c7b 100644 ---- a/src/Features/Core/Portable/GenerateType/AbstractGenerateTypeService.Editor.cs -+++ b/src/Features/Core/Portable/GenerateType/AbstractGenerateTypeService.Editor.cs -@@ -525,7 +525,7 @@ private async Task> GetGenerateIntoContainin - AddFoldersToNamespaceContainers(containerList, folders); - - containers = [.. containerList]; -- includeUsingsOrImports = string.Join(".", [.. containerList]); -+ includeUsingsOrImports = string.Join(".", containerList); - } - - // Case 4 : If the type is generated into the same VB project or -@@ -539,7 +539,7 @@ private async Task> GetGenerateIntoContainin - // Populate the ContainerList - AddFoldersToNamespaceContainers(containerList, folders); - containers = [.. containerList]; -- includeUsingsOrImports = string.Join(".", [.. containerList]); -+ includeUsingsOrImports = string.Join(".", containerList); - if (!string.IsNullOrWhiteSpace(rootNamespaceOfTheProjectGeneratedInto)) - { - includeUsingsOrImports = string.IsNullOrEmpty(includeUsingsOrImports) -diff --git a/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/CodeGenerationHelpers.cs b/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/CodeGenerationHelpers.cs -index 3839eb370eb..8d272db6b1b 100644 ---- a/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/CodeGenerationHelpers.cs -+++ b/src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/CodeGeneration/CodeGenerationHelpers.cs -@@ -71,7 +71,7 @@ internal static class CodeGenerationHelpers - break; - } - -- name = string.Join(".", [.. names]); -+ name = string.Join(".", names); - } - else - { diff --git a/src/SourceBuild/patches/scenario-tests/0001-Disable-Aspire-scenario-test.patch b/src/SourceBuild/patches/scenario-tests/0001-Disable-Aspire-scenario-test.patch deleted file mode 100644 index f2a5f62d3..000000000 --- a/src/SourceBuild/patches/scenario-tests/0001-Disable-Aspire-scenario-test.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Matt Thalman -Date: Tue, 30 Apr 2024 08:34:08 -0500 -Subject: [PATCH] Disable Aspire scenario test - -Backport: https://github.com/dotnet/sdk/pull/40485 ---- - .../SdkTemplateTests.cs | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs -index c43fdd6..bb5c52d 100644 ---- a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs -+++ b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs -@@ -217,7 +217,7 @@ public class SdkTemplateTests : IClassFixture - newTest.Execute(_sdkHelper, _scenarioTestInput.TestRoot, "wasm-tools"); - } - -- [Fact] -+ //[Fact] - [Trait("Category", "Workload")] - [Trait("Category", "InProgress")] - public void VerifyAspireTemplate() diff --git a/src/SourceBuild/patches/scenario-tests/0002-Disable-WPF-scenario-test.patch b/src/SourceBuild/patches/scenario-tests/0002-Disable-WPF-scenario-test.patch deleted file mode 100644 index ba5dfa3ae..000000000 --- a/src/SourceBuild/patches/scenario-tests/0002-Disable-WPF-scenario-test.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Matt Thalman -Date: Tue, 30 Apr 2024 10:21:32 -0500 -Subject: [PATCH] Disable WPF scenario test - -Backport: https://github.com/dotnet/source-build/issues/4361 ---- - .../SdkTemplateTests.cs | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs -index c43fdd6..35279a9 100644 ---- a/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs -+++ b/src/Microsoft.DotNet.ScenarioTests.SdkTemplateTests/SdkTemplateTests.cs -@@ -84,7 +84,7 @@ public class SdkTemplateTests : IClassFixture - newTest.Execute(_sdkHelper, _scenarioTestInput.TestRoot); - } - -- [Theory] -+ //[Theory] - [InlineData(DotNetLanguage.CSharp)] - [InlineData(DotNetLanguage.VB)] - [Trait("Category", "Offline")] diff --git a/src/SourceBuild/patches/sdk/0001-Make-redist-installer.csproj-a-dummy.patch b/src/SourceBuild/patches/sdk/0001-Make-redist-installer.csproj-a-dummy.patch deleted file mode 100644 index 6587fc6e2..000000000 --- a/src/SourceBuild/patches/sdk/0001-Make-redist-installer.csproj-a-dummy.patch +++ /dev/null @@ -1,59 +0,0 @@ -From e9227c298e8950a6fbbd13072249e04a641c9c35 Mon Sep 17 00:00:00 2001 -From: Viktor Hofer -Date: Fri, 3 May 2024 06:20:29 +0000 -Subject: [PATCH] Make redist-instlaler.csproj a dummy - ---- - .../redist-installer/redist-installer.csproj | 40 ------------------- - 1 file changed, 40 deletions(-) - -diff --git a/src/Installer/redist-installer/redist-installer.csproj b/src/Installer/redist-installer/redist-installer.csproj -index 8913fff18a..54e2cadc07 100644 ---- a/src/Installer/redist-installer/redist-installer.csproj -+++ b/src/Installer/redist-installer/redist-installer.csproj -@@ -11,44 +11,4 @@ - true - - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - --- diff --git a/src/SourceBuild/patches/vstest/0001-Make-IDE0073-silent.patch b/src/SourceBuild/patches/vstest/0001-Make-IDE0073-silent.patch deleted file mode 100644 index d4f43d6f3..000000000 --- a/src/SourceBuild/patches/vstest/0001-Make-IDE0073-silent.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7e4258f7c5ae7260d904962f60ce8e35c4fa4402 Mon Sep 17 00:00:00 2001 -From: Viktor Hofer -Date: Fri, 3 May 2024 17:24:56 +0200 -Subject: [PATCH] Make IDE0073 silent - -Backport / PR that fixes this: https://github.com/microsoft/vstest/pull/5020 - ---- - .editorconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/.editorconfig b/.editorconfig -index b78e7a35..e2e9c09f 100644 ---- a/.editorconfig -+++ b/.editorconfig -@@ -393,7 +393,7 @@ dotnet_diagnostic.IDE0052.severity = silent - - # IDE1006: Naming Styles - dotnet_diagnostic.IDE1006.severity = warning --dotnet_diagnostic.IDE0073.severity = warning -+dotnet_diagnostic.IDE0073.suggestion = warning - - # Naming rules - --- diff --git a/src/VirtualMonoRepo/Component.template.md b/src/VirtualMonoRepo/Component.template.md deleted file mode 100644 index 27b0f7893..000000000 --- a/src/VirtualMonoRepo/Component.template.md +++ /dev/null @@ -1,15 +0,0 @@ -# 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: -- [Strategy for managing external source dependencies](src/arcade/Documentation/UnifiedBuild/VMR-Strategy-For-External-Source.md) -- [Source Synchronization Process](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#source-synchronization-process) - -## Detailed list - - - -> Auto-generated list of components will go here - - - -The repository also contains a [JSON manifest](https://github.com/dotnet/dotnet/blob/main/src/source-manifest.json) listing all components in a machine-readable format. diff --git a/src/VirtualMonoRepo/InitializeVMR.proj b/src/VirtualMonoRepo/InitializeVMR.proj deleted file mode 100644 index e3d98fc3c..000000000 --- a/src/VirtualMonoRepo/InitializeVMR.proj +++ /dev/null @@ -1,68 +0,0 @@ - - - - $(RepoRoot)artifacts/ - $(ArtifactsDir)bin/VirtualMonoRepo.Tasks/$(Configuration)/net7.0/VirtualMonoRepo.Tasks.dll - - $([MSBuild]::EnsureTrailingSlash('$(VmrDir)')) - $(ArtifactsDir)tmp/ - main - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $([System.IO.Path]::GetFileName("$(RepoRoot.TrimEnd('/').TrimEnd('\\'))")) - @(RootRepoCommitSha) - - - - - - - - - - - diff --git a/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt b/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt deleted file mode 100644 index ede8d240b..000000000 --- a/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt +++ /dev/null @@ -1,13 +0,0 @@ -.NET Core uses third-party libraries or other resources that may be -distributed under licenses different than the .NET Core software. - -Attributions and licence notices for test cases originally authored by -third parties can be found in the respective test directories. - -In the event that we accidentally failed to list a required notice, please -bring it to our attention. Post an issue or email us: - - dotnet@microsoft.com - -The attached notices are provided for information only. - diff --git a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo.Tasks.csproj b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo.Tasks.csproj deleted file mode 100644 index 2d59069db..000000000 --- a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo.Tasks.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - net7.0 - preview - disable - false - false - false - false - true - - - - - - - - - - diff --git a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs b/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs deleted file mode 100644 index 5ab294231..000000000 --- a/src/VirtualMonoRepo/Tasks/VirtualMonoRepo_Initialize.cs +++ /dev/null @@ -1,89 +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 System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Build.Framework; -using Microsoft.DotNet.DarcLib.Helpers; -using Microsoft.DotNet.DarcLib.VirtualMonoRepo; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace Microsoft.DotNet.VirtualMonoRepo.Tasks; - -/// -/// This tasks equals calling the "darc vmr initialize" command. -/// This command pulls an individual repository into the VMR for the first time. -/// It can also recursively pull all of its dependencies based on Version.Details.xml. -/// -public class VirtualMonoRepo_Initialize : Build.Utilities.Task, ICancelableTask -{ - private readonly Lazy _serviceProvider; - private readonly CancellationTokenSource _cancellationToken = new(); - - [Required] - public string Repository { get; set; } - - [Required] - public string SourceMappingsPath { get; set; } - - [Required] - public string VmrPath { get; set; } - - [Required] - public string TmpPath { get; set; } - - public string Revision { get; set; } - - public string PackageVersion { get; set; } - - public string InstallerPath { get; set; } - - public string ComponentTemplatePath { get; set; } - - public string TpnTemplatePath { get; set; } - - public bool Recursive { get; set; } - - public VirtualMonoRepo_Initialize() - { - _serviceProvider = new(CreateServiceProvider); - } - - public override bool Execute() => ExecuteAsync().GetAwaiter().GetResult(); - - private async Task ExecuteAsync() - { - VmrPath = Path.GetFullPath(VmrPath); - TmpPath = Path.GetFullPath(TmpPath); - - var additionalRemotes = InstallerPath == null - ? Array.Empty() - : new[] { new AdditionalRemote("installer", InstallerPath) }; - - var vmrInitializer = _serviceProvider.Value.GetRequiredService(); - await vmrInitializer.InitializeRepository( - Repository, - Revision, - PackageVersion, - Recursive, - new NativePath(SourceMappingsPath), - additionalRemotes, - ComponentTemplatePath, - TpnTemplatePath, - generateCodeowners: false, - discardPatches: true, - _cancellationToken.Token); - return true; - } - - public void Cancel() => _cancellationToken.Cancel(); - - private IServiceProvider CreateServiceProvider() => new ServiceCollection() - .AddLogging(b => b.AddConsole().AddFilter(l => l >= LogLevel.Information)) - .AddVmrManagers("git", VmrPath, TmpPath, null, null) - .BuildServiceProvider(); -} diff --git a/src/VirtualMonoRepo/source-mappings.json b/src/VirtualMonoRepo/source-mappings.json deleted file mode 100644 index 3c6ae8e76..000000000 --- a/src/VirtualMonoRepo/source-mappings.json +++ /dev/null @@ -1,213 +0,0 @@ -// This file configures where the VMR synchronizes the sources from. -// Each development repository has a mapping record which says where the remote repo is, -// what files are in/excluded from the sync, etc. -// -// This file does not contain information about what version of sources is synchronized. -// Please check the source-manifest.json file for that purpose. -// -// More details on this file's mechanics: -// https://github.com/dotnet/arcade/blob/main/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#repository-source-mappings -{ - // Location within the VMR where the source-build patches are stored - // These patches are applied on top of the code synchronized into the VMR - "patchesPath": "src/installer/src/SourceBuild/patches", - - "sourceMappingsPath": "src/installer/src/VirtualMonoRepo/source-mappings.json", - - // Some files are copied outside of the src/ directory into other locations - // When files in the source paths are changed, they are automatically synchronized too - "additionalMappings": [ - { - "source": "src/installer/src/SourceBuild/content", - "destination": "" - }, - { - "source": "src/installer/eng/common", - "destination": "eng/common" - }, - { - "source": "src/installer/src/VirtualMonoRepo/source-mappings.json", - "destination": "src" - } - ], - - // These defaults are added to all mappings unless `ignoreDefaults: true` is specified - // When no "include" filter is specified, "**/*" is used - // The default filters do not apply to submodules - // Only filters which start with submodule's path are applied when syncing submodules - "defaults": { - "defaultRef": "main" - }, - - // Each of these mappings has a corresponding folder in the src/ directory - "mappings": [ - { - "name": "arcade", - "defaultRemote": "https://github.com/dotnet/arcade" - }, - { - "name": "aspire", - "defaultRemote": "https://github.com/dotnet/aspire", - "exclude": [ - "src/Aspire.Dashboard/**/*", - "samples/**/*" - ] - }, - { - "name": "aspnetcore", - "defaultRemote": "https://github.com/dotnet/aspnetcore", - "exclude": [ - // Non-OSS license - https://github.com/dotnet/source-build/issues/3537 - "src/Installers/Windows/AspNetCoreModule-Setup/**/*" - ] - }, - { - "name": "cecil", - "defaultRemote": "https://github.com/dotnet/cecil" - }, - { - "name": "command-line-api", - "defaultRemote": "https://github.com/dotnet/command-line-api" - }, - { - "name": "deployment-tools", - "defaultRemote": "https://github.com/dotnet/deployment-tools" - }, - { - "name": "diagnostics", - "defaultRemote": "https://github.com/dotnet/diagnostics" - }, - { - "name": "efcore", - "defaultRemote": "https://github.com/dotnet/efcore" - }, - { - "name": "emsdk", - "defaultRemote": "https://github.com/dotnet/emsdk" - }, - { - "name": "fsharp", - "defaultRemote": "https://github.com/dotnet/fsharp" - }, - { - "name": "installer", - "defaultRemote": "https://github.com/dotnet/installer", - "exclude": [ - // Exclude the VMR content as this is copied to the root of VMR via the synchronization process. - "src/SourceBuild/content/**/*" - ] - }, - { - "name": "msbuild", - "defaultRemote": "https://github.com/dotnet/msbuild" - }, - { - "name": "nuget-client", - "defaultRemote": "https://github.com/NuGet/NuGet.Client", - "defaultRef": "dev" - }, - { - "name": "razor", - "defaultRemote": "https://github.com/dotnet/razor" - }, - { - "name": "roslyn", - "defaultRemote": "https://github.com/dotnet/roslyn" - }, - { - "name": "roslyn-analyzers", - "defaultRemote": "https://github.com/dotnet/roslyn-analyzers" - }, - { - "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" - }, - { - "name": "source-build-externals", - "defaultRemote": "https://github.com/dotnet/source-build-externals", - "exclude": [ - "src/application-insights/**/*.exe", - "src/application-insights/**/*.dll", - "src/application-insights/**/*.zip", - "src/application-insights/**/NuGet.config", - "src/humanizer/samples/**/*.js", - "src/newtonsoft-json/**/NuGet.Config", - "src/spectre-console/docs/**", - "src/spectre-console/NuGet.Config", - "src/spectre-console/examples/Console/Canvas/Mandelbrot.cs", - "src/xunit/NuGet.Config" - ] - }, - { - "name": "source-build-reference-packages", - "defaultRemote": "https://github.com/dotnet/source-build-reference-packages" - }, - { - "name": "sourcelink", - "defaultRemote": "https://github.com/dotnet/sourcelink" - }, - { - "name": "symreader", - "defaultRemote": "https://github.com/dotnet/symreader" - }, - { - "name": "templating", - "defaultRemote": "https://github.com/dotnet/templating" - }, - { - "name": "test-templates", - "defaultRemote": "https://github.com/dotnet/test-templates" - }, - { - "name": "vstest", - "defaultRemote": "https://github.com/microsoft/vstest", - "exclude": [ - // Non-OSS license used in VS specific build configurations. - // Non-OSS license - https://github.com/dotnet/source-build/issues/4255 - "src/package/licenses/LICENSE_VS.txt", - "test/Microsoft.TestPlatform.CoreUtilities.UnitTests/TestAssets/dotnetWinX86.exe" - ] - }, - { - "name": "xdt", - "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", - "ignoreDefaults": true, - "exclude": [ "**/*" ] - }, - { - "name": "winforms", - "defaultRemote": "https://github.com/dotnet/winforms", - "exclude": [ - // Non-OSS license - https://github.com/dotnet/source-build/issues/3772 - "src/System.Windows.Forms/tests/IntegrationTests/DesignSurface/**/*.cs", - "src/System.Windows.Forms/tests/IntegrationTests/DesignSurface/**/*.ico", - "src/System.Windows.Forms/tests/IntegrationTests/DesignSurface/**/*.resx", - "src/System.Windows.Forms/tests/IntegrationTests/DesignSurface/LICENSE.txt" - ] - }, - { - "name": "wpf", - "defaultRemote": "https://github.com/dotnet/wpf" - }, - { - "name": "windowsdesktop", - "defaultRemote": "https://github.com/dotnet/windowsdesktop" - } - ] -} diff --git a/src/core-sdk-tasks/core-sdk-tasks.csproj b/src/core-sdk-tasks/core-sdk-tasks.csproj index 812e0d6bd..5ad9818bc 100644 --- a/src/core-sdk-tasks/core-sdk-tasks.csproj +++ b/src/core-sdk-tasks/core-sdk-tasks.csproj @@ -4,7 +4,6 @@ $(CoreSdkTargetFramework) true Microsoft.DotNet.Cli.Build - $(DefineConstants);SOURCE_BUILD true true @@ -16,7 +15,7 @@ - + diff --git a/src/redist/projects/SdkResolver.csproj b/src/redist/projects/SdkResolver.csproj index 20cc676ca..b445480d8 100644 --- a/src/redist/projects/SdkResolver.csproj +++ b/src/redist/projects/SdkResolver.csproj @@ -6,7 +6,6 @@ false false false - true diff --git a/src/redist/projects/VSTemplateLocator.csproj b/src/redist/projects/VSTemplateLocator.csproj index aac68bf20..79127dfa1 100644 --- a/src/redist/projects/VSTemplateLocator.csproj +++ b/src/redist/projects/VSTemplateLocator.csproj @@ -6,7 +6,6 @@ false false false - true diff --git a/src/redist/redist.csproj b/src/redist/redist.csproj index 79293c9de..816123d51 100644 --- a/src/redist/redist.csproj +++ b/src/redist/redist.csproj @@ -7,19 +7,12 @@ false true none - true - true - - - - + + diff --git a/src/redist/targets/BundledManifests.targets b/src/redist/targets/BundledManifests.targets index 47e21e140..039f9a1fc 100644 --- a/src/redist/targets/BundledManifests.targets +++ b/src/redist/targets/BundledManifests.targets @@ -5,12 +5,12 @@ - - - - - - + + + + + + diff --git a/src/redist/targets/BundledTemplates.targets b/src/redist/targets/BundledTemplates.targets index bbe1dd137..067b077f4 100644 --- a/src/redist/targets/BundledTemplates.targets +++ b/src/redist/targets/BundledTemplates.targets @@ -23,8 +23,8 @@ - - + + @@ -35,8 +35,8 @@ - - + + @@ -45,8 +45,8 @@ - - + + @@ -58,8 +58,8 @@ - - + + @@ -77,7 +77,7 @@ - + diff --git a/src/redist/targets/Crossgen.targets b/src/redist/targets/Crossgen.targets index b062650de..7227f238e 100644 --- a/src/redist/targets/Crossgen.targets +++ b/src/redist/targets/Crossgen.targets @@ -143,7 +143,7 @@ - + diff --git a/src/redist/targets/GenerateBundledVersions.targets b/src/redist/targets/GenerateBundledVersions.targets index 303e0b2ff..ac8e4ac26 100644 --- a/src/redist/targets/GenerateBundledVersions.targets +++ b/src/redist/targets/GenerateBundledVersions.targets @@ -247,16 +247,11 @@ - <_KnownRuntimeIdentiferPlatforms Include="any;aot;freebsd;illumos;solaris;unix" /> - <_ExcludedKnownRuntimeIdentiferPlatforms Include="rhel.6;tizen.4.0.0;tizen.5.0.0" Condition="'$(DotNetBuildSourceOnly)' != 'true'" /> - <_ExcludedKnownRuntimeIdentiferPlatforms Include="rhel.6" Condition="'$(DotNetBuildSourceOnly)' == 'true' and !$(ProductMonikerRid.StartsWith('rhel.6-'))" /> - <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.4.0.0" Condition="'$(DotNetBuildSourceOnly)' == 'true' and !$(ProductMonikerRid.StartsWith('tizen.4.0.0-'))" /> - <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.5.0.0" Condition="'$(DotNetBuildSourceOnly)' == 'true' and !$(ProductMonikerRid.StartsWith('tizen.5.0.0-'))" /> + <_ExcludedKnownRuntimeIdentiferPlatforms Include="rhel.6;tizen.4.0.0;tizen.5.0.0" /> + <_ExcludedKnownRuntimeIdentiferPlatforms Include="rhel.6" /> + <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.4.0.0" /> + <_ExcludedKnownRuntimeIdentiferPlatforms Include="tizen.5.0.0" /> - $(VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion) - $(MicrosoftAspNetCoreAppRuntimePackageVersion) $(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion) - $(MicrosoftNETCoreAppRuntimePackageVersion) $(VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion) - $(MicrosoftWindowsDesktopAppRuntimePackageVersion) 3.0.0 @@ -35,8 +31,8 @@ $([System.Text.RegularExpressions.Regex]::Replace('$(PublicBaseURL)', '%28file:\/{1,}%29%28.+%29', 'file:///%242')) $(HostRid) - $(OSName)-$(Architecture) - $(HostRid.Replace('mariner.2.0', 'cm.2')) + $(OSName)-$(Architecture) + $(HostRid.Replace('mariner.2.0', 'cm.2')) -internal @@ -83,7 +79,6 @@ windowsdesktop-runtime-$(MicrosoftWindowsDesktopAppRuntimePackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) $(HostOSName)-$(BuildArchitecture) - $(SharedFrameworkRid) $(SharedFrameworkRid) linux-x64 @@ -111,8 +106,6 @@ $(OfficialBaseURL)Runtime/$(NETStandardTargetingPackBlobVersion) $(PublicBaseURL)aspnetcore/Runtime/$(AspNetCoreBlobVersion) - - $(FallbackPublicBaseURL)aspnetcore/Runtime/$(AspNetCoreBlobVersion) $(PublicBaseURL)WindowsDesktop/$(WindowsDesktopBlobVersion) @@ -251,20 +244,12 @@ $(NetRuntimeRootUrl) - - $(FallbackPublicBaseURL)Runtime/$(NetRuntimeBlobVersion) $(DownloadedAlternateNetCoreAppHostPackInstallerFileName) $(NetRuntimeRootUrl) - - $(FallbackPublicBaseURL)Runtime/$(NetRuntimeBlobVersion) $(DownloadedArm64NetCoreAppHostPackInstallerFileName) @@ -386,12 +371,7 @@ - - + %(ComponentToDownload.ShouldDownload) @@ -509,13 +489,6 @@ Overwrite="true" /> - - - - - Microsoft.NETCore.App.Host.$(SharedFrameworkRid) @@ -588,7 +561,6 @@ LayoutRuntimeGraph; LayoutTemplates; LayoutManifests; - LayoutWorkloadUserLocalMarker; LayoutBundledTools; RetargetTools; CrossgenLayout; diff --git a/src/redist/targets/GenerateMSIs.targets b/src/redist/targets/GenerateMSIs.targets index 422ed140a..e1dcc4dbc 100644 --- a/src/redist/targets/GenerateMSIs.targets +++ b/src/redist/targets/GenerateMSIs.targets @@ -458,13 +458,9 @@ '$(Architecture)'" /> - - + Condition="'$(OSName)' == 'osx'"> @@ -197,7 +197,7 @@ Inputs="@(GenerateSdkProductArchiveInputs)" Outputs="$(CombinedFrameworkSdkHostPKGInstallerFile)" DependsOnTargets="GenerateSdkPkg" - Condition=" '$(OSName)' == 'osx' and '$(DotNetBuildSourceOnly)' != 'true' "> + Condition="'$(OSName)' == 'osx'"> - - true -