Merge branch 'master' into merge/release/3.1-to-master
This commit is contained in:
commit
0c6187d3bc
|
|
@ -12,7 +12,7 @@ jobs:
|
|||
jobName: Windows_Build
|
||||
jobDisplayName: "Build only : Windows"
|
||||
agentOs: Windows
|
||||
buildArgs: -ci -all -pack
|
||||
buildArgs: -all -pack
|
||||
artifacts:
|
||||
- path: artifacts/
|
||||
includeForks: true
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ trigger:
|
|||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- blazor-wasm
|
||||
- master
|
||||
- release/*
|
||||
- internal/release/3.*
|
||||
|
||||
# Run PR validation on all branches
|
||||
pr:
|
||||
|
|
@ -32,8 +32,10 @@ variables:
|
|||
- name: _DotNetValidationArtifactsCategory
|
||||
value: .NETCORE
|
||||
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'true'
|
||||
- name: _BuildArgs
|
||||
value: ''
|
||||
value: '/p:SkipTestBuild=true'
|
||||
- name: _PublishArgs
|
||||
value: ''
|
||||
- name: _SignType
|
||||
|
|
@ -45,12 +47,16 @@ variables:
|
|||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- group: DotNet-MSRC-Storage
|
||||
- name: _InternalRuntimeDownloadArgs
|
||||
value: -DotNetRuntimeSourceFeed https://dotnetclimsrc.blob.core.windows.net/dotnet -DotNetRuntimeSourceFeedKey $(dotnetclimsrc-read-sas-token-base64) /p:DotNetAssetRootAccessTokenSuffix='$(dotnetclimsrc-read-sas-token-base64)'
|
||||
# The code signing doesn't use the aspnet build scripts, so the msbuild parameers have
|
||||
value: -DotNetRuntimeSourceFeed https://dotnetclimsrc.blob.core.windows.net/dotnet -DotNetRuntimeSourceFeedKey
|
||||
$(dotnetclimsrc-read-sas-token-base64) /p:DotNetAssetRootAccessTokenSuffix='$(dotnetclimsrc-read-sas-token-base64)'
|
||||
# The code signing doesn't use the aspnet build scripts, so the msbuild parameters have
|
||||
# to be passed directly. This is awkward, since we pass the same info above, but we have
|
||||
# to have it in two different forms
|
||||
- name: _InternalRuntimeDownloadCodeSignArgs
|
||||
value: /p:DotNetRuntimeSourceFeed=https://dotnetclimsrc.blob.core.windows.net/dotnet /p:DotNetRuntimeSourceFeedKey=$(dotnetclimsrc-read-sas-token-base64)
|
||||
- group: DotNet-HelixApi-Access
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'false'
|
||||
- ${{ if notin(variables['Build.Reason'], 'PullRequest') }}:
|
||||
# DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
|
||||
# Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
|
||||
|
|
@ -60,6 +66,7 @@ variables:
|
|||
- name: _BuildArgs
|
||||
value: /p:TeamName=$(_TeamName)
|
||||
/p:OfficialBuildId=$(Build.BuildNumber)
|
||||
/p:SkipTestBuild=true
|
||||
- name: _SignType
|
||||
value: real
|
||||
|
||||
|
|
@ -75,7 +82,7 @@ variables:
|
|||
|
||||
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- name: _BuildArgs
|
||||
value: ''
|
||||
value: '/p:SkipTestBuild=true'
|
||||
- name: _SignType
|
||||
value: test
|
||||
- name: _PublishArgs
|
||||
|
|
@ -93,14 +100,6 @@ stages:
|
|||
jobDisplayName: Code check
|
||||
agentOs: Windows
|
||||
steps:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- powershell: ./eng/scripts/CodeCheck.ps1 -ci $(_InternalRuntimeDownloadArgs)
|
||||
displayName: Run eng/scripts/CodeCheck.ps1
|
||||
artifacts:
|
||||
|
|
@ -128,60 +127,54 @@ stages:
|
|||
# This is intentional to workaround https://github.com/dotnet/arcade/issues/1957 which always re-submits for code-signing, even
|
||||
# if they have already been signed. This results in slower builds due to re-submitting the same .nupkg many times for signing.
|
||||
# The sign settings have been configured to
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-nobl
|
||||
-arch x64
|
||||
-pack
|
||||
-all
|
||||
-buildNative
|
||||
/bl:artifacts/log/build.x64.binlog
|
||||
$(_BuildArgs)
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build x64
|
||||
|
||||
# Build the x86 shared framework
|
||||
# TODO: make it possible to build for one Windows architecture at a time
|
||||
# This is going to actually build x86 native assets. See https://github.com/aspnet/AspNetCore/issues/7196
|
||||
# This is going to actually build x86 native assets.
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-nobl
|
||||
-noBuildRepoTasks
|
||||
-arch x86
|
||||
-pack
|
||||
-all
|
||||
-buildNative
|
||||
-noBuildJava
|
||||
-noBuildNative
|
||||
/p:OnlyPackPlatformSpecificPackages=true
|
||||
/bl:artifacts/log/build.x86.binlog
|
||||
$(_BuildArgs)
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build x86
|
||||
|
||||
# This is in a separate build step with -forceCoreMsbuild to workaround MAX_PATH limitations - https://github.com/Microsoft/msbuild/issues/53
|
||||
- script: .\src\SiteExtensions\build.cmd
|
||||
-ci
|
||||
-nobl
|
||||
-noBuildRepoTasks
|
||||
-pack
|
||||
-noBuildDeps
|
||||
-noBuildNative
|
||||
$(_BuildArgs)
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
condition: ne(variables['Build.Reason'], 'PullRequest')
|
||||
displayName: Build SiteExtension
|
||||
|
||||
# This runs code-signing on all packages, zips, and jar files as defined in build/CodeSign.targets. If https://github.com/dotnet/arcade/issues/1957 is resolved,
|
||||
# consider running code-signing inline with the other previous steps.
|
||||
# Sign check is disabled because it is run in a separate step below, after installers are built.
|
||||
# This runs code-signing on all packages, zips, and jar files as defined in build/CodeSign.targets. If
|
||||
# https://github.com/dotnet/arcade/issues/1957 is resolved, consider running code-signing inline with the other
|
||||
# previous steps. Sign check is disabled because it is run in a separate step below, after installers are built.
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-nobl
|
||||
-noBuildRepoTasks
|
||||
-noBuild
|
||||
-noRestore
|
||||
-sign
|
||||
/bl:artifacts/log/build.codesign.binlog
|
||||
/p:DotNetSignType=$(_SignType)
|
||||
$(_BuildArgs)
|
||||
displayName: Code sign packages
|
||||
|
|
@ -189,9 +182,11 @@ stages:
|
|||
# Windows installers bundle both x86 and x64 assets
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-nobl
|
||||
-noBuildRepoTasks
|
||||
-sign
|
||||
-buildInstallers
|
||||
/bl:artifacts/log/installers.msbuild.binlog
|
||||
-noBuildNative
|
||||
/p:DotNetSignType=$(_SignType)
|
||||
/p:AssetManifestFileName=aspnetcore-win-x64-x86.xml
|
||||
$(_BuildArgs)
|
||||
|
|
@ -231,7 +226,6 @@ stages:
|
|||
-pack
|
||||
-noBuildNodeJS
|
||||
-noBuildJava
|
||||
/bl:artifacts/log/build.win-arm.binlog
|
||||
/p:DotNetSignType=$(_SignType)
|
||||
/p:OnlyPackPlatformSpecificPackages=true
|
||||
/p:AssetManifestFileName=aspnetcore-win-arm.xml
|
||||
|
|
@ -252,7 +246,7 @@ stages:
|
|||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
codeSign: true
|
||||
jobName: Windows_64_build
|
||||
jobName: Windows_arm64_build
|
||||
jobDisplayName: "Build: Windows ARM64"
|
||||
agentOs: Windows
|
||||
buildArgs:
|
||||
|
|
@ -261,7 +255,6 @@ stages:
|
|||
-pack
|
||||
-noBuildNodeJS
|
||||
-noBuildJava
|
||||
/bl:artifacts/log/build.win-arm64.binlog
|
||||
/p:DotNetSignType=$(_SignType)
|
||||
/p:OnlyPackPlatformSpecificPackages=true
|
||||
/p:AssetManifestFileName=aspnetcore-win-arm64.xml
|
||||
|
|
@ -292,7 +285,6 @@ stages:
|
|||
--no-build-nodejs
|
||||
--no-build-java
|
||||
-p:OnlyPackPlatformSpecificPackages=true
|
||||
-bl:artifacts/log/build.macos.binlog
|
||||
-p:AssetManifestFileName=aspnetcore-MacOS_x64.xml
|
||||
$(_BuildArgs)
|
||||
$(_PublishArgs)
|
||||
|
|
@ -316,24 +308,17 @@ stages:
|
|||
jobName: Linux_x64_build
|
||||
jobDisplayName: "Build: Linux x64"
|
||||
agentOs: Linux
|
||||
useHostedUbuntu: false
|
||||
steps:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: Bash@3
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
||||
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- script: ./build.sh
|
||||
--ci
|
||||
--nobl
|
||||
--arch x64
|
||||
--pack
|
||||
--all
|
||||
--no-build-nodejs
|
||||
--no-build-java
|
||||
-p:OnlyPackPlatformSpecificPackages=true
|
||||
-bl:artifacts/log/build.linux-x64.binlog
|
||||
$(_BuildArgs)
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Run build.sh
|
||||
|
|
@ -341,6 +326,7 @@ stages:
|
|||
git clean -xfd src/**/obj/
|
||||
./dockerbuild.sh bionic \
|
||||
--ci \
|
||||
--nobl \
|
||||
--arch x64 \
|
||||
--build-installers \
|
||||
--no-build-deps \
|
||||
|
|
@ -348,7 +334,6 @@ stages:
|
|||
-p:OnlyPackPlatformSpecificPackages=true \
|
||||
-p:BuildRuntimeArchive=false \
|
||||
-p:LinuxInstallerType=deb \
|
||||
-bl:artifacts/log/build.deb.binlog \
|
||||
$(_BuildArgs) \
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build Debian installers
|
||||
|
|
@ -356,6 +341,7 @@ stages:
|
|||
git clean -xfd src/**/obj/
|
||||
./dockerbuild.sh rhel \
|
||||
--ci \
|
||||
--nobl \
|
||||
--arch x64 \
|
||||
--build-installers \
|
||||
--no-build-deps \
|
||||
|
|
@ -363,7 +349,6 @@ stages:
|
|||
-p:OnlyPackPlatformSpecificPackages=true \
|
||||
-p:BuildRuntimeArchive=false \
|
||||
-p:LinuxInstallerType=rpm \
|
||||
-bl:artifacts/log/build.rpm.binlog \
|
||||
-p:AssetManifestFileName=aspnetcore-Linux_x64.xml \
|
||||
$(_BuildArgs) \
|
||||
$(_PublishArgs) \
|
||||
|
|
@ -395,7 +380,6 @@ stages:
|
|||
--no-build-nodejs
|
||||
--no-build-java
|
||||
-p:OnlyPackPlatformSpecificPackages=true
|
||||
-bl:artifacts/log/build.linux-arm.binlog
|
||||
-p:AssetManifestFileName=aspnetcore-Linux_arm.xml
|
||||
$(_BuildArgs)
|
||||
$(_PublishArgs)
|
||||
|
|
@ -426,7 +410,6 @@ stages:
|
|||
--no-build-nodejs
|
||||
--no-build-java
|
||||
-p:OnlyPackPlatformSpecificPackages=true
|
||||
-bl:artifacts/log/build.arm64.binlog
|
||||
-p:AssetManifestFileName=aspnetcore-Linux_arm64.xml
|
||||
$(_BuildArgs)
|
||||
$(_PublishArgs)
|
||||
|
|
@ -450,9 +433,9 @@ stages:
|
|||
jobName: Linux_musl_x64_build
|
||||
jobDisplayName: "Build: Linux Musl x64"
|
||||
agentOs: Linux
|
||||
buildScript: ./dockerbuild.sh alpine
|
||||
container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
|
||||
buildScript: ./build.sh
|
||||
buildArgs:
|
||||
--ci
|
||||
--arch x64
|
||||
--os-name linux-musl
|
||||
--pack
|
||||
|
|
@ -460,13 +443,13 @@ stages:
|
|||
--no-build-nodejs
|
||||
--no-build-java
|
||||
-p:OnlyPackPlatformSpecificPackages=true
|
||||
-bl:artifacts/log/build.musl.binlog
|
||||
-p:AssetManifestFileName=aspnetcore-Linux_musl_x64.xml
|
||||
$(_BuildArgs)
|
||||
$(_PublishArgs)
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
installNodeJs: false
|
||||
installJdk: false
|
||||
skipComponentGovernanceDetection: true
|
||||
artifacts:
|
||||
- name: Linux_musl_x64_Logs
|
||||
path: artifacts/log/
|
||||
|
|
@ -484,9 +467,10 @@ stages:
|
|||
jobName: Linux_musl_arm64_build
|
||||
jobDisplayName: "Build: Linux Musl ARM64"
|
||||
agentOs: Linux
|
||||
buildScript: ./dockerbuild.sh ubuntu-alpine37
|
||||
useHostedUbuntu: false
|
||||
container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-20200413125008-406629a
|
||||
buildScript: ./build.sh
|
||||
buildArgs:
|
||||
--ci
|
||||
--arch arm64
|
||||
--os-name linux-musl
|
||||
--pack
|
||||
|
|
@ -494,7 +478,6 @@ stages:
|
|||
--no-build-nodejs
|
||||
--no-build-java
|
||||
-p:OnlyPackPlatformSpecificPackages=true
|
||||
-bl:artifacts/log/build.musl.binlog
|
||||
-p:AssetManifestFileName=aspnetcore-Linux_musl_arm64.xml
|
||||
$(_BuildArgs)
|
||||
$(_PublishArgs)
|
||||
|
|
@ -512,149 +495,133 @@ stages:
|
|||
parameters:
|
||||
inputName: Linux_musl_arm64
|
||||
|
||||
# Test jobs
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: Windows_Test
|
||||
jobDisplayName: "Test: Windows Server 2016 x64"
|
||||
agentOs: Windows
|
||||
isTestingJob: true
|
||||
buildArgs: -all -pack -test -BuildNative "/p:SkipIISNewHandlerTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISNewShimTests=true /p:RunTemplateTests=false" $(_InternalRuntimeDownloadArgs)
|
||||
beforeBuild:
|
||||
- powershell: "& ./src/Servers/IIS/tools/UpdateIISExpressCertificate.ps1; & ./src/Servers/IIS/tools/update_schema.ps1"
|
||||
displayName: Setup IISExpress test certificates and schema
|
||||
afterBuild:
|
||||
- powershell: "& ./build.ps1 -CI -NoBuild -Test /p:RunFlakyTests=true"
|
||||
displayName: Run Flaky Tests
|
||||
continueOnError: true
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Flaky Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'xUnit'
|
||||
testResultsFiles: '*.xml'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
|
||||
artifacts:
|
||||
- name: Windows_Test_Dumps
|
||||
path: artifacts/dumps/
|
||||
publishOnError: true
|
||||
includeForks: false
|
||||
- name: Windows_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Windows_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
# Test jobs
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: Windows_Test
|
||||
jobDisplayName: "Test: Windows Server 2016 x64"
|
||||
agentOs: Windows
|
||||
isTestingJob: true
|
||||
buildArgs: -all -pack -test /p:SkipHelixReadyTests=true /p:SkipIISNewHandlerTests=true /p:SkipIISTests=true
|
||||
/p:SkipIISExpressTests=true /p:SkipIISNewShimTests=true /p:RunTemplateTests=false
|
||||
$(_InternalRuntimeDownloadArgs)
|
||||
beforeBuild:
|
||||
- powershell: "& ./src/Servers/IIS/tools/UpdateIISExpressCertificate.ps1; & ./src/Servers/IIS/tools/update_schema.ps1"
|
||||
displayName: Setup IISExpress test certificates and schema
|
||||
artifacts:
|
||||
- name: Windows_Test_Dumps
|
||||
path: artifacts/dumps/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Windows_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Windows_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: Windows_Templates_Test
|
||||
jobDisplayName: "Test: Templates - Windows Server 2016 x64"
|
||||
agentOs: Windows
|
||||
isTestingJob: true
|
||||
steps:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: Windows_Templates_Test
|
||||
jobDisplayName: "Test: Templates - Windows Server 2016 x64"
|
||||
agentOs: Windows
|
||||
isTestingJob: true
|
||||
steps:
|
||||
- script: ./build.cmd -ci -nobl -all -pack $(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build Repo
|
||||
- script: ./src/ProjectTemplates/build.cmd -ci -nobl -noBuildRepoTasks -pack -NoRestore -noBuildNative -NoBuilddeps "/p:RunTemplateTests=true"
|
||||
displayName: Pack Templates
|
||||
- script: ./src/ProjectTemplates/build.cmd -ci -nobl -noBuildRepoTasks -test -NoRestore -NoBuild -NoBuilddeps "/p:RunTemplateTests=true"
|
||||
displayName: Test Templates
|
||||
artifacts:
|
||||
- name: Windows_Test_Templates_Dumps
|
||||
path: artifacts/dumps/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Windows_Test_Templates_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Windows_Test_Templates_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: MacOS_Test
|
||||
jobDisplayName: "Test: macOS 10.14"
|
||||
agentOs: macOS
|
||||
isTestingJob: true
|
||||
buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true" $(_InternalRuntimeDownloadArgs)
|
||||
beforeBuild:
|
||||
- bash: "./eng/scripts/install-nginx-mac.sh"
|
||||
displayName: Installing Nginx
|
||||
artifacts:
|
||||
- name: MacOS_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: MacOS_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: Linux_Test
|
||||
jobDisplayName: "Test: Ubuntu 16.04 x64"
|
||||
agentOs: Linux
|
||||
isTestingJob: true
|
||||
useHostedUbuntu: false
|
||||
buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true" $(_InternalRuntimeDownloadArgs)
|
||||
beforeBuild:
|
||||
- bash: "./eng/scripts/install-nginx-linux.sh"
|
||||
displayName: Installing Nginx
|
||||
- bash: "echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
|
||||
displayName: Increase inotify limit
|
||||
artifacts:
|
||||
- name: Linux_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Linux_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
# Helix x64
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_x64
|
||||
jobDisplayName: 'Tests: Helix x64'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 180
|
||||
steps:
|
||||
# Build the shared framework
|
||||
- script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Build shared fx
|
||||
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj
|
||||
displayName: Restore interop projects
|
||||
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -noRestore -test -all -noBuildNative -projects eng\helix\helix.proj
|
||||
/p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true
|
||||
/p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.cmd helix target
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- script: ./build.cmd -ci -all -pack $(_InternalRuntimeDownloadArgs)
|
||||
displayName: Build Repo
|
||||
- script: ./src/ProjectTemplates/build.cmd -ci -pack -NoRestore -NoBuilddeps "/p:RunTemplateTests=true /bl:artifacts/log/template.pack.binlog"
|
||||
displayName: Pack Templates
|
||||
- script: ./src/ProjectTemplates/build.cmd -ci -test -NoRestore -NoBuild -NoBuilddeps "/p:RunTemplateTests=true /bl:artifacts/log/template.test.binlog"
|
||||
displayName: Test Templates
|
||||
artifacts:
|
||||
- name: Windows_Test_Templates_Dumps
|
||||
path: artifacts/dumps/
|
||||
publishOnError: true
|
||||
includeForks: false
|
||||
- name: Windows_Test_Templates_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Windows_Test_Templates_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: MacOS_Test
|
||||
jobDisplayName: "Test: macOS 10.14"
|
||||
agentOs: macOS
|
||||
isTestingJob: true
|
||||
buildArgs: --all --test "/p:RunTemplateTests=false" $(_InternalRuntimeDownloadArgs)
|
||||
beforeBuild:
|
||||
- bash: "./eng/scripts/install-nginx-mac.sh"
|
||||
displayName: Installing Nginx
|
||||
afterBuild:
|
||||
- bash: ./build.sh --ci --pack --no-build --no-restore --no-build-deps "/bl:artifacts/log/packages.pack.binlog"
|
||||
displayName: Pack Packages (for Template tests)
|
||||
- bash: ./src/ProjectTemplates/build.sh --ci --pack --no-restore --no-build-deps "/bl:artifacts/log/template.pack.binlog"
|
||||
displayName: Pack Templates (for Template tests)
|
||||
- bash: ./build.sh --no-build --ci --test -p:RunFlakyTests=true
|
||||
displayName: Run Flaky Tests
|
||||
continueOnError: true
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Flaky Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'xUnit'
|
||||
testResultsFiles: '*.xml'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
|
||||
artifacts:
|
||||
- name: MacOS_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: MacOS_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
condition: ne(variables['SkipTests'], 'true')
|
||||
jobName: Linux_Test
|
||||
jobDisplayName: "Test: Ubuntu 16.04 x64"
|
||||
agentOs: Linux
|
||||
isTestingJob: true
|
||||
buildArgs: --all --test "/p:RunTemplateTests=false" $(_InternalRuntimeDownloadArgs)
|
||||
beforeBuild:
|
||||
- bash: "./eng/scripts/install-nginx-linux.sh"
|
||||
displayName: Installing Nginx
|
||||
- bash: "echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
|
||||
displayName: Increase inotify limit
|
||||
afterBuild:
|
||||
- bash: ./build.sh --ci --pack --no-build --no-restore --no-build-deps "/bl:artifacts/log/packages.pack.binlog"
|
||||
displayName: Pack Packages (for Template tests)
|
||||
- bash: ./src/ProjectTemplates/build.sh --ci --pack --no-restore --no-build-deps "/bl:artifacts/log/template.pack.binlog"
|
||||
displayName: Pack Templates (for Template tests)
|
||||
- bash: ./build.sh --no-build --ci --test -p:RunFlakyTests=true
|
||||
displayName: Run Flaky Tests
|
||||
continueOnError: true
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Flaky Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'xUnit'
|
||||
testResultsFiles: '*.xml'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
|
||||
artifacts:
|
||||
- name: Linux_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Linux_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
artifacts:
|
||||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
# Source build
|
||||
- job: Source_Build
|
||||
|
|
@ -670,22 +637,11 @@ stages:
|
|||
steps:
|
||||
- script: |
|
||||
source eng/common/native/common-library.sh
|
||||
mkdir -p $HOME/bin
|
||||
GetFile https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 $HOME/bin/jq
|
||||
chmod +x $HOME/bin/jq
|
||||
echo "##vso[task.prependpath]$HOME/bin"
|
||||
mkdir -p $(System.DefaultWorkingDirectory)/.tools
|
||||
GetFile https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 $(System.DefaultWorkingDirectory)/.tools/jq
|
||||
chmod +x $(System.DefaultWorkingDirectory)/.tools/jq
|
||||
echo "##vso[task.prependpath]$(System.DefaultWorkingDirectory)/.tools"
|
||||
displayName: Install jq
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Use .NET Core sdk'
|
||||
inputs:
|
||||
packageType: sdk
|
||||
# The SDK version selected here is intentionally supposed to use the latest release
|
||||
# For the purpose of building Linux distros, we can't depend on features of the SDK
|
||||
# which may not exist in pre-built versions of the SDK
|
||||
# Pinning to preview 8 since preview 9 has breaking changes
|
||||
version: 3.1.100
|
||||
installationPath: $(DotNetCoreSdkDir)
|
||||
includePreviewVersions: true
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: Bash@3
|
||||
displayName: Setup Private Feeds Credentials
|
||||
|
|
@ -694,7 +650,7 @@ stages:
|
|||
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- script: ./eng/scripts/ci-source-build.sh --ci --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false
|
||||
- script: ./eng/scripts/ci-source-build.sh --ci --nobl --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false
|
||||
displayName: Run ci-source-build.sh
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Upload logs
|
||||
|
|
@ -723,6 +679,7 @@ stages:
|
|||
dependsOn:
|
||||
- Windows_build
|
||||
- Windows_arm_build
|
||||
- Windows_arm64_build
|
||||
- CodeSign_Xplat_MacOS_x64
|
||||
- CodeSign_Xplat_Linux_x64
|
||||
- CodeSign_Xplat_Linux_arm
|
||||
|
|
@ -730,11 +687,7 @@ stages:
|
|||
- CodeSign_Xplat_Linux_musl_x64
|
||||
- CodeSign_Xplat_Linux_musl_arm64
|
||||
# In addition to the dependencies above, ensure the build was successful overall.
|
||||
- Linux_Test
|
||||
- MacOS_Test
|
||||
- Source_Build
|
||||
- Windows_Templates_Test
|
||||
- Windows_Test
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
publishUsingPipelines: ${{ variables._PublishUsingPipelines }}
|
||||
|
|
@ -743,6 +696,7 @@ stages:
|
|||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: /eng/common/templates/post-build/post-build.yml
|
||||
parameters:
|
||||
# See https://github.com/dotnet/arcade/issues/2871
|
||||
enableSymbolValidation: false
|
||||
enableSigningValidation: false
|
||||
enableNugetValidation: false
|
||||
publishInstallersAndChecksums: true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,101 @@
|
|||
#
|
||||
# See https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema for details on this file.
|
||||
#
|
||||
|
||||
# Configure which branches trigger builds
|
||||
trigger: none
|
||||
|
||||
# no PR builds
|
||||
pr: none
|
||||
|
||||
stages:
|
||||
- stage: build_components
|
||||
displayName: Build Components
|
||||
jobs:
|
||||
# Build components on Windows (x64)
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
codeSign: false
|
||||
jobName: Windows_build
|
||||
jobDisplayName: "Build: Components"
|
||||
agentOs: Windows
|
||||
steps:
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-arch x64
|
||||
/bl:$(Build.SourcesDirectory)/artifacts/log/build.components.x64.binlog
|
||||
displayName: Build x64
|
||||
workingDirectory: ./src/Components
|
||||
artifacts:
|
||||
- name: Windows_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- stage: build_servers
|
||||
displayName: Build Servers
|
||||
jobs:
|
||||
# Build servers on Windows (x64)
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
codeSign: false
|
||||
jobName: Windows_build
|
||||
jobDisplayName: "Build: Servers"
|
||||
agentOs: Windows
|
||||
steps:
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-arch x64
|
||||
/bl:$(Build.SourcesDirectory)/artifacts/log/build.servers.x64.binlog
|
||||
displayName: Build x64
|
||||
workingDirectory: ./src/Servers
|
||||
artifacts:
|
||||
- name: Windows_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- stage: build_project_templates
|
||||
displayName: Build Project Templates
|
||||
jobs:
|
||||
# Build servers on Windows (x64)
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
codeSign: false
|
||||
jobName: Windows_build
|
||||
jobDisplayName: "Build: Project Templates"
|
||||
agentOs: Windows
|
||||
steps:
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-arch x64
|
||||
/bl:$(Build.SourcesDirectory)/artifacts/log/build.projectTemplates.x64.binlog
|
||||
displayName: Build x64
|
||||
workingDirectory: ./src/ProjectTemplates
|
||||
artifacts:
|
||||
- name: Windows_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- stage: build_all
|
||||
displayName: Build Everything
|
||||
jobs:
|
||||
# Build servers on Windows (x64)
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
codeSign: false
|
||||
jobName: Windows_build
|
||||
jobDisplayName: "Build: Everything"
|
||||
agentOs: Windows
|
||||
steps:
|
||||
- script: ./build.cmd
|
||||
-ci
|
||||
-arch x64
|
||||
/bl:$(Build.SourcesDirectory)/artifacts/log/build.all.x64.binlog
|
||||
displayName: Build x64
|
||||
artifacts:
|
||||
- name: Windows_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
# We only want to run full helix matrix on master
|
||||
pr: none
|
||||
trigger: none
|
||||
schedules:
|
||||
- cron: "0 */12 * * *"
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
always: true
|
||||
|
||||
variables:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'true'
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- group: DotNet-HelixApi-Access
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'false'
|
||||
|
||||
jobs:
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_matrix_x64
|
||||
jobDisplayName: 'Tests: Helix full matrix x64'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 480
|
||||
steps:
|
||||
# Build the shared framework
|
||||
- script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Build shared fx
|
||||
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj
|
||||
displayName: Restore interop projects
|
||||
- script: .\build.cmd -ci -nobl -noBuildRepoTasks -NoRestore -test -all -noBuildNative -projects eng\helix\helix.proj
|
||||
/p:IsHelixDaily=true /p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true
|
||||
/p:RunTemplateTests=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.cmd helix target
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
artifacts:
|
||||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
|
||||
# Helix ARM64
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_matrix_arm64
|
||||
jobDisplayName: "Tests: Helix ARM64 matrix"
|
||||
agentOs: Linux
|
||||
timeoutInMinutes: 480
|
||||
steps:
|
||||
- script: ./restore.sh -ci -nobl
|
||||
displayName: Restore
|
||||
- script: ./build.sh --ci --nobl --noBuildRepoTasks --arch arm64 -test --no-build-nodejs --all --projects
|
||||
$(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true
|
||||
/p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.sh helix arm64 target
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
installNodeJs: false
|
||||
artifacts:
|
||||
- name: Helix_arm64_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
# Don't run CI for this config yet. We're not ready to move official builds on to Azure Pipelines
|
||||
trigger: none
|
||||
|
||||
# Run PR validation on all branches
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_x64
|
||||
jobDisplayName: 'Tests: Helix x64'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 240
|
||||
steps:
|
||||
- script: .\restore.cmd -ci
|
||||
displayName: Restore
|
||||
- script: .\build.cmd -ci -NoRestore -test -projects eng\helix\helix.proj /p:IsHelixJob=true /p:BuildAllProjects=true /p:BuildNative=true -bl
|
||||
displayName: Run build.cmd helix target
|
||||
env:
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
artifacts:
|
||||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
|
|
@ -28,16 +28,9 @@ jobs:
|
|||
contents: '**/*.nupkg'
|
||||
targetFolder: $(Build.SourcesDirectory)/artifacts/packages/$(BuildConfiguration)/shipping/
|
||||
flattenFolders: true
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- powershell: .\eng\common\build.ps1
|
||||
-ci
|
||||
-nobl
|
||||
-restore
|
||||
-sign
|
||||
-publish
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@
|
|||
# Specifies what directory to run build.sh/cmd
|
||||
# buildScript: string
|
||||
# Specifies the build script to run. Defaults to build.sh or build.cmd.
|
||||
|
||||
# skipComponentGovernanceDetection: boolean
|
||||
# Determines if component governance detection can be skipped
|
||||
#
|
||||
# See https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema for details
|
||||
#
|
||||
|
|
@ -52,13 +53,15 @@ parameters:
|
|||
condition: ''
|
||||
# jobName: '' - use agentOs by default.
|
||||
# jobDisplayName: '' - use agentOs by default.
|
||||
artifacts: []
|
||||
artifacts: []
|
||||
buildDirectory: ''
|
||||
buildScript: ''
|
||||
installTar: true
|
||||
installNodeJs: true
|
||||
installJdk: true
|
||||
timeoutInMinutes: 180
|
||||
useHostedUbuntu: true
|
||||
skipComponentGovernanceDetection: false
|
||||
|
||||
# We need longer than the default amount of 5 minutes to upload our logs/artifacts. (We currently take around 5 mins in the best case).
|
||||
# This makes sure we have time to upload everything in the case of a build timeout - really important for investigating a build
|
||||
|
|
@ -79,9 +82,9 @@ jobs:
|
|||
enableMicrobuild: true
|
||||
enablePublishBuildAssets: true
|
||||
enablePublishUsingPipelines: ${{ variables._PublishUsingPipelines }}
|
||||
enablePublishTestResults: true # publish test results to AzDO (populates AzDO Tests tab)
|
||||
enablePublishTestResults: ${{ eq(parameters.isTestingJob, 'true') }} # publish test results to AzDO (populates AzDO Tests tab)
|
||||
enableTelemetry: true
|
||||
helixRepo: aspnet/AspNetCore
|
||||
helixRepo: dotnet/aspnetcore
|
||||
helixType: build.product/
|
||||
workspace:
|
||||
clean: all
|
||||
|
|
@ -91,7 +94,15 @@ jobs:
|
|||
${{ if eq(parameters.agentOs, 'macOS') }}:
|
||||
vmImage: macOS-10.14
|
||||
${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
vmImage: ubuntu-16.04
|
||||
${{ if eq(parameters.useHostedUbuntu, true) }}:
|
||||
vmImage: ubuntu-16.04
|
||||
${{ if eq(parameters.useHostedUbuntu, false) }}:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: NetCorePublic-Pool
|
||||
queue: BuildPool.Ubuntu.1604.Amd64.Open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: NetCoreInternal-Pool
|
||||
queue: BuildPool.Ubuntu.1604.Amd64
|
||||
${{ if eq(parameters.agentOs, 'Windows') }}:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: NetCorePublic-Pool
|
||||
|
|
@ -105,6 +116,8 @@ jobs:
|
|||
name: NetCoreInternal-Pool
|
||||
# Visual Studio Enterprise - contains some stuff, like SQL Server and IIS Express, that we use for testing
|
||||
queue: BuildPool.Server.Amd64.VS2019
|
||||
${{ if ne(parameters.container, '') }}:
|
||||
container: ${{ parameters.container }}
|
||||
variables:
|
||||
- AgentOsName: ${{ parameters.agentOs }}
|
||||
- ASPNETCORE_TEST_LOG_MAXPATH: "200" # Keep test log file name length low enough for artifact zipping
|
||||
|
|
@ -112,12 +125,13 @@ jobs:
|
|||
- BuildScriptArgs: ${{ parameters.buildArgs }}
|
||||
- _BuildConfig: ${{ parameters.configuration }}
|
||||
- BuildConfiguration: ${{ parameters.configuration }}
|
||||
- BuildDirectory: ${{ parameters.buildDirectory }}
|
||||
- ${{ if eq(parameters.buildDirectory, '') }}:
|
||||
- BuildDirectory: $(System.DefaultWorkingDirectory)
|
||||
- ${{ if ne(parameters.buildDirectory, '') }}:
|
||||
- BuildDirectory: ${{ parameters.buildDirectory }}
|
||||
- DOTNET_CLI_HOME: $(System.DefaultWorkingDirectory)
|
||||
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
||||
- TeamName: AspNetCore
|
||||
- ${{ if and(eq(parameters.installJdk, 'true'), eq(parameters.agentOs, 'Windows')) }}:
|
||||
- JAVA_HOME: $(Agent.BuildDirectory)\.tools\jdk\win-x64
|
||||
- ${{ if or(ne(parameters.codeSign, true), ne(variables['System.TeamProject'], 'internal')) }}:
|
||||
- _SignType: ''
|
||||
- ${{ if and(eq(parameters.codeSign, true), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
|
|
@ -126,6 +140,9 @@ jobs:
|
|||
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- _SignType: test
|
||||
steps:
|
||||
- ${{ if ne(parameters.agentOs, 'Windows') }}:
|
||||
- script: df -h
|
||||
displayName: Disk size
|
||||
- checkout: self
|
||||
clean: true
|
||||
- ${{ if and(eq(parameters.agentOs, 'Windows'), eq(parameters.isTestingJob, true)) }}:
|
||||
|
|
@ -139,6 +156,7 @@ jobs:
|
|||
inputs:
|
||||
versionSpec: 10.x
|
||||
- ${{ if eq(parameters.agentOs, 'Windows') }}:
|
||||
- task: NuGetToolInstaller@1
|
||||
- task: NuGetCommand@2
|
||||
displayName: 'Clear NuGet caches'
|
||||
condition: succeeded()
|
||||
|
|
@ -150,7 +168,7 @@ jobs:
|
|||
displayName: Install JDK 11
|
||||
- ${{ if eq(parameters.isTestingJob, true) }}:
|
||||
- powershell: |
|
||||
Write-Host "##vso[task.setvariable variable=SeleniumProcessTrackingFolder]$(BuildDirectory)\artifacts\tmp\selenium\"
|
||||
Write-Host "##vso[task.setvariable variable=SeleniumProcessTrackingFolder]$(Build.SourcesDirectory)\artifacts\tmp\selenium\"
|
||||
./eng/scripts/InstallGoogleChrome.ps1
|
||||
displayName: Install Chrome
|
||||
- ${{ if and(eq(parameters.installTar, 'true'), eq(parameters.agentOs, 'Windows')) }}:
|
||||
|
|
@ -165,40 +183,48 @@ jobs:
|
|||
|
||||
- ${{ parameters.beforeBuild }}
|
||||
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- ${{ if eq(parameters.agentOs, 'Windows') }}:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- ${{ if ne(parameters.agentOs, 'Windows') }}:
|
||||
- task: Bash@3
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
||||
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
|
||||
- ${{ if ne(parameters.steps, '')}}:
|
||||
- ${{ parameters.steps }}
|
||||
- ${{ if eq(parameters.steps, '')}}:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- ${{ if eq(parameters.agentOs, 'Windows') }}:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
||||
- task: PowerShell@2
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
|
||||
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- ${{ if ne(parameters.agentOs, 'Windows') }}:
|
||||
- task: Bash@3
|
||||
displayName: Setup Private Feeds Credentials
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
||||
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
||||
env:
|
||||
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
||||
- ${{ if eq(parameters.buildScript, '') }}:
|
||||
- ${{ if eq(parameters.agentOs, 'Windows') }}:
|
||||
- script: .\$(BuildDirectory)\build.cmd -ci /p:DotNetSignType=$(_SignType) -Configuration $(BuildConfiguration) $(BuildScriptArgs)
|
||||
- script: $(BuildDirectory)\build.cmd -ci -nobl -Configuration $(BuildConfiguration) $(BuildScriptArgs) /p:DotNetSignType=$(_SignType)
|
||||
displayName: Run build.cmd
|
||||
- ${{ if ne(parameters.agentOs, 'Windows') }}:
|
||||
- script: ./$(BuildDirectory)/build.sh -ci -configuration $(BuildConfiguration) $(BuildScriptArgs)
|
||||
- script: $(BuildDirectory)/build.sh --ci --nobl --configuration $(BuildConfiguration) $(BuildScriptArgs)
|
||||
displayName: Run build.sh
|
||||
- ${{ if ne(parameters.buildScript, '') }}:
|
||||
- script: $(BuildScript) -Configuration $(BuildConfiguration) $(BuildScriptArgs)
|
||||
- script: $(BuildScript) -ci -nobl -Configuration $(BuildConfiguration) $(BuildScriptArgs)
|
||||
displayName: run $(BuildScript)
|
||||
|
||||
- ${{ parameters.afterBuild }}
|
||||
|
||||
- ${{ if eq(parameters.agentOs, 'Linux') }}:
|
||||
- script: df -h && du -h --threshold=50MB ..
|
||||
displayName: Disk utilization
|
||||
- ${{ if eq(parameters.agentOs, 'macOS') }}:
|
||||
- script: df -h && du -h -d 3 ..
|
||||
displayName: Disk utilization
|
||||
|
||||
- ${{ if and(eq(parameters.agentOs, 'Windows'), eq(parameters.isTestingJob, true)) }}:
|
||||
- powershell: ./eng/scripts/FinishDumpCollectionForHangingBuilds.ps1 artifacts/dumps/
|
||||
displayName: Finish background dump collection
|
||||
|
|
@ -216,16 +242,31 @@ jobs:
|
|||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
# Run component detection after all successful Build:* jobs unless overridden e.g. for Alpine build.
|
||||
- ${{ if and(startsWith(parameters.jobDisplayName, 'Build:'), ne(variables['skipComponentGovernanceDetection'], 'true'), ne(parameters.skipComponentGovernanceDetection, 'true'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
condition: and(succeeded(), ne(variables['CG_RAN'], 'true'))
|
||||
displayName: 'Component Detection'
|
||||
inputs:
|
||||
${{ if eq(parameters.agentOs, 'Windows') }}:
|
||||
ignoreDirectories: '.dotnet,.packages,artifacts\log,artifacts\symbols,artifacts\tmp'
|
||||
${{ if ne(parameters.agentOs, 'Windows') }}:
|
||||
ignoreDirectories: '.dotnet,.packages,artifacts/log,artifacts/symbols,artifacts/tmp'
|
||||
sourceScanPath: $(Build.SourcesDirectory)
|
||||
verbosity: Verbose
|
||||
# Make sure auto-injected component detection does _not_ execute in other jobs nor when overridden.
|
||||
# No need to recheck variables or build reason because auto-injected component detection honors those values.
|
||||
- ${{ if or(not(startsWith(parameters.jobDisplayName, 'Build:')), eq(parameters.skipComponentGovernanceDetection, 'true')) }}:
|
||||
- script: echo "##vso[task.setvariable variable=CG_RAN]true"
|
||||
displayName: 'Skip Component Detection'
|
||||
|
||||
- ${{ each artifact in parameters.artifacts }}:
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Upload artifacts from ${{ artifact.path }}
|
||||
condition: and(or(succeeded(), eq('${{ artifact.publishOnError }}', 'true')), or(eq(variables['system.pullrequest.isfork'], false), eq('${{ artifact.includeForks }}', 'true')))
|
||||
continueOnError: true
|
||||
inputs:
|
||||
${{ if eq(parameters.buildDirectory, '') }}:
|
||||
pathtoPublish: ${{ artifact.path }}
|
||||
${{ if ne(parameters.buildDirectory, '') }}:
|
||||
pathtoPublish: ${{ parameters.buildDirectory }}\${{ artifact.path }}
|
||||
pathtoPublish: $(Build.SourcesDirectory)/${{ artifact.path }}
|
||||
${{ if eq(artifact.name, '') }}:
|
||||
artifactName: artifacts-$(AgentOsName)-$(BuildConfiguration)
|
||||
${{ if ne(artifact.name, '') }}:
|
||||
|
|
@ -233,18 +274,7 @@ jobs:
|
|||
artifactType: Container
|
||||
parallel: true
|
||||
|
||||
- ${{ if eq(parameters.isTestingJob, true) }}:
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish VSTest test results
|
||||
condition: always()
|
||||
continueOnError: true
|
||||
inputs:
|
||||
testRunTitle: $(AgentOsName)-$(BuildConfiguration)
|
||||
testRunner: vstest
|
||||
testResultsFiles: '**/artifacts/**/*.trx'
|
||||
mergeTestResults: true
|
||||
buildConfiguration: $(BuildConfiguration)
|
||||
buildPlatform: $(AgentOsName)
|
||||
- ${{ if and(eq(parameters.isTestingJob, true), ne(parameters.jobName, 'Windows_Templates_Test')) }}:
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish js test results
|
||||
condition: always()
|
||||
|
|
@ -253,11 +283,3 @@ jobs:
|
|||
testResultsFiles: '**/artifacts/log/**/*.junit.xml'
|
||||
buildConfiguration: $(BuildConfiguration)
|
||||
buildPlatform: $(AgentOsName)
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Java test results
|
||||
condition: always()
|
||||
inputs:
|
||||
testRunner: junit
|
||||
testResultsFiles: '**/TEST-com.microsoft.signalr*.xml'
|
||||
buildConfiguration: $(BuildConfiguration)
|
||||
buildPlatform: $(AgentOsName)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,149 @@
|
|||
# We want to run quarantined tests on master as well as on PRs
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
|
||||
schedules:
|
||||
- cron: "0 */4 * * *"
|
||||
displayName: Every 4 hours test run
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
always: true
|
||||
|
||||
variables:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'true'
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- group: DotNet-HelixApi-Access
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'false'
|
||||
|
||||
jobs:
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_quarantined_x64
|
||||
jobDisplayName: 'Tests: Helix'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 240
|
||||
steps:
|
||||
# Build the shared framework
|
||||
- script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Build shared fx
|
||||
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj
|
||||
displayName: Restore interop projects
|
||||
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -noRestore -test -all -noBuildJava -noBuildNative
|
||||
-projects eng\helix\helix.proj /p:RunQuarantinedTests=true /p:IsRequiredCheck=true /p:IsHelixJob=true
|
||||
/p:BuildInteropProjects=true /p:RunTemplateTests=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.cmd helix target
|
||||
continueOnError: true
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
artifacts:
|
||||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Windows_Quarantined_x64
|
||||
jobDisplayName: 'Tests: Windows x64'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 240
|
||||
isTestingJob: true
|
||||
steps:
|
||||
- powershell: "& ./build.ps1 -CI -nobl -all -pack -NoBuildJava"
|
||||
displayName: Build
|
||||
# The templates part can be removed when the Blazor Templates run on Helix
|
||||
- script: ./src/ProjectTemplates/build.cmd -ci -nobl -pack -NoRestore -NoBuilddeps "/p:RunTemplateTests=true"
|
||||
displayName: Pack Templates
|
||||
- script: ./build.cmd -ci -nobl -test -NoRestore -NoBuild -NoBuilddeps "/p:RunTemplateTests=true /p:RunQuarantinedTests=true /p:SkipHelixReadyTests=true"
|
||||
displayName: Run Quarantined Tests
|
||||
continueOnError: true
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Quarantined Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'xUnit'
|
||||
testResultsFiles: '*.xml'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Quarantined'
|
||||
condition: always()
|
||||
artifacts:
|
||||
- name: Windows_Quarantined_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Windows_Quarantined_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: MacOS_Quarantined_Test
|
||||
jobDisplayName: "Tests: macOS 10.14"
|
||||
agentOs: macOS
|
||||
timeoutInMinutes: 240
|
||||
isTestingJob: true
|
||||
steps:
|
||||
- bash: ./build.sh --all --pack --ci --nobl --no-build-java
|
||||
displayName: Build
|
||||
# The templates part can be removed when the Blazor Templates run on Helix
|
||||
- bash: ./src/ProjectTemplates/build.sh --ci --nobl --pack --no-restore --no-build-deps
|
||||
displayName: Pack Templates (for Template tests)
|
||||
- bash: ./build.sh --no-build --ci --nobl --test -p:RunTemplateTests=true -p:RunQuarantinedTests=true -p:SkipHelixReadyTests=true
|
||||
displayName: Run Quarantined Tests
|
||||
continueOnError: true
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Quarantined Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'xUnit'
|
||||
testResultsFiles: '*.xml'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Quarantined'
|
||||
condition: always()
|
||||
artifacts:
|
||||
- name: MacOS_Quarantined_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: MacOS_Quarantined_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Linux_Quarantined_Test
|
||||
jobDisplayName: "Tests: Ubuntu 16.04 x64"
|
||||
agentOs: Linux
|
||||
timeoutInMinutes: 240
|
||||
isTestingJob: true
|
||||
useHostedUbuntu: false
|
||||
steps:
|
||||
- bash: ./build.sh --all --pack --ci --nobl --no-build-java
|
||||
displayName: Build
|
||||
# The templates part can be removed when the Blazor Templates run on Helix
|
||||
- bash: ./src/ProjectTemplates/build.sh --ci --nobl --pack --no-restore --no-build-deps
|
||||
displayName: Pack Templates (for Template tests)
|
||||
- bash: ./build.sh --no-build --ci --nobl --test -p:RunTemplateTests=true -p:RunQuarantinedTests=true -p:SkipHelixReadyTests=true
|
||||
displayName: Run Quarantined Tests
|
||||
continueOnError: true
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Quarantined Test Results
|
||||
inputs:
|
||||
testResultsFormat: 'xUnit'
|
||||
testResultsFiles: '*.xml'
|
||||
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Quarantined'
|
||||
condition: always()
|
||||
artifacts:
|
||||
- name: Linux_Quarantined_Test_Logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
- name: Linux_Quarantined_Test_Results
|
||||
path: artifacts/TestResults/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
# We only want to run quarantined tests on master
|
||||
pr: none
|
||||
trigger: none
|
||||
|
||||
schedules:
|
||||
- cron: "0 18 * * *"
|
||||
displayName: Run tests once a day at 11 PM
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
always: true
|
||||
|
||||
variables:
|
||||
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'true'
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- group: DotNet-HelixApi-Access
|
||||
- name: _UseHelixOpenQueues
|
||||
value: 'false'
|
||||
|
||||
jobs:
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_quarantined_x64
|
||||
jobDisplayName: 'Tests: Helix'
|
||||
agentOs: Windows
|
||||
timeoutInMinutes: 480
|
||||
steps:
|
||||
# Build the shared framework
|
||||
- script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Build shared fx
|
||||
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj
|
||||
displayName: Restore interop projects
|
||||
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -noRestore -test -all -noBuildJava -noBuildNative
|
||||
-projects eng\helix\helix.proj /p:IsHelixDaily=true /p:RunQuarantinedTests=true /p:IsRequiredCheck=true /p:IsHelixJob=true
|
||||
/p:BuildInteropProjects=true /p:RunTemplateTests=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.cmd helix target
|
||||
continueOnError: true
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
artifacts:
|
||||
- name: Helix_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
|
||||
# Helix ARM64
|
||||
- template: jobs/default-build.yml
|
||||
parameters:
|
||||
jobName: Helix_quarantined_arm64
|
||||
jobDisplayName: "Tests: Helix ARM64"
|
||||
agentOs: Linux
|
||||
timeoutInMinutes: 480
|
||||
steps:
|
||||
- script: ./restore.sh -ci -nobl
|
||||
displayName: Restore
|
||||
- script: ./build.sh --ci --nobl --noBuildRepoTasks --arch arm64 -test --no-build-nodejs --all --projects
|
||||
$(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true /p:RunQuarantinedTests=true
|
||||
/p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
||||
displayName: Run build.sh helix arm64 target
|
||||
continueOnError: true
|
||||
env:
|
||||
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
||||
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
||||
installNodeJs: false
|
||||
artifacts:
|
||||
- name: Helix_arm64_logs
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
includeForks: true
|
||||
|
|
@ -16,5 +16,5 @@ jobs:
|
|||
jobDisplayName: "SignalR Daily Tests"
|
||||
artifacts:
|
||||
- name: Windows_Logs
|
||||
path: ../../artifacts/log/
|
||||
path: artifacts/log/
|
||||
publishOnError: true
|
||||
|
|
|
|||
|
|
@ -20,6 +20,38 @@
|
|||
{
|
||||
"placeholder": "1qaz@WSX",
|
||||
"_justification": "This is a fake password used in test code."
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\testCert.pfx",
|
||||
"_justification": "Legitimate UT certificate file with private key"
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\https-aspnet.key",
|
||||
"_justification": "Legitimate key file used for testing"
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\https-dsa-protected.key",
|
||||
"_justification": "Legitimate key file used for testing"
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\https-dsa.key",
|
||||
"_justification": "Legitimate key file used for testing"
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\https-ecdsa-protected.key",
|
||||
"_justification": "Legitimate key file used for testing"
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\https-ecdsa.key",
|
||||
"_justification": "Legitimate key file used for testing"
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\https-rsa-protected.key",
|
||||
"_justification": "Legitimate key file used for testing"
|
||||
},
|
||||
{
|
||||
"file": "\\src\\Servers\\Kestrel\\shared\\test\\TestCertificates\\https-rsa.key",
|
||||
"_justification": "Legitimate key file used for testing"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,10 @@ dotnet_sort_system_directives_first = true
|
|||
[*.{xml,config,*proj,nuspec,props,resx,targets,yml,tasks}]
|
||||
indent_size = 2
|
||||
|
||||
# Xml config files
|
||||
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
|
||||
indent_size = 2
|
||||
|
||||
[*.json]
|
||||
indent_size = 2
|
||||
|
||||
|
|
@ -35,3 +39,6 @@ indent_size = 4
|
|||
[*.sh]
|
||||
indent_size = 4
|
||||
end_of_line = lf
|
||||
|
||||
[*.{razor,cshtml}]
|
||||
charset = utf-8-bom
|
||||
|
|
|
|||
|
|
@ -8,6 +8,11 @@
|
|||
###############################################################################
|
||||
*.sh eol=lf
|
||||
|
||||
###############################################################################
|
||||
# Make gradlew always have LF as line endings
|
||||
###############################################################################
|
||||
gradlew eol=lf
|
||||
|
||||
###############################################################################
|
||||
# Set default behavior for command prompt diff.
|
||||
#
|
||||
|
|
@ -66,3 +71,9 @@
|
|||
#*.PDF diff=astextplain
|
||||
#*.rtf diff=astextplain
|
||||
#*.RTF diff=astextplain
|
||||
|
||||
###############################################################################
|
||||
# Make sure jQuery files always have LF as line endings (to pass SRI checks)
|
||||
###############################################################################
|
||||
jquery*.js eol=lf
|
||||
jquery*.map eol=lf
|
||||
|
|
|
|||
|
|
@ -9,14 +9,19 @@
|
|||
/eng/common/ @dotnet-maestro-bot
|
||||
/eng/Versions.props @dotnet-maestro-bot @dougbu
|
||||
/eng/Version.Details.xml @dotnet-maestro-bot @dougbu
|
||||
/src/Components/ @SteveSandersonMS
|
||||
/src/DefaultBuilder/ @tratcher @anurse
|
||||
/src/Hosting/ @tratcher @anurse
|
||||
/src/Http/ @tratcher @jkotalik @anurse
|
||||
/src/Middleware/ @tratcher @anurse
|
||||
/src/ProjectTemplates/ @ryanbrandenburg
|
||||
/src/Security/ @tratcher @anurse
|
||||
/src/Servers/ @tratcher @jkotalik @anurse @halter73
|
||||
/src/Middleware/Rewrite @jkotalik @anurse
|
||||
/src/Middleware/HttpsPolicy @jkotalik @anurse
|
||||
/src/SignalR/ @BrennanConroy @halter73 @anurse
|
||||
/src/Components/ @SteveSandersonMS @dotnet/aspnet-blazor-eng
|
||||
/src/DefaultBuilder/ @tratcher
|
||||
/src/Hosting/ @tratcher
|
||||
/src/Http/ @tratcher @jkotalik
|
||||
/src/Http/Routing/ @javiercn
|
||||
/src/Middleware/ @tratcher
|
||||
/src/Middleware/HttpsPolicy/ @jkotalik
|
||||
/src/Middleware/Rewrite/ @jkotalik
|
||||
# /src/ProjectTemplates/ @ryanbrandenburg
|
||||
/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/ @dotnet/aspnet-blazor-eng
|
||||
/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/ @dotnet/aspnet-blazor-eng
|
||||
/src/Security/ @tratcher
|
||||
/src/Servers/ @tratcher @jkotalik @halter73
|
||||
/src/Shared/runtime/ @dotnet/http
|
||||
/src/Shared/test/Shared.Tests/runtime/ @dotnet/http
|
||||
/src/SignalR/ @BrennanConroy @halter73
|
||||
|
|
|
|||
|
|
@ -1,26 +1,38 @@
|
|||
---
|
||||
name: Bug report
|
||||
name: 🐞 Bug report
|
||||
about: Create a report about something that is not working
|
||||
---
|
||||
|
||||
### If you believe you have an issue that affects the security of the platform please do NOT create an issue and instead email your issue details to secure@microsoft.com. Your report may be eligible for our [bug bounty](https://technet.microsoft.com/en-us/mt764065.aspx) but ONLY if it is reported through email.
|
||||
<!--
|
||||
|
||||
More information on our issue management policies can be found here: https://aka.ms/aspnet/issue-policies
|
||||
|
||||
Please keep in mind that the GitHub issue tracker is not intended as a general support forum, but for reporting **non-security** bugs and feature requests.
|
||||
|
||||
If you believe you have an issue that affects the SECURITY of the platform, please do NOT create an issue and instead email your issue details to secure@microsoft.com. Your report may be eligible for our [bug bounty](https://www.microsoft.com/en-us/msrc/bounty-dot-net-core) but ONLY if it is reported through email.
|
||||
For other types of questions, consider using [StackOverflow](https://stackoverflow.com).
|
||||
|
||||
-->
|
||||
|
||||
### Describe the bug
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
### To Reproduce
|
||||
Steps to reproduce the behavior:
|
||||
1. Using this version of ASP.NET Core '...'
|
||||
2. Run this code '....'
|
||||
3. With these arguments '....'
|
||||
4. See error
|
||||
<!--
|
||||
We ❤ code! Point us to a minimalistic repro project hosted in a GitHub repo.
|
||||
For a repro project, create a new ASP.NET Core project using the template of your your choice, apply the minimum required code to result in the issue you're observing.
|
||||
|
||||
### Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
We will close this issue if:
|
||||
- the repro project you share with us is complex. We can't investigate custom projects, so don't point us to such, please.
|
||||
- if we will not be able to repro the behavior you're reporting
|
||||
-->
|
||||
|
||||
### Screenshots
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
### Exceptions (if any)
|
||||
<!--
|
||||
Include the exception you get when facing this issue
|
||||
-->
|
||||
|
||||
### Additional context
|
||||
Add any other context about the problem here.
|
||||
Include the output of `dotnet --info`
|
||||
### Further technical details
|
||||
- ASP.NET Core version
|
||||
- Include the output of `dotnet --info`
|
||||
- The IDE (VS / VS Code/ VS4Mac) you're running on, and it's version
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Discussions
|
||||
url: https://github.com/dotnet/aspnetcore/discussions/new
|
||||
about: Is your issue perhaps more of a discussion? Please open topics for discussion using the new GitHub Discussions feature.
|
||||
- name: Issue with .NET runtime or core .NET libraries
|
||||
url: https://github.com/dotnet/runtime/issues/new/choose
|
||||
about: Please open issues relating to the .NET runtime or core .NET libraries in dotnet/runtime.
|
||||
- name: Issue with .NET SDK
|
||||
url: https://github.com/dotnet/sdk/issues/new/choose
|
||||
about: Please open issues relating to the .NET SDK itself in dotnet/sdk.
|
||||
- name: Issue with Entity Framework Core
|
||||
url: https://github.com/dotnet/efcore/issues/new/choose
|
||||
about: Please open issues relating to Entity Framework Core in dotnet/efcore.
|
||||
- name: Issue with Roslyn compiler
|
||||
url: https://github.com/dotnet/roslyn/issues/new/choose
|
||||
about: Please open issues relating to the Roslyn .NET compiler in dotnet/roslyn.
|
||||
|
|
@ -1,8 +1,14 @@
|
|||
---
|
||||
name: Feature request
|
||||
name: 💡 Feature request
|
||||
about: Suggest an idea for this project
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
More information on our issue management policies can be found here: https://aka.ms/aspnet/issue-policies
|
||||
|
||||
-->
|
||||
|
||||
### Is your feature request related to a problem? Please describe.
|
||||
A clear and concise description of what the problem is.
|
||||
Example: I am trying to do [...] but [...]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
name: 🐞 Razor Tooling Bug report
|
||||
about: Report an issue about something that is not working in the new Razor tooling
|
||||
labels: area-razor.tooling, feature-razor.vs
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
More information on our issue management policies can be found here: https://aka.ms/aspnet/issue-policies
|
||||
|
||||
Please keep in mind that the GitHub issue tracker is not intended as a general support forum, but for reporting **non-security** bugs and feature requests.
|
||||
|
||||
If you believe you have an issue that affects the SECURITY of the platform, please do NOT create an issue and instead email your issue details to secure@microsoft.com. Your report may be eligible for our [bug bounty](https://www.microsoft.com/en-us/msrc/bounty-dot-net-core) but ONLY if it is reported through email.
|
||||
For other types of questions, consider using [StackOverflow](https://stackoverflow.com).
|
||||
|
||||
-->
|
||||
|
||||
<!-- NOTE: This issue template is meant specifically to be used for issues with the new experimental Razor tooling experience provided in Visual Studio's Preview Feature pane -->
|
||||
|
||||
### Describe the bug
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
### To Reproduce
|
||||
<!--
|
||||
We ❤ code! Point us to a minimalistic repro project hosted in a GitHub repo.
|
||||
For a repro project, create a new ASP.NET Core project using the template of your your choice, apply the minimum required code to result in the issue you're observing.
|
||||
|
||||
We will close this issue if:
|
||||
- the repro project you share with us is complex. We can't investigate custom projects, so don't point us to such, please.
|
||||
- if we will not be able to repro the behavior you're reporting
|
||||
-->
|
||||
|
||||
### Logs & Exceptions
|
||||
|
||||
Please collect the data below before reporting your issue to aid us in diagnosing the root cause.
|
||||
|
||||
#### Activity log
|
||||
[Here](https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-use-the-activity-log?view=vs-2019#to-examine-the-activity-log) are the instructions on how to generate/acquire one.
|
||||
|
||||
#### Razor Language Server Client log
|
||||
<!-- In Visual Studio's `Output` window, the drop-down contains a `Razor Language Server Client` item. Include that below. -->
|
||||
<details>
|
||||
<summary>Razor Language Server Client Log Output</summary>
|
||||
|
||||
Paste log output here
|
||||
|
||||
</details>
|
||||
|
||||
#### HTML Language Server Client log
|
||||
<!-- In Visual Studio's `Output` window, the drop-down contains a `HtmlyLanguageClient` item. Include that below. -->
|
||||
<details>
|
||||
<summary>HTML Language Server Client Log Output</summary>
|
||||
|
||||
Paste log output here
|
||||
|
||||
</details>
|
||||
|
||||
### Further technical details
|
||||
- VS version (Help => About Microsoft Visual Studio, i.e. 16.8.0 Preview 1 30313.27...). If in Codespaces there will be two versions (server and client), please provide both.
|
||||
- Scenario (Local, LiveShare, Codespaces)
|
||||
|
||||
### Pre-requisite checklist
|
||||
- [ ] Steps to reproduce the issue
|
||||
- [ ] Visual Studio Activity Log attached.
|
||||
- [ ] Razor Language Server client logs included.
|
||||
- [ ] HTML Language Server client logs included
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
# Check the code is in sync
|
||||
$changed = (select-string "nothing to commit" artifacts\status.txt).count -eq 0
|
||||
if (-not $changed) { return $changed }
|
||||
# Check if tracking issue is open/closed
|
||||
$Headers = @{ Authorization = 'token {0}' -f $ENV:GITHUB_TOKEN; };
|
||||
$result = Invoke-RestMethod -Uri $issue
|
||||
if ($result.state -eq "closed") {
|
||||
$json = "{ `"state`": `"open`" }"
|
||||
$result = Invoke-RestMethod -Method PATCH -Headers $Headers -Uri $issue -Body $json
|
||||
}
|
||||
# Add a comment
|
||||
$status = [IO.File]::ReadAllText("artifacts\status.txt")
|
||||
$diff = [IO.File]::ReadAllText("artifacts\diff.txt")
|
||||
$body = @"
|
||||
The shared code is out of sync.
|
||||
<details>
|
||||
<summary>The Diff</summary>
|
||||
|
||||
``````
|
||||
$status
|
||||
$diff
|
||||
``````
|
||||
|
||||
</details>
|
||||
"@
|
||||
$json = ConvertTo-Json -InputObject @{ 'body' = $body }
|
||||
$issue = $issue + '/comments'
|
||||
$result = Invoke-RestMethod -Method POST -Headers $Headers -Uri $issue -Body $json
|
||||
return $changed
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
name: AspNetCore-Runtime Code Sync
|
||||
on:
|
||||
# Manual run
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# * is a special character in YAML so you have to quote this string
|
||||
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#scheduled-events-schedule
|
||||
# Once per day at midnight PST (8 UTC)
|
||||
- cron: '0 8 * * *'
|
||||
|
||||
jobs:
|
||||
compare_repos:
|
||||
# Comment out this line to test the scripts in a fork
|
||||
if: github.repository == 'dotnet/aspnetcore'
|
||||
name: Compare the shared code in the AspNetCore and Runtime repos and notify if they're out of sync.
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout aspnetcore
|
||||
uses: actions/checkout@v2.0.0
|
||||
with:
|
||||
# Test this script using changes in a fork
|
||||
repository: 'dotnet/aspnetcore'
|
||||
path: aspnetcore
|
||||
- name: Checkout runtime
|
||||
uses: actions/checkout@v2.0.0
|
||||
with:
|
||||
# Test this script using changes in a fork
|
||||
repository: 'dotnet/runtime'
|
||||
path: runtime
|
||||
- name: Copy
|
||||
shell: cmd
|
||||
working-directory: .\runtime\src\libraries\Common\src\System\Net\Http\aspnetcore\
|
||||
env:
|
||||
ASPNETCORE_REPO: d:\a\aspnetcore\aspnetcore\aspnetcore\
|
||||
run: CopyToAspNetCore.cmd
|
||||
- name: Diff
|
||||
shell: cmd
|
||||
working-directory: .\aspnetcore\
|
||||
run: |
|
||||
mkdir ..\artifacts
|
||||
git status > ..\artifacts\status.txt
|
||||
git diff > ..\artifacts\diff.txt
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: results
|
||||
path: artifacts
|
||||
- name: Check and Notify
|
||||
id: check
|
||||
shell: pwsh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
# Test this script using an issue in the local forked repo
|
||||
$issue = 'https://api.github.com/repos/dotnet/aspnetcore/issues/18943'
|
||||
$changed = .\aspnetcore\.github\workflows\ReportDiff.ps1
|
||||
echo "::set-output name=changed::$changed"
|
||||
- name: Send PR
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
# https://github.com/marketplace/actions/create-pull-request
|
||||
uses: peter-evans/create-pull-request@v2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
path: .\aspnetcore
|
||||
commit-message: 'Sync shared code from runtime'
|
||||
title: 'Sync shared code from runtime'
|
||||
body: 'This PR was automatically generated to sync shared code changes from runtime. Fixes #18943'
|
||||
labels: area-servers
|
||||
branch: github-action/sync-runtime
|
||||
branch-suffix: timestamp
|
||||
|
|
@ -13,6 +13,7 @@ BenchmarkDotNet.Artifacts/
|
|||
.gradle/
|
||||
src/SignalR/clients/**/dist/
|
||||
modules/
|
||||
.ionide/
|
||||
|
||||
# File extensions
|
||||
*.aps
|
||||
|
|
@ -29,6 +30,7 @@ modules/
|
|||
*.psess
|
||||
*.res
|
||||
*.snk
|
||||
*.so
|
||||
*.suo
|
||||
*.tlog
|
||||
*.user
|
||||
|
|
@ -40,3 +42,4 @@ launchSettings.json
|
|||
msbuild.ProjectImports.zip
|
||||
StyleCop.Cache
|
||||
UpgradeLog.htm
|
||||
.idea
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"recommendations": [
|
||||
"ms-vscode.csharp",
|
||||
"ms-dotnettools.csharp",
|
||||
"ms-vscode.PowerShell",
|
||||
"EditorConfig.EditorConfig"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"version": "1.0",
|
||||
"components": [
|
||||
"Microsoft.Net.Component.4.6.1.TargetingPack",
|
||||
"Microsoft.Net.Component.4.7.2.SDK",
|
||||
"Microsoft.Net.Component.4.7.2.TargetingPack",
|
||||
"Microsoft.VisualStudio.Workload.ManagedDesktop",
|
||||
"Microsoft.VisualStudio.Workload.NetCoreTools",
|
||||
"Microsoft.VisualStudio.Workload.NetWeb",
|
||||
"Microsoft.VisualStudio.Workload.VisualStudioExtension"
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,6 @@
|
|||
# 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).
|
||||
|
|
@ -3,16 +3,16 @@
|
|||
One of the easiest ways to contribute is to participate in discussions on GitHub issues. You can also contribute by submitting pull requests with code changes.
|
||||
|
||||
## General feedback and discussions?
|
||||
Start a discussion on the [repository issue tracker](https://github.com/aspnet/AspNetCore/issues).
|
||||
Start a discussion on the [repository issue tracker](https://github.com/dotnet/aspnetcore/issues).
|
||||
|
||||
## Bugs and feature requests?
|
||||
For non-security related bugs, log a new issue in the appropriate GitHub repository. Here are some of the most common repositories:
|
||||
|
||||
* [Docs](https://github.com/aspnet/Docs)
|
||||
* [AspNetCore](https://github.com/aspnet/AspNetCore)
|
||||
* [Entity Framework Core](https://github.com/aspnet/EntityFrameworkCore)
|
||||
* [AspNetCore](https://github.com/dotnet/aspnetcore)
|
||||
* [Entity Framework Core](https://github.com/dotnet/efcore)
|
||||
* [Tooling](https://github.com/aspnet/Tooling)
|
||||
* [Extensions](https://github.com/aspnet/Extensions)
|
||||
* [Extensions](https://github.com/dotnet/extensions)
|
||||
|
||||
Or browse the full list of repositories in the [aspnet](https://github.com/aspnet/) organization.
|
||||
|
||||
|
|
@ -31,8 +31,8 @@ Our team members also monitor several other discussion forums:
|
|||
We accept fixes and features! Here are some resources to help you get started on how to contribute code or new content.
|
||||
|
||||
* Look at the [Contributor documentation](/docs/) to get started on building the source code on your own.
|
||||
* ["Help wanted" issues](https://github.com/aspnet/AspNetCore/labels/help%20wanted) - these issues are up for grabs. Comment on an issue if you want to create a fix.
|
||||
* ["Good first issue" issues](https://github.com/aspnet/AspNetCore/labels/good%20first%20issue) - we think these are a good for newcomers.
|
||||
* ["Help wanted" issues](https://github.com/dotnet/aspnetcore/labels/help%20wanted) - these issues are up for grabs. Comment on an issue if you want to create a fix.
|
||||
* ["Good first issue" issues](https://github.com/dotnet/aspnetcore/labels/good%20first%20issue) - we think these are a good for newcomers.
|
||||
|
||||
### Identifying the scale
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ If you would like to contribute to one of our repositories, first identify the s
|
|||
|
||||
You will need to sign a [Contributor License Agreement](https://cla.dotnetfoundation.org/) when submitting your pull request. To complete the Contributor License Agreement (CLA), you will need to follow the instructions provided by the CLA bot when you send the pull request. This needs to only be done once for any .NET Foundation OSS project.
|
||||
|
||||
If you don't know what a pull request is read this article: https://help.github.com/articles/using-pull-requests. Make sure the repository can build and all tests pass. Familiarize yourself with the project workflow and our coding conventions. The coding, style, and general engineering guidelines are published on the [Engineering guidelines](https://github.com/aspnet/AspNetCore/wiki/Engineering-guidelines) page.
|
||||
If you don't know what a pull request is read this article: https://help.github.com/articles/using-pull-requests. Make sure the repository can build and all tests pass. Familiarize yourself with the project workflow and our coding conventions. The coding, style, and general engineering guidelines are published on the [Engineering guidelines](https://github.com/dotnet/aspnetcore/wiki/Engineering-guidelines) page.
|
||||
|
||||
### Tests
|
||||
|
||||
|
|
@ -57,4 +57,4 @@ Your pull request will now go through extensive checks by the subject matter exp
|
|||
|
||||
## Code of conduct
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
||||
See [CODE-OF-CONDUCT.md](./CODE-OF-CONDUCT.md)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
<Project>
|
||||
<Import Project="eng\Common.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
|
||||
<RepositoryUrl>https://github.com/aspnet/AspNetCore</RepositoryUrl>
|
||||
<RepositoryUrl>https://github.com/dotnet/aspnetcore</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
@ -13,7 +15,7 @@
|
|||
<IsReferenceAssemblyProject Condition="$(MSBuildProjectDirectory.EndsWith('ref'))">true</IsReferenceAssemblyProject>
|
||||
<OutDirName Condition="'$(IsReferenceAssemblyProject)' == 'true'">$(MSBuildProjectName)-ref</OutDirName>
|
||||
|
||||
<IsBenchmarkProject Condition="$(MSBuildProjectName.EndsWith('.Performance')) OR $(RepoRelativeProjectDir.Contains('perf'))">true</IsBenchmarkProject>
|
||||
<IsBenchmarkProject Condition="$(MSBuildProjectName.EndsWith('.Performance')) OR $(RepoRelativeProjectDir.Contains('perf')) OR $(RepoRelativeProjectDir.Contains('benchmarkapps'))">true</IsBenchmarkProject>
|
||||
<IsSpecificationTestProject Condition="$(MSBuildProjectName.EndsWith('.Specification.Tests'))">true</IsSpecificationTestProject>
|
||||
<IsUnitTestProject>false</IsUnitTestProject>
|
||||
<IsUnitTestProject Condition="'$(IsSpecificationTestProject)' != 'true' and ( $(MSBuildProjectName.EndsWith('Tests')) or $(MSBuildProjectName.EndsWith('.Test')) or $(MSBuildProjectName.EndsWith('.FunctionalTest')) )">true</IsUnitTestProject>
|
||||
|
|
@ -30,11 +32,50 @@
|
|||
-->
|
||||
<IsStableBuild>false</IsStableBuild>
|
||||
<IsStableBuild Condition=" '$(DotNetFinalVersionKind)' == 'release' ">true</IsStableBuild>
|
||||
|
||||
<!-- Workaround issue with ComponentsAnalyzer throwing for interfaces -->
|
||||
<DisableImplicitComponentsAnalyzers>true</DisableImplicitComponentsAnalyzers>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="eng\FlakyTests.BeforeArcade.props" />
|
||||
<!-- Disable logging of some task parameters or metadata to reduce binlog size.
|
||||
Reenable logging of any particular item by changing the value of the property below to 'false'
|
||||
The format is as follows:
|
||||
DisableLogTaskParameter_[task name]_[parameter name] - Disable logging of a particular parameter
|
||||
DisableLogTaskParameterItemMetadata_[task name]_[parameter name] - Disable logging of item metadata of the parameter
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<TrimTaskParameters Condition=" '$(TrimTaskParameters)' == '' ">true</TrimTaskParameters>
|
||||
<!-- ItemsToHash is used for incremental building and hashes input properties to a file
|
||||
This is not generally useful for day-to-day build debugging. -->
|
||||
<DisableLogTaskParameter_Hash_ItemsToHash>$(TrimTaskParameters)</DisableLogTaskParameter_Hash_ItemsToHash>
|
||||
|
||||
<!-- JoinItems takes input ItemGroups. The output ItemGroup is logged. -->
|
||||
<DisableLogTaskParameter_JoinItems_Right>$(TrimTaskParameters)</DisableLogTaskParameter_JoinItems_Right>
|
||||
<DisableLogTaskParameter_JoinItems_Left>$(TrimTaskParameters)</DisableLogTaskParameter_JoinItems_Left>
|
||||
|
||||
<!-- ConvertToAbsolutePaths - The output parameter (AbsolutePaths) is interesting
|
||||
while the input Path is not generally useful. The output itemgroup's metadata
|
||||
is not altered by the task. -->
|
||||
<DisableLogTaskParameter_ConvertToAbsolutePath_Paths>$(TrimTaskParameters)</DisableLogTaskParameter_ConvertToAbsolutePath_Paths>
|
||||
<DisableLogTaskParameterItemMetadata_ConvertToAbsolutePath_Paths>$(TrimTaskParameters)</DisableLogTaskParameterItemMetadata_ConvertToAbsolutePath_Paths>
|
||||
|
||||
<!-- The standard msbuild Copy task does not use Metadata and thus the input/outputs
|
||||
item metadata is not relevant -->
|
||||
<DisableLogTaskParameterItemMetadata_Copy_SourceFiles>$(TrimTaskParameters)</DisableLogTaskParameterItemMetadata_Copy_SourceFiles>
|
||||
<DisableLogTaskParameterItemMetadata_Copy_DestinationFiles>$(TrimTaskParameters)</DisableLogTaskParameterItemMetadata_Copy_DestinationFiles>
|
||||
|
||||
<!-- Reference metadata for GenerateDepsFile, Csc, RAR, etc. are sometimes useful, but extraordinarily large
|
||||
when building against a shared framework where the number of input assemblies is very large.
|
||||
Avoid logging these by default. -->
|
||||
<DisableLogTaskParameterItemMetadata_GenerateDepsFile_ReferenceAssemblies>$(TrimTaskParameters)</DisableLogTaskParameterItemMetadata_GenerateDepsFile_ReferenceAssemblies>
|
||||
<DisableLogTaskParameterItemMetadata_GenerateDepsFile_ReferencePaths>$(TrimTaskParameters)</DisableLogTaskParameterItemMetadata_GenerateDepsFile_ReferencePaths>
|
||||
<DisableLogTaskParameterItemMetadata_ResolveAssemblyReference_Assemblies>$(TrimTaskParameters)</DisableLogTaskParameterItemMetadata_ResolveAssemblyReference_Assemblies>
|
||||
<DisableLogTaskParameterItemMetadata_Csc_References>$(TrimTaskParameters)</DisableLogTaskParameterItemMetadata_Csc_References>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="eng\QuarantinedTests.BeforeArcade.props" />
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
||||
<Import Project="eng\FlakyTests.AfterArcade.props" />
|
||||
<Import Project="eng\QuarantinedTests.AfterArcade.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<Product>Microsoft ASP.NET Core</Product>
|
||||
|
|
@ -51,7 +92,8 @@
|
|||
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
|
||||
<DefaultNetCoreTargetFramework>netcoreapp3.1</DefaultNetCoreTargetFramework>
|
||||
<!-- Also update the DefaultNetCoreTargetFramework defined at src/Razor/test/testassets/Directory.Build.props -->
|
||||
<DefaultNetCoreTargetFramework>net5.0</DefaultNetCoreTargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Warnings and errors -->
|
||||
|
|
@ -59,8 +101,12 @@
|
|||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<!-- Don't make missing XML docs a fatal build error, but still surface so we have visibility into undocumented APIs. -->
|
||||
<WarningsNotAsErrors>$(WarningsNotAsErrors);CS1591</WarningsNotAsErrors>
|
||||
|
||||
<!-- xUnit1004 = warns about skipped tests. Make this a non-fatal build warning. -->
|
||||
<WarningsNotAsErrors>$(WarningsNotAsErrors);xUnit1004</WarningsNotAsErrors>
|
||||
|
||||
<!-- Ignore specific Roslyn warnings for now, https://github.com/dotnet/aspnetcore/issues/22090 -->
|
||||
<NoWarn Condition="'$(IsAnalyzersProject)' == 'true'">$(NoWarn);RS1024;RS1025;RS1026</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Source code settings -->
|
||||
|
|
@ -84,7 +130,7 @@
|
|||
<RuntimeInstallerBaseName>aspnetcore-runtime</RuntimeInstallerBaseName>
|
||||
<TargetingPackInstallerBaseName>aspnetcore-targeting-pack</TargetingPackInstallerBaseName>
|
||||
|
||||
<!-- Produce targeting pack installers/packages once per major.minor except in extraordinary cases i.e. 3.1.3. -->
|
||||
<!-- Produce targeting pack installers/packages once per major.minor. -->
|
||||
<IsTargetingPackBuilding Condition=" '$(DotNetBuildFromSource)' == 'true' ">false</IsTargetingPackBuilding>
|
||||
<IsTargetingPackBuilding
|
||||
Condition=" '$(IsTargetingPackBuilding)' == '' AND '$(AspNetCorePatchVersion)' != '0' ">false</IsTargetingPackBuilding>
|
||||
|
|
@ -98,17 +144,23 @@
|
|||
<InternalInstallerBaseName>$(RuntimeInstallerBaseName)-internal</InternalInstallerBaseName>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(DisablePubternalApiCheck)' != 'true' AND '$(IsTestProject)' != 'true' AND '$(IsBenchmarkProject)' != 'true' AND '$(IsTestAssetProject)' != 'true'">
|
||||
<PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" IsImplicitlyDefined="true" />
|
||||
<ItemGroup
|
||||
Condition="'$(DisablePubternalApiCheck)' != 'true'
|
||||
AND '$(IsTestProject)' != 'true'
|
||||
AND '$(IsBenchmarkProject)' != 'true'
|
||||
AND '$(IsTestAssetProject)' != 'true'
|
||||
AND '$(MSBuildProjectName)' != 'Internal.AspNetCore.Analyzers'
|
||||
AND '$(MSBuildProjectExtension)' == '.csproj'">
|
||||
<ProjectReference
|
||||
Include="$(RepoRoot)src\Analyzers\Internal.AspNetCore.Analyzers\src\Internal.AspNetCore.Analyzers.csproj"
|
||||
PrivateAssets="All"
|
||||
Version="$(InternalAspNetCoreAnalyzersPackageVersion)"
|
||||
IsImplicitlyDefined="true" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Compilation options which apply to all languages. Language-specific options should be set in eng/targets/$(lang).Common.props -->
|
||||
<PropertyGroup>
|
||||
<TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('Windows'))">win</TargetOsName>
|
||||
<TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">osx</TargetOsName>
|
||||
<TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('Linux'))">linux</TargetOsName>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
|
||||
<TargetRuntimeIdentifier>$(TargetOsName)-$(TargetArchitecture)</TargetRuntimeIdentifier>
|
||||
<BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant())</BuildArchitecture>
|
||||
|
||||
<!-- This defines the list of RIDs supported by the ASP.NET Core shared framework. -->
|
||||
<SupportedRuntimeIdentifiers>
|
||||
|
|
@ -161,7 +213,7 @@
|
|||
<!-- Projects which reference Microsoft.AspNetCore.Mvc.Testing should import this targets file to ensure dependency .deps.json files are copied into test output. -->
|
||||
<MvcTestingTargets>$(MSBuildThisFileDirectory)src\Mvc\Mvc.Testing\src\Microsoft.AspNetCore.Mvc.Testing.targets</MvcTestingTargets>
|
||||
<!-- IIS native projects can only be built on Windows for x86 and x64. -->
|
||||
<BuildIisNativeProjects Condition="'$(BuildNative)' == 'true' AND '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64')">true</BuildIisNativeProjects>
|
||||
<BuildIisNativeProjects Condition=" '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64') ">true</BuildIisNativeProjects>
|
||||
<!-- This property is shared by several projects to layout the AspNetCore.App targeting pack for installers -->
|
||||
<TargetingPackLayoutRoot>$(ArtifactsObjDir)TargetingPack.Layout\$(Configuration)\</TargetingPackLayoutRoot>
|
||||
<!-- This property is shared by several projects to layout the AspNetCore.App shared framework for installers -->
|
||||
|
|
@ -182,5 +234,6 @@
|
|||
<Import Project="eng\targets\CSharp.Common.props" Condition="'$(MSBuildProjectExtension)' == '.csproj'" />
|
||||
<Import Project="eng\targets\Wix.Common.props" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
|
||||
<Import Project="eng\targets\Npm.Common.props" Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
|
||||
<Import Project="eng\targets\Helix.props" Condition="'$(IsTestProject)' == 'true'" />
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,17 @@
|
|||
<!-- Analyzer package are needed in source build for WebSDK -->
|
||||
<ExcludeFromSourceBuild
|
||||
Condition="'$(ExcludeFromSourceBuild)' == '' and '$(DotNetBuildFromSource)' == 'true' and '$(IsAspNetCoreApp)' != 'true' and '$(IsReferenceAssemblyProject)' != 'true' and '$(IsAnalyzersProject)' != 'true'">true</ExcludeFromSourceBuild>
|
||||
|
||||
<!-- If the user has specified that they want to skip building any test related projects with SkipTestBuild,
|
||||
suppress all targets for TestProjects using ExcludeFromBuild. -->
|
||||
<ExcludeFromBuild Condition="'$(IsPackable)' != 'true' and
|
||||
'$(SkipTestBuild)' == 'true' and
|
||||
('$(IsTestProject)' == 'true' or
|
||||
'$(IsUnitTestProject)' == 'true' or
|
||||
'$(IsTestAssetProject)' == 'true' or
|
||||
'$(IsBenchmarkProject)' == 'true' or
|
||||
'$(IsSampleProject)' == 'true' or
|
||||
'$(IsSpecificationTestProject)' == 'true')">true</ExcludeFromBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="Resx settings">
|
||||
|
|
@ -102,6 +113,7 @@
|
|||
<IsPackable Condition="'$(IsPackable)' == '' ">false</IsPackable>
|
||||
|
||||
<BuildHelixPayload Condition="'$(BuildHelixPayload)' == '' AND '$(IsTestProject)' == 'true'">true</BuildHelixPayload>
|
||||
<SkipTests Condition="'$(SkipHelixReadyTests)' == 'true' AND '$(BuildHelixPayload)' == 'true'">true</SkipTests>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
|
@ -116,8 +128,9 @@
|
|||
<Compile Include="$(SharedSourceRoot)ReferenceAssemblyInfo.cs" LinkBase="Properties" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Language)' == 'C#' AND '$(IsReferenceAssemblyProject)' == 'true'">
|
||||
<PropertyGroup Condition="'$(Language)' == 'C#'">
|
||||
<!-- Reference assemblies should always use Major.Minor.0.0 for assembly versions even during servicing. Only the package version should be updated. -->
|
||||
<!-- Pinning the implementation assemblies at Major.Minor.0.0 as we figure out compiling against ref assemblies. -->
|
||||
<AssemblyVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0.0</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
@ -140,10 +153,6 @@
|
|||
<TargetingPackVersion Condition="'$(IsServicingBuild)' != 'true'">$(SharedFxVersion)</TargetingPackVersion>
|
||||
</KnownFrameworkReference>
|
||||
|
||||
<KnownFrameworkReference Update="NETStandard.Library">
|
||||
<TargetingPackVersion Condition="'%(TargetFramework)' == 'netstandard2.1' and '$(IsServicingBuild)' != 'true'">$(NETStandardLibraryRefPackageVersion)</TargetingPackVersion>
|
||||
</KnownFrameworkReference>
|
||||
|
||||
<!-- Track compiler separately from Arcade.-->
|
||||
<PackageReference Include="Microsoft.Net.Compilers.Toolset"
|
||||
Version="$(MicrosoftNetCompilersToolsetPackageVersion)"
|
||||
|
|
@ -172,5 +181,8 @@
|
|||
<Import Project="eng\targets\Wix.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.wixproj'" />
|
||||
<Import Project="eng\targets\Npm.Common.targets" Condition="'$(MSBuildProjectExtension)' == '.npmproj'" />
|
||||
<Import Project="eng\targets\ReferenceAssembly.targets" Condition=" $(HasReferenceAssembly) " />
|
||||
<Import Project="eng\targets\Helix.targets" Condition="'$(IsTestProject)' == 'true'" />
|
||||
<Import Project="eng\targets\FunctionalTestAsset.targets" Condition="'$(IsTestAssetProject)' == 'true'" />
|
||||
<Import Project="eng\targets\FunctionalTestWithAssets.targets" Condition="'$(ContainsFunctionalTestAssets)' == 'true'" />
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
12
NuGet.config
12
NuGet.config
|
|
@ -3,12 +3,16 @@
|
|||
<packageSources>
|
||||
<clear />
|
||||
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
|
||||
<add key="darc-pub-dotnet-corefx-8a3ffed" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-corefx-8a3ffed5/nuget/v3/index.json" />
|
||||
<add key="darc-pub-dotnet-blazor-cc44960" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-blazor-cc449601/nuget/v3/index.json" />
|
||||
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
|
||||
<add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
|
||||
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
|
||||
<add key="dotnet3.1" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1/nuget/v3/index.json" />
|
||||
<add key="dotnet3.1-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json" />
|
||||
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
|
||||
<add key="dotnet5" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
|
||||
<add key="dotnet5-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json" />
|
||||
<add key="roslyn" value="https://dotnet.myget.org/F/roslyn/api/v3/index.json" />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||
<add key="roslyn-tools" value="https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json" />
|
||||
<!-- Used for the SiteExtension 3.1 bits that are included in the 5.0 build -->
|
||||
<add key="dotnet31-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3.1-transport/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
|
|
|
|||
12
README.md
12
README.md
|
|
@ -1,7 +1,7 @@
|
|||
ASP.NET Core
|
||||
============
|
||||
|
||||
ASP.NET Core is an open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT apps and mobile backends. ASP.NET Core apps can run on .NET Core or on the full .NET Framework. It was architected to provide an optimized development framework for apps that are deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac and Linux. [Learn more about ASP.NET Core](https://docs.microsoft.com/aspnet/core/).
|
||||
ASP.NET Core is an open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT apps and mobile backends. ASP.NET Core apps run on [.NET Core](https://dot.net), a free, cross-platform and open-source application runtime. It was architected to provide an optimized development framework for apps that are deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac and Linux. [Learn more about ASP.NET Core](https://docs.microsoft.com/aspnet/core/).
|
||||
|
||||
## Get Started
|
||||
|
||||
|
|
@ -9,6 +9,8 @@ Follow the [Getting Started](https://docs.microsoft.com/aspnet/core/getting-star
|
|||
|
||||
Also check out the [.NET Homepage](https://www.microsoft.com/net) for released versions of .NET, getting started guides, and learning resources.
|
||||
|
||||
See the [Issue Management Policies](https://github.com/dotnet/aspnetcore/blob/master/docs/IssueManagementPolicies.md) document for more information on how we handle incoming issues.
|
||||
|
||||
## How to Engage, Contribute, and Give Feedback
|
||||
|
||||
Some of the best ways to contribute are to try things out, file issues, join in design conversations,
|
||||
|
|
@ -17,7 +19,7 @@ and make pull-requests.
|
|||
* [Download our latest daily builds](./docs/DailyBuilds.md)
|
||||
* Follow along with the development of ASP.NET Core:
|
||||
* [Community Standup](https://live.asp.net): The community standup is held every week and streamed live to YouTube. You can view past standups in the linked playlist.
|
||||
* [Roadmap](https://github.com/aspnet/AspNetCore/wiki/Roadmap): The schedule and milestone themes for ASP.NET Core.
|
||||
* [Roadmap](https://github.com/dotnet/aspnetcore/wiki/Roadmap): The schedule and milestone themes for ASP.NET Core.
|
||||
* [Build ASP.NET Core source code](./docs/BuildFromSource.md)
|
||||
* Check out the [contributing](CONTRIBUTING.md) page to see the best places to log issues and start discussions.
|
||||
|
||||
|
|
@ -30,9 +32,9 @@ Security issues and bugs should be reported privately, via email, to the Microso
|
|||
These are some other repos for related projects:
|
||||
|
||||
* [Documentation](https://github.com/aspnet/Docs) - documentation sources for https://docs.microsoft.com/aspnet/core/
|
||||
* [Entity Framework Core](https://github.com/aspnet/EntityFrameworkCore) - data access technology
|
||||
* [Extensions](https://github.com/aspnet/Extensions) - Logging, configuration, dependency injection, and more.
|
||||
* [Entity Framework Core](https://github.com/dotnet/efcore) - data access technology
|
||||
* [Extensions](https://github.com/dotnet/extensions) - Logging, configuration, dependency injection, and more.
|
||||
|
||||
## Code of conduct
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
||||
See [CODE-OF-CONDUCT](./CODE-OF-CONDUCT.md)
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ The .NET Core and ASP.NET Core support policy, including supported versions can
|
|||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com.
|
||||
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) through https://msrc.microsoft.com or by emailing secure@microsoft.com.
|
||||
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. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://technet.microsoft.com/en-us/security/ff852094.aspx).
|
||||
original message. Further information, including the MSRC PGP key, can be found in the [MSRC Report an Issue FAQ](https://www.microsoft.com/en-us/msrc/faqs-report-an-issue).
|
||||
|
||||
Reports via MSRC may qualify for the .NET Core Bug Bounty. Details of the .NET Core Bug Bounty including terms and conditions are at [https://aka.ms/corebounty](https://aka.ms/corebounty).
|
||||
|
||||
|
|
|
|||
|
|
@ -189,3 +189,31 @@ 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.
|
||||
|
||||
License notice for corefx
|
||||
|
||||
------------------------------------------------
|
||||
|
||||
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.
|
||||
|
|
|
|||
165
build.ps1
165
build.ps1
|
|
@ -54,7 +54,8 @@ You can also use -NoBuildManaged to suppress this project type.
|
|||
|
||||
.PARAMETER BuildNative
|
||||
Build native projects (C++).
|
||||
You can also use -NoBuildNative to suppress this project type.
|
||||
This is the default for x64 and x86 builds but useful when you want to build _only_ native projects.
|
||||
You can use -NoBuildNative to suppress this project type.
|
||||
|
||||
.PARAMETER BuildNodeJS
|
||||
Build NodeJS projects (TypeScript, JS).
|
||||
|
|
@ -71,6 +72,9 @@ You can also use -NoBuildInstallers to suppress this project type.
|
|||
.PARAMETER BinaryLog
|
||||
Enable the binary logger
|
||||
|
||||
.PARAMETER ExcludeCIBinarylog
|
||||
Don't output binary log by default in CI builds (short: -nobl).
|
||||
|
||||
.PARAMETER Verbosity
|
||||
MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
|
||||
|
||||
|
|
@ -86,8 +90,21 @@ Key for feed that can be used when downloading .NET runtimes
|
|||
.EXAMPLE
|
||||
Building both native and managed projects.
|
||||
|
||||
build.ps1
|
||||
|
||||
or
|
||||
|
||||
build.ps1 -BuildManaged
|
||||
|
||||
or
|
||||
|
||||
build.ps1 -BuildManaged -BuildNative
|
||||
|
||||
.EXAMPLE
|
||||
Build only native projects.
|
||||
|
||||
build.ps1 -BuildNative
|
||||
|
||||
.EXAMPLE
|
||||
Building a subfolder of code.
|
||||
|
||||
|
|
@ -99,7 +116,7 @@ Running tests.
|
|||
build.ps1 -test
|
||||
|
||||
.LINK
|
||||
Online version: https://github.com/aspnet/AspNetCore/blob/master/docs/BuildFromSource.md
|
||||
Online version: https://github.com/dotnet/aspnetcore/blob/master/docs/BuildFromSource.md
|
||||
#>
|
||||
[CmdletBinding(PositionalBinding = $false, DefaultParameterSetName='Groups')]
|
||||
param(
|
||||
|
|
@ -143,14 +160,11 @@ param(
|
|||
|
||||
[switch]$NoBuildRepoTasks,
|
||||
|
||||
# By default, Windows builds will use MSBuild.exe. Passing this will force the build to run on
|
||||
# dotnet.exe instead, which may cause issues if you invoke build on a project unsupported by
|
||||
# MSBuild for .NET Core
|
||||
[switch]$ForceCoreMsbuild,
|
||||
|
||||
# Diagnostics
|
||||
[Alias('bl')]
|
||||
[switch]$BinaryLog,
|
||||
[Alias('nobl')]
|
||||
[switch]$ExcludeCIBinarylog,
|
||||
[Alias('v')]
|
||||
[string]$Verbosity = 'minimal',
|
||||
[switch]$DumpProcesses, # Capture all running processes and dump them to a file.
|
||||
|
|
@ -182,28 +196,22 @@ if ($DumpProcesses -or $CI) {
|
|||
}
|
||||
|
||||
# Project selection
|
||||
if ($All) {
|
||||
$MSBuildArguments += '/p:BuildAllProjects=true'
|
||||
}
|
||||
elseif ($Projects) {
|
||||
if ($Projects) {
|
||||
if (![System.IO.Path]::IsPathRooted($Projects))
|
||||
{
|
||||
$Projects = Join-Path (Get-Location) $Projects
|
||||
}
|
||||
$MSBuildArguments += "/p:ProjectToBuild=$Projects"
|
||||
}
|
||||
# When adding new sub-group build flags, add them to this check.
|
||||
elseif((-not $BuildNative) -and (-not $BuildManaged) -and (-not $BuildNodeJS) -and (-not $BuildInstallers) -and (-not $BuildJava)) {
|
||||
Write-Warning "No default group of projects was specified, so building the 'managed' and its dependent subsets of projects. Run ``build.cmd -help`` for more details."
|
||||
|
||||
# This goal of this is to pick a sensible default for `build.cmd` with zero arguments.
|
||||
# Now that we support subfolder invokations of build.cmd, we will be pushing to have build.cmd build everything (-all) by default
|
||||
elseif (-not ($All -or $BuildNative -or $BuildManaged -or $BuildNodeJS -or $BuildInstallers -or $BuildJava)) {
|
||||
Write-Warning "No default group of projects was specified, so building the managed and native projects and their dependencies. Run ``build.cmd -help`` for more details."
|
||||
|
||||
# The goal of this is to pick a sensible default for `build.cmd` with zero arguments.
|
||||
$BuildManaged = $true
|
||||
}
|
||||
|
||||
if ($BuildManaged -or ($All -and (-not $NoBuildManaged))) {
|
||||
if ((-not $BuildNodeJS) -and (-not $NoBuildNodeJS)) {
|
||||
if (-not ($BuildNodeJS -or $NoBuildNodeJS)) {
|
||||
$node = Get-Command node -ErrorAction Ignore -CommandType Application
|
||||
|
||||
if ($node) {
|
||||
|
|
@ -221,20 +229,8 @@ if ($BuildManaged -or ($All -and (-not $NoBuildManaged))) {
|
|||
}
|
||||
}
|
||||
|
||||
if ($BuildInstallers) { $MSBuildArguments += "/p:BuildInstallers=true" }
|
||||
if ($BuildManaged) { $MSBuildArguments += "/p:BuildManaged=true" }
|
||||
if ($BuildNative) { $MSBuildArguments += "/p:BuildNative=true" }
|
||||
if ($BuildNodeJS) { $MSBuildArguments += "/p:BuildNodeJS=true" }
|
||||
if ($BuildJava) { $MSBuildArguments += "/p:BuildJava=true" }
|
||||
|
||||
if ($NoBuildDeps) { $MSBuildArguments += "/p:BuildProjectReferences=false" }
|
||||
|
||||
if ($NoBuildInstallers) { $MSBuildArguments += "/p:BuildInstallers=false" }
|
||||
if ($NoBuildManaged) { $MSBuildArguments += "/p:BuildManaged=false" }
|
||||
if ($NoBuildNative) { $MSBuildArguments += "/p:BuildNative=false" }
|
||||
if ($NoBuildNodeJS) { $MSBuildArguments += "/p:BuildNodeJS=false" }
|
||||
if ($NoBuildJava) { $MSBuildArguments += "/p:BuildJava=false" }
|
||||
|
||||
$RunBuild = if ($NoBuild) { $false } else { $true }
|
||||
|
||||
# Run restore by default unless -NoRestore is set.
|
||||
|
|
@ -247,9 +243,7 @@ $RunRestore = if ($NoRestore) { $false }
|
|||
# Target selection
|
||||
$MSBuildArguments += "/p:Restore=$RunRestore"
|
||||
$MSBuildArguments += "/p:Build=$RunBuild"
|
||||
if (-not $RunBuild) {
|
||||
$MSBuildArguments += "/p:NoBuild=true"
|
||||
}
|
||||
if (-not $RunBuild) { $MSBuildArguments += "/p:NoBuild=true" }
|
||||
$MSBuildArguments += "/p:Pack=$Pack"
|
||||
$MSBuildArguments += "/p:Test=$Test"
|
||||
$MSBuildArguments += "/p:Sign=$Sign"
|
||||
|
|
@ -272,6 +266,42 @@ if ($DotNetRuntimeSourceFeed -or $DotNetRuntimeSourceFeedKey) {
|
|||
$ToolsetBuildArguments += $runtimeFeedKeyArg
|
||||
}
|
||||
|
||||
# Split build categories between dotnet msbuild and desktop msbuild. Use desktop msbuild as little as possible.
|
||||
[string[]]$dotnetBuildArguments = $MSBuildArguments
|
||||
if ($All) { $dotnetBuildArguments += '/p:BuildAllProjects=true' }
|
||||
if ($Projects) {
|
||||
if ($BuildNative) {
|
||||
$MSBuildArguments += "/p:ProjectToBuild=$Projects"
|
||||
} else {
|
||||
$dotnetBuildArguments += "/p:ProjectToBuild=$Projects"
|
||||
}
|
||||
}
|
||||
|
||||
if ($NoBuildInstallers) { $MSBuildArguments += "/p:BuildInstallers=false"; $BuildInstallers = $false }
|
||||
if ($BuildInstallers) { $MSBuildArguments += "/p:BuildInstallers=true" }
|
||||
|
||||
# Build native projects by default unless -NoBuildNative was specified.
|
||||
$specifiedBuildNative = $BuildNative
|
||||
$BuildNative = $true
|
||||
if ($NoBuildNative) { $MSBuildArguments += "/p:BuildNative=false"; $BuildNative = $false }
|
||||
if ($BuildNative) { $MSBuildArguments += "/p:BuildNative=true"}
|
||||
|
||||
if ($NoBuildJava) { $dotnetBuildArguments += "/p:BuildJava=false"; $BuildJava = $false }
|
||||
if ($BuildJava) { $dotnetBuildArguments += "/p:BuildJava=true" }
|
||||
if ($NoBuildManaged) { $dotnetBuildArguments += "/p:BuildManaged=false"; $BuildManaged = $false }
|
||||
if ($BuildManaged) { $dotnetBuildArguments += "/p:BuildManaged=true" }
|
||||
if ($NoBuildNodeJS) { $dotnetBuildArguments += "/p:BuildNodeJS=false"; $BuildNodeJS = $false }
|
||||
if ($BuildNodeJS) { $dotnetBuildArguments += "/p:BuildNodeJS=true" }
|
||||
|
||||
# Don't bother with two builds if just one will build everything. Ignore super-weird cases like
|
||||
# "-Projects ... -NoBuildJava -NoBuildManaged -NoBuildNodeJS". An empty `./build.ps1` command will build both
|
||||
# managed and native projects.
|
||||
$performDesktopBuild = ($BuildInstallers -or $BuildNative) -and `
|
||||
-not $Architecture.StartsWith("arm", [System.StringComparison]::OrdinalIgnoreCase)
|
||||
$performDotnetBuild = $BuildJava -or $BuildManaged -or $BuildNodeJS -or `
|
||||
($All -and -not ($NoBuildJava -and $NoBuildManaged -and $NoBuildNodeJS)) -or `
|
||||
($Projects -and -not ($BuildInstallers -or $specifiedBuildNative))
|
||||
|
||||
$foundJdk = $false
|
||||
$javac = Get-Command javac -ErrorAction Ignore -CommandType Application
|
||||
$localJdkPath = "$PSScriptRoot\.tools\jdk\win-x64\"
|
||||
|
|
@ -328,26 +358,19 @@ if (-not $foundJdk -and $RunBuild -and ($All -or $BuildJava) -and -not $NoBuildJ
|
|||
# Initialize global variables need to be set before the import of Arcade is imported
|
||||
$restore = $RunRestore
|
||||
|
||||
# Though VS Code may indicate $nodeReuse, $warnAsError and $msbuildEngine are unused, tools.ps1 uses them.
|
||||
# Though VS Code may indicate $nodeReuse and $msbuildEngine are unused, tools.ps1 uses them.
|
||||
|
||||
# Disable node reuse - Workaround perpetual issues in node reuse and custom task assemblies
|
||||
$nodeReuse = $false
|
||||
$env:MSBUILDDISABLENODEREUSE=1
|
||||
|
||||
# Our build often has warnings that we can't fix, like "MSB3026: Could not copy" due to race
|
||||
# conditions in building C++
|
||||
# Fixing this is tracked by https://github.com/aspnet/AspNetCore-Internal/issues/601
|
||||
$warnAsError = $false
|
||||
# Use `dotnet msbuild` by default
|
||||
$msbuildEngine = 'dotnet'
|
||||
|
||||
if ($ForceCoreMsbuild) {
|
||||
$msbuildEngine = 'dotnet'
|
||||
}
|
||||
|
||||
# Workaround Arcade check which asserts BinaryLog is true on CI.
|
||||
# We always use binlogs on CI, but we customize the name of the log file
|
||||
$tmpBinaryLog = $BinaryLog
|
||||
if ($CI) {
|
||||
$BinaryLog = $true
|
||||
# Ensure passing neither -bl nor -nobl on CI avoids errors in tools.ps1. This is needed because both parameters are
|
||||
# $false by default i.e. they always exist. (We currently avoid binary logs but that is made visible in the YAML.)
|
||||
if ($CI -and -not $excludeCIBinarylog) {
|
||||
$binaryLog = $true
|
||||
}
|
||||
|
||||
# tools.ps1 corrupts global state, so reset these values in case they carried over from a previous build
|
||||
|
|
@ -359,8 +382,25 @@ Remove-Item variable:global:_MSBuildExe -ea Ignore
|
|||
# Import Arcade
|
||||
. "$PSScriptRoot/eng/common/tools.ps1"
|
||||
|
||||
if ($tmpBinaryLog) {
|
||||
$MSBuildArguments += "/bl:$LogDir/Build.binlog"
|
||||
# Add default .binlog location if not already on the command line. tools.ps1 does not handle this; it just checks
|
||||
# $BinaryLog, $CI and $ExcludeCIBinarylog values for an error case. But tools.ps1 provides a nice function to help.
|
||||
if ($BinaryLog) {
|
||||
$bl = GetMSBuildBinaryLogCommandLineArgument($MSBuildArguments)
|
||||
if (-not $bl) {
|
||||
$dotnetBuildArguments += "/bl:" + (Join-Path $LogDir "Build.binlog")
|
||||
$MSBuildArguments += "/bl:" + (Join-Path $LogDir "Build.native.binlog")
|
||||
$ToolsetBuildArguments += "/bl:" + (Join-Path $LogDir "Build.repotasks.binlog")
|
||||
} else {
|
||||
# Use a different binary log path when running desktop msbuild if doing both builds.
|
||||
if ($performDesktopBuild -and $performDotnetBuild) {
|
||||
$MSBuildArguments += "/bl:" + [System.IO.Path]::ChangeExtension($bl, "native.binlog")
|
||||
}
|
||||
|
||||
$ToolsetBuildArguments += "/bl:" + [System.IO.Path]::ChangeExtension($bl, "repotasks.binlog")
|
||||
}
|
||||
} elseif ($CI) {
|
||||
# Ensure the artifacts/log directory isn't empty to avoid warnings.
|
||||
New-Item (Join-Path $LogDir "empty.log") -ItemType File -ErrorAction SilentlyContinue >$null
|
||||
}
|
||||
|
||||
# Capture MSBuild crash logs
|
||||
|
|
@ -368,13 +408,6 @@ $env:MSBUILDDEBUGPATH = $LogDir
|
|||
|
||||
$local:exit_code = $null
|
||||
try {
|
||||
# Import custom tools configuration, if present in the repo.
|
||||
# Note: Import in global scope so that the script set top-level variables without qualification.
|
||||
$configureToolsetScript = Join-Path $EngRoot "configure-toolset.ps1"
|
||||
if (Test-Path $configureToolsetScript) {
|
||||
. $configureToolsetScript
|
||||
}
|
||||
|
||||
# Set this global property so Arcade will always initialize the toolset. The error message you get when you build on a clean machine
|
||||
# with -norestore is not obvious about what to do to fix it. As initialization takes very little time, we think always initializing
|
||||
# the toolset is a better default behavior.
|
||||
|
|
@ -390,6 +423,8 @@ try {
|
|||
}
|
||||
|
||||
if (-not $NoBuildRepoTasks) {
|
||||
Write-Host
|
||||
|
||||
MSBuild $toolsetBuildProj `
|
||||
/p:RepoRoot=$RepoRoot `
|
||||
/p:Projects=$EngRoot\tools\RepoTasks\RepoTasks.csproj `
|
||||
|
|
@ -400,9 +435,21 @@ try {
|
|||
@ToolsetBuildArguments
|
||||
}
|
||||
|
||||
MSBuild $toolsetBuildProj `
|
||||
/p:RepoRoot=$RepoRoot `
|
||||
@MSBuildArguments
|
||||
if ($performDesktopBuild) {
|
||||
Write-Host
|
||||
Remove-Item variable:global:_BuildTool -ErrorAction Ignore
|
||||
$msbuildEngine = 'vs'
|
||||
|
||||
MSBuild $toolsetBuildProj /p:RepoRoot=$RepoRoot @MSBuildArguments
|
||||
}
|
||||
|
||||
if ($performDotnetBuild) {
|
||||
Write-Host
|
||||
Remove-Item variable:global:_BuildTool -ErrorAction Ignore
|
||||
$msbuildEngine = 'dotnet'
|
||||
|
||||
MSBuild $toolsetBuildProj /p:RepoRoot=$RepoRoot @dotnetBuildArguments
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host $_.ScriptStackTrace
|
||||
|
|
|
|||
62
build.sh
62
build.sh
|
|
@ -12,7 +12,8 @@ YELLOW="\033[0;33m"
|
|||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
target_os_name=''
|
||||
ci=false
|
||||
use_default_binary_log=false
|
||||
binary_log=false
|
||||
exclude_ci_binary_log=false
|
||||
verbosity='minimal'
|
||||
run_restore=''
|
||||
run_build=true
|
||||
|
|
@ -65,7 +66,7 @@ Options:
|
|||
--no-build-repo-tasks Suppress building RepoTasks.
|
||||
|
||||
--all Build all project types.
|
||||
--[no-]build-native Build native projects (C, C++).
|
||||
--[no-]build-native Build native projects (C, C++). Ignored in most cases i.e. with `dotnet msbuild`.
|
||||
--[no-]build-managed Build managed projects (C#, F#, VB).
|
||||
--[no-]build-nodejs Build NodeJS projects (TypeScript, JS).
|
||||
--[no-]build-java Build Java projects.
|
||||
|
|
@ -73,8 +74,9 @@ Options:
|
|||
|
||||
--ci Apply CI specific settings and environment variables.
|
||||
--binarylog|-bl Use a binary logger
|
||||
--excludeCIBinarylog Don't output binary log by default in CI builds (short: -nobl).
|
||||
--verbosity|-v MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
|
||||
|
||||
|
||||
--dotnet-runtime-source-feed Additional feed that can be used when downloading .NET runtimes
|
||||
--dotnet-runtime-source-feed-key Key for feed that can be used when downloading .NET runtimes
|
||||
|
||||
|
|
@ -202,7 +204,10 @@ while [[ $# -gt 0 ]]; do
|
|||
ci=true
|
||||
;;
|
||||
-binarylog|-bl)
|
||||
use_default_binary_log=true
|
||||
binary_log=true
|
||||
;;
|
||||
-excludeCIBinarylog|-nobl)
|
||||
exclude_ci_binary_log=true
|
||||
;;
|
||||
-dotnet-runtime-source-feed|-dotnetruntimesourcefeed)
|
||||
shift
|
||||
|
|
@ -223,9 +228,11 @@ done
|
|||
|
||||
if [ "$build_all" = true ]; then
|
||||
msbuild_args[${#msbuild_args[*]}]="-p:BuildAllProjects=true"
|
||||
elif [ ! -z "$build_projects" ]; then
|
||||
fi
|
||||
|
||||
if [ ! -z "$build_projects" ]; then
|
||||
msbuild_args[${#msbuild_args[*]}]="-p:ProjectToBuild=$build_projects"
|
||||
elif [ -z "$build_managed" ] && [ -z "$build_nodejs" ] && [ -z "$build_java" ] && [ -z "$build_native" ] && [ -z "$build_installers" ]; then
|
||||
elif [ "$build_all" != true ] && [ -z "$build_managed$build_nodejs$build_java$build_native$build_installers" ]; then
|
||||
# This goal of this is to pick a sensible default for `build.sh` with zero arguments.
|
||||
# We believe the most common thing our contributors will work on is C#, so if no other build group was picked, build the C# projects.
|
||||
__warn "No default group of projects was specified, so building the 'managed' and its dependent subset of projects. Run ``build.sh --help`` for more details."
|
||||
|
|
@ -281,13 +288,9 @@ if [ -z "$configuration" ]; then
|
|||
fi
|
||||
msbuild_args[${#msbuild_args[*]}]="-p:Configuration=$configuration"
|
||||
|
||||
# Set verbosity
|
||||
echo "Setting msbuild verbosity to $verbosity"
|
||||
msbuild_args[${#msbuild_args[*]}]="-verbosity:$verbosity"
|
||||
|
||||
# Set up additional runtime args
|
||||
toolset_build_args=()
|
||||
if [ ! -z "$dotnet_runtime_source_feed" ] || [ ! -z "$dotnet_runtime_source_feed_key" ]; then
|
||||
if [ ! -z "$dotnet_runtime_source_feed$dotnet_runtime_source_feed_key" ]; then
|
||||
runtimeFeedArg="/p:DotNetRuntimeSourceFeed=$dotnet_runtime_source_feed"
|
||||
runtimeFeedKeyArg="/p:DotNetRuntimeSourceFeedKey=$dotnet_runtime_source_feed_key"
|
||||
msbuild_args[${#msbuild_args[*]}]=$runtimeFeedArg
|
||||
|
|
@ -303,14 +306,10 @@ restore=$run_restore
|
|||
nodeReuse=false
|
||||
export MSBUILDDISABLENODEREUSE=1
|
||||
|
||||
# Our build often has warnings that we can't fix
|
||||
# Fixing this is tracked by https://github.com/aspnet/AspNetCore-Internal/issues/601
|
||||
warn_as_error=false
|
||||
|
||||
# Workaround Arcade check which asserts BinaryLog is true on CI.
|
||||
# We always use binlogs on CI, but we customize the name of the log file
|
||||
if [ "$ci" = true ]; then
|
||||
binary_log=true
|
||||
# Ensure passing neither --bl nor --nobl on CI avoids errors in tools.sh. This is needed because we set both variables
|
||||
# to false by default i.e. they always exist. (We currently avoid binary logs but that is made visible in the YAML.)
|
||||
if [[ "$ci" == true && "$exclude_ci_binary_log" == false ]]; then
|
||||
binary_log=true
|
||||
fi
|
||||
|
||||
# increase file descriptor limit on macOS
|
||||
|
|
@ -321,19 +320,28 @@ fi
|
|||
# Import Arcade
|
||||
. "$DIR/eng/common/tools.sh"
|
||||
|
||||
if [ "$use_default_binary_log" = true ]; then
|
||||
msbuild_args[${#msbuild_args[*]}]="-bl:\"$log_dir/Build.binlog\""
|
||||
# Add default .binlog location if not already on the command line. tools.sh does not handle this; it just checks
|
||||
# $binary_log, $ci and $exclude_ci_binary_log values for an error case.
|
||||
if [[ "$binary_log" == true ]]; then
|
||||
found=false
|
||||
for arg in "${msbuild_args[@]}"; do
|
||||
opt="$(echo "${arg/#--/-}" | awk '{print tolower($0)}')"
|
||||
if [[ "$opt" == [-/]bl:* || "$opt" == [-/]binarylogger:* ]]; then
|
||||
found=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [[ "$found" == false ]]; then
|
||||
msbuild_args[${#msbuild_args[*]}]="/bl:$log_dir/Build.binlog"
|
||||
fi
|
||||
elif [[ "$ci" == true ]]; then
|
||||
# Ensure the artifacts/log directory isn't empty to avoid warnings.
|
||||
touch "$log_dir/empty.log"
|
||||
fi
|
||||
|
||||
# Capture MSBuild crash logs
|
||||
export MSBUILDDEBUGPATH="$log_dir"
|
||||
|
||||
# Import custom tools configuration, if present in the repo.
|
||||
configure_toolset_script="$eng_root/configure-toolset.sh"
|
||||
if [[ -a "$configure_toolset_script" ]]; then
|
||||
. "$configure_toolset_script"
|
||||
fi
|
||||
|
||||
# Set this global property so Arcade will always initialize the toolset. The error message you get when you build on a clean machine
|
||||
# with -norestore is not obvious about what to do to fix it. As initialization takes very little time, we think always initializing
|
||||
# the toolset is a better default behavior.
|
||||
|
|
|
|||
|
|
@ -133,10 +133,14 @@ docker run \
|
|||
-t \
|
||||
-e TF_BUILD \
|
||||
-e BUILD_NUMBER \
|
||||
-e BUILD_BUILDID \
|
||||
-e SYSTEM_TEAMPROJECT \
|
||||
-e BUILD_BUILDNUMBER \
|
||||
-e BUILD_REPOSITORY_URI \
|
||||
-e BUILD_SOURCEVERSION \
|
||||
-e BUILD_SOURCEBRANCH \
|
||||
-e SYSTEM_DEFINITIONID \
|
||||
-e SYSTEM_TEAMFOUNDATIONCOLLECTIONURI \
|
||||
-e DOTNET_CLI_TELEMETRY_OPTOUT \
|
||||
-e Configuration \
|
||||
-v "$DIR:$DIR" \
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
## Description
|
||||
Starting in 5.0, certain areas within the dotnet/aspnetcore and dotnet/extensions repos will require formal *incremental* API reviews before any PRs that change APIs are merged.
|
||||
|
||||
API changes to the following areas are required to go follow this process:
|
||||
|
||||
* area-azure
|
||||
* area-hosting
|
||||
* area-installers
|
||||
* area-middleware
|
||||
* area-mvc
|
||||
* feature-model-binding
|
||||
* feature-razor-pages
|
||||
* feature-JSONPatch
|
||||
* feature-discovery
|
||||
* feature-formatters
|
||||
* feature-api-explorer
|
||||
* feature-tag-helpers
|
||||
* area-security
|
||||
* area-servers
|
||||
* area-signalr
|
||||
* area-websockets
|
||||
|
||||
## Process
|
||||
The goal of the API Review process is to ensure that the new APIs are following common patterns and the best practices.
|
||||
Also, it's aimed to help and guide engineers towards better API design decisions. People should feel empowered to submit their APIs for review as besides all the benefits it's also a learning and knowledge sharing experience.
|
||||
|
||||
The process is visualized in the below diagram:
|
||||

|
||||
|
||||
|
||||
1. API review process kicks in after the owner for the issue identifies that the work required for the issue will need an API change or addition. In such cases, the issue owner will handle (either himself/herself, or with the community member who has expressed interest in handling the work) driving a design proposal. When working with a community member, the issue owner is responsible for guiding them to an acceptable design.
|
||||
1. If the proposed design adds new APIs, mark those issues with the `api-suggestion` label
|
||||
1. When the issue owner thinks the proposal is in a good shape, he/she marks the issue with `api-ready-for-review` label. Also, the @asp-net-api-reviews team should be notified on the issue.
|
||||
1. The `asp-net-api-reviews` team will host a weekly API review meeting and will review your proposed API change during the next meeting. If you have an API scheduled for review, you must have a representative in the meeting.
|
||||
1. Some API reviews can happen through a shorter process. For these situations, simply ping the API review crew for a quicker review, so that it can happen as a conversation.
|
||||
1. When an API change/suggestion gets approved, the `api-approved` label should be added to the issue.
|
||||
1. The owner of the issue is now free to work on the implementation of the proposed API.
|
||||
1. In case during implementation changes to the original proposal are required, the review should become obsolete and the process should start from the beginning.
|
||||
|
||||
## What Makes an issue/PR "ready-for-review"?
|
||||
|
||||
Before marking an issue as `api-ready-for-review`, make sure that the issue has the following:
|
||||
|
||||
- A short description that will help reviewers not familiar with this area.
|
||||
- The API changes in ref-assembly format. It's fine to link this to the generated ref-assembly-code in the PR. If the changes are to an area that does produce ref-assemblies, please write out what it would look like in ref-assembly format for us to review.
|
||||
|
||||
```txt
|
||||
Good: This is the API for the widget factory, users use it in startup code to
|
||||
configure how their widgets work. We have an overload that accepts URI, but
|
||||
not one that accepts string, so we're adding it for convenience.
|
||||
|
||||
Bad: Adding a string overload for Widget.ConfigureFactory.
|
||||
```
|
||||
|
||||
Note: Ideally all of the following would be in the top comment on an issue, but that's not always possible when the issue was opened by a user. As a rule, we don't edit or replace user comments except for formatting, or if they break the rules. In this case it's fine to post a new comment on the issue, OR to edit the top post and insert a link. If you edit an external contributor's post to add a link make sure you explain why it was done!
|
||||
|
||||
In general, larger changes should have more explanation and context provided, and small changes need less explanation. A really large change or feature-area design should probably come with a lot of explanation: [example](https://github.com/dotnet/aspnetcore/issues/17160)
|
||||
|
||||
### Why do we do this?
|
||||
|
||||
Putting this information in an issue with all of the context makes it possible for discussion to take place before the api-review meeting. Writing things down and posting them online enables remote work as well as our community to give feedback on designs as well. We want to provide enough context for people *working outside that feature area* to understand what the change is about and give meaningful feedback. If you're ready to present an change in the meeting, then you should definitely be ready to explain why it matters.
|
||||
|
||||
We use the ref-assembly format because it's more readable and useful for the kinds of things that come up in api-review discussions. Using a more compact format (without docs and implementations) makes it easier to notice patterns. In the rare case that you have to manually transcribe this format, think of this as you spending a little time to save a lot of others time in the meeting.
|
||||
|
||||
## If you are the "champion" for a community-submitted change
|
||||
|
||||
If you are assigned a community-submitted change to *champion* in our API-review then just put on your pretend pajamas and pretend that it was your change to begin with. Come to the meeting ready to explain why this addition is needed, and why it's the best approach.
|
||||
|
||||
## API Review Meeting
|
||||
|
||||
The API Review meeting should be open to any member of the ASP.NET Core team. And invite will be sent to all the team with pre-booked meeting room and time-slot for these meetings to be hosted. Each API review should include the area owners as mandatory attendees.
|
||||
|
|
@ -1,11 +1,26 @@
|
|||
Build ASP.NET Core from Source
|
||||
==============================
|
||||
# Build ASP.NET Core from Source
|
||||
|
||||
Building ASP.NET Core from source allows you tweak and customize ASP.NET Core, and to contribute your improvements back to the project.
|
||||
Building ASP.NET Core from source allows you to tweak and customize ASP.NET Core, and to contribute your improvements back to the project.
|
||||
|
||||
See https://github.com/aspnet/AspNetCore/labels/area-infrastructure for known issues and to track ongoing work.
|
||||
See <https://github.com/dotnet/aspnetcore/labels/area-infrastructure> for known issues and to track ongoing work.
|
||||
|
||||
## Install pre-requistes
|
||||
## Clone the source code
|
||||
|
||||
ASP.NET Core uses git submodules to include the source from a few other projects.
|
||||
|
||||
For a new copy of the project, run:
|
||||
|
||||
```ps1
|
||||
git clone --recursive https://github.com/dotnet/aspnetcore
|
||||
```
|
||||
|
||||
To update an existing copy, run:
|
||||
|
||||
```ps1
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
## Install pre-requisites
|
||||
|
||||
### Windows
|
||||
|
||||
|
|
@ -14,20 +29,31 @@ Building ASP.NET Core on Windows requires:
|
|||
* Windows 10, version 1803 or newer
|
||||
* At least 10 GB of disk space and a good internet connection (our build scripts download a lot of tools and dependencies)
|
||||
* Visual Studio 2019. <https://visualstudio.com>
|
||||
* To install the exact required components, run [eng/scripts/InstallVisualStudio.ps1](/eng/scripts/InstallVisualStudio.ps1).
|
||||
```ps1
|
||||
PS> ./eng/scripts/InstallVisualStudio.ps1
|
||||
```
|
||||
* To install the exact required components, run [eng/scripts/InstallVisualStudio.ps1](/eng/scripts/InstallVisualStudio.ps1).
|
||||
|
||||
```ps1
|
||||
PS> ./eng/scripts/InstallVisualStudio.ps1
|
||||
```
|
||||
|
||||
However, any Visual Studio 2019 instance that meets the requirements should be fine. See [global.json](/global.json)
|
||||
and [eng/scripts/vs.json](/eng/scripts/vs.json) for those requirements. By default, the script will install Visual Studio Enterprise Edition, however you can use a different edition by passing the `-Edition` flag.
|
||||
* Git. <https://git-scm.org>
|
||||
* NodeJS. LTS version of 10.14.2 or newer <https://nodejs.org>
|
||||
* NodeJS. LTS version of 10.14.2 or newer <https://nodejs.org>.
|
||||
* Install yarn globally (`npm install -g yarn`)
|
||||
* Java Development Kit 11 or newer. Either:
|
||||
* OpenJDK <https://jdk.java.net/>
|
||||
* Oracle's JDK <https://www.oracle.com/technetwork/java/javase/downloads/index.html>
|
||||
* To install a version of the JDK that will only be used by this repo, run [eng/scripts/InstallJdk.ps1](/eng/scripts/InstallJdk.ps1)
|
||||
```ps1
|
||||
PS> ./eng/scripts/InstallJdk.ps1
|
||||
```
|
||||
* Chrome - Selenium-based tests require a version of Chrome to be installed. Download and install it from [https://www.google.com/chrome]
|
||||
* OpenJDK <https://jdk.java.net/>
|
||||
* Oracle's JDK <https://www.oracle.com/technetwork/java/javase/downloads/index.html>
|
||||
* To install a version of the JDK that will only be used by this repo, run [eng/scripts/InstallJdk.ps1](/eng/scripts/InstallJdk.ps1)
|
||||
|
||||
```ps1
|
||||
PS> ./eng/scripts/InstallJdk.ps1
|
||||
```
|
||||
|
||||
However, the build should find any JDK 11 or newer installation on the machine.
|
||||
* Set the `JAVA_HOME` environment variable with the path of the java installation directory if your installation did not do that automatically. (Gradle needs this for execution.)
|
||||
* This will be `RepoRoot/.tools/jdk/win-x64/` if you used the `InstallJdk.ps1` script
|
||||
* This will be `C:/Program FIles/Java/jdk<version>/` if you installed the JDK globally
|
||||
* Chrome - Selenium-based tests require a version of Chrome to be installed. Download and install it from <https://www.google.com/chrome>
|
||||
|
||||
### macOS/Linux
|
||||
|
||||
|
|
@ -36,66 +62,66 @@ Building ASP.NET Core on macOS or Linux requires:
|
|||
* If using macOS, you need macOS Sierra or newer.
|
||||
* If using Linux, you need a machine with all .NET Core Linux prerequisites: <https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites>
|
||||
* At least 10 GB of disk space and a good internet connection (our build scripts download a lot of tools and dependencies)
|
||||
* curl <https://curl.haxx.se> or Wget <https://www.gnu.org/software/wget>
|
||||
* Git <https://git-scm.org>
|
||||
* NodeJS. LTS version of 10.14.2 or newer <https://nodejs.org>
|
||||
* Java Development Kit 11 or newer. Either:
|
||||
* OpenJDK <https://jdk.java.net/>
|
||||
* Oracle's JDK <https://www.oracle.com/technetwork/java/javase/downloads/index.html>
|
||||
* OpenJDK <https://jdk.java.net/>
|
||||
* Oracle's JDK <https://www.oracle.com/technetwork/java/javase/downloads/index.html>
|
||||
|
||||
## Clone the source code
|
||||
|
||||
ASP.NET Core uses git submodules to include source from a few other projects.
|
||||
|
||||
For a new copy of the project, run:
|
||||
```
|
||||
git clone --recursive https://github.com/aspnet/AspNetCore
|
||||
```
|
||||
|
||||
To update an existing copy, run:
|
||||
```
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
**NOTE** some ISPs have been know to use web filtering software that has caused issues with git repository cloning, if you experience issues cloning this repo please review <https://help.github.com/en/github/authenticating-to-github/using-ssh-over-the-https-port>
|
||||
|
||||
## Building in Visual Studio
|
||||
|
||||
Before opening our .sln files in Visual Studio or VS Code, you need to perform the following actions.
|
||||
Before opening our .sln/.slnf files in Visual Studio or VS Code, you need to perform the following actions.
|
||||
|
||||
1. Executing the following on command-line:
|
||||
```
|
||||
|
||||
```ps1
|
||||
.\restore.cmd
|
||||
```
|
||||
This will download required tools and build the entire repository once. At that point, you should be able to open .sln files to work on the projects you care about.
|
||||
|
||||
> :bulb: Pro tip: you will also want to run this command after pulling large sets of changes. On the master branch, we regularly update the versions of .NET Core SDK required to build the repo.
|
||||
This will download the required tools and build the entire repository once. At that point, you should be able
|
||||
to open the .sln file or one of the project specific .slnf files to work on the projects you care about.
|
||||
|
||||
> :bulb: Pro tip: you will also want to run this command after pulling large sets of changes. On the master
|
||||
> branch, we regularly update the versions of .NET Core SDK required to build the repo.
|
||||
> You will need to restart Visual Studio every time we update the .NET Core SDK.
|
||||
> To allow executing the setup script, you may need to update the execution policy on your machine.
|
||||
You can do so by running the `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser` command
|
||||
in PowerShell. For more information on execution policies, you can read the [execution policy docs](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy).
|
||||
|
||||
2. Use the `startvs.cmd` script to open Visual Studio .sln files. This script first sets required environment variables.
|
||||
2. Use the `startvs.cmd` script to open Visual Studio .sln/.slnf files. This script first sets the required
|
||||
environment variables.
|
||||
|
||||
### Solution files
|
||||
|
||||
We don't have a single .sln file for all of ASP.NET Core because Visual Studio doesn't currently handle projects of this scale.
|
||||
Instead, we have many .sln files which include a sub-set of projects. These principles guide how we create and manage .slns:
|
||||
We have a single .sln file for all of ASP.NET Core, but most people don't work with it directly because Visual Studio
|
||||
doesn't currently handle projects of this scale very well.
|
||||
|
||||
1. Solution files are not used by CI or command line build scripts. They are for meant for use by developers only.
|
||||
Instead, we have many Solution Filter (.slnf) files which include a sub-set of projects. See the Visual Studio
|
||||
documentation [here](https://docs.microsoft.com/en-us/visualstudio/ide/filtered-solutions?view=vs-2019) for more
|
||||
information about Solution Filters.
|
||||
|
||||
These principles guide how we create and manage .slnf files:
|
||||
|
||||
1. Solution files are not used by CI or command line build scripts. They are meant for use by developers only.
|
||||
2. Solution files group together projects which are frequently edited at the same time.
|
||||
3. Can't find a solution that has the projects you care about? Feel free to make a PR to add a new .sln file.
|
||||
|
||||
> :bulb: Pro tip: `dotnet new sln` and `dotnet sln` are one of the easiest ways to create and modify solutions.
|
||||
3. Can't find a solution that has the projects you care about? Feel free to make a PR to add a new .slnf file.
|
||||
|
||||
### Common error: CS0006
|
||||
|
||||
Opening solution files and building may produce an error code CS0006 with a message such
|
||||
Opening solution filters and building may produce an error code CS0006 with a message such
|
||||
|
||||
> Error CS0006 Metadata file 'C:\src\aspnet\AspNetCore\artifacts\bin\Microsoft.AspNetCore.Metadata\Debug\netstandard2.0\Microsoft.AspNetCore.Metadata.dll' could not be found
|
||||
|
||||
The cause of this problem is that the solution you are using does not include the project that produces this .dll. This most often occurs after we have added new projects to the repo, but failed to update our .sln files to include the new project. In some cases, it is sometimes the intended behavior of the .sln which has been crafted to only include a subset of projects.
|
||||
The cause of this problem is that the solution filter you are using does not include the project that produces this .dll. This most often occurs after we have added new projects to the repo, but failed to update our .sln/slnf files to include the new project. In some cases, it is sometimes the intended behavior of the .slnf which has been crafted to only include a subset of projects.
|
||||
|
||||
**You can fix this in one of two ways**
|
||||
1. Build the project on command line. In most cases, running `build.cmd` on command line solve this problem.
|
||||
2. Update the solution to include the missing project. You can either do this one by one using `dotnet sln`
|
||||
```
|
||||
dotnet sln add C:\src\AspNetCore\src\Hosting\Abstractions\src\Microsoft.AspNetCore.Hosting.Abstractions.csproj
|
||||
```
|
||||
#### You can fix this in one of three ways
|
||||
|
||||
1. Build the project on command line. In most cases, running `build.cmd` on command line solves this problem.
|
||||
2. If the project is missing from the .sln file entirely, you can use `dotnet sln add` to add it, or else right click on the solution/folder in Visual Studio and choose Add->Existing Project, and adding it.
|
||||
3. If it is present in the .sln, but not the .slnf, you can update the solution filter to include the missing project. You can either do this one by right-clicking on project in Visual Studio and choosing to load it's direct dependencies, and then saving. Alternatively, you can hand edit the .slnf file - it's a fairly simple json format.
|
||||
|
||||
### Common error: Unable to locate the .NET Core SDK
|
||||
|
||||
|
|
@ -112,6 +138,7 @@ Using Visual Studio Code with this repo requires setting environment variables o
|
|||
Use these command to launch VS Code with the right settings.
|
||||
|
||||
On Windows (requires PowerShell):
|
||||
|
||||
```ps1
|
||||
# The extra dot at the beginning is required to 'dot source' this file into the right scope.
|
||||
|
||||
|
|
@ -120,26 +147,34 @@ code .
|
|||
```
|
||||
|
||||
On macOS/Linux:
|
||||
```
|
||||
|
||||
```bash
|
||||
source activate.sh
|
||||
code .
|
||||
```
|
||||
|
||||
Note that if you are using the "Remote-WSL" extension in VSCode, the environment is not supplied
|
||||
to the process in WSL. You can workaround this by explicitly setting the environment variables
|
||||
in `~/.vscode-server/server-env-setup`.
|
||||
See https://code.visualstudio.com/docs/remote/wsl#_advanced-environment-setup-script for details.
|
||||
|
||||
## Building on command-line
|
||||
|
||||
You can also build the entire project on command line with the `build.cmd`/`.sh` scripts.
|
||||
|
||||
On Windows:
|
||||
```
|
||||
|
||||
```ps1
|
||||
.\build.cmd
|
||||
```
|
||||
|
||||
On macOS/Linux:
|
||||
```
|
||||
|
||||
```bash
|
||||
./build.sh
|
||||
```
|
||||
|
||||
By default, all of the C# projects are built. Some C# projects requires NodeJS to be installed to compile JavaScript assets which are then checked in as source. If NodeJS is detected on the path, the NodeJS projects will be compiled as part of building C# projects. If NodeJS is not detected on the path, the JavaScript assets checked in previously will be used instead. To disable building NodeJS projects, specify /p:BuildNodeJs=false on the command line.
|
||||
By default, all of the C# projects are built. Some C# projects require NodeJS to be installed to compile JavaScript assets which are then checked in as source. If NodeJS is detected on the path, the NodeJS projects will be compiled as part of building C# projects. If NodeJS is not detected on the path, the JavaScript assets checked in previously will be used instead. To disable building NodeJS projects, specify `-noBuildNodeJS` or `--no-build-nodejs` on the command line.
|
||||
|
||||
### Using `dotnet` on command line in this repo
|
||||
|
||||
|
|
@ -155,6 +190,7 @@ On Windows (requires PowerShell):
|
|||
```
|
||||
|
||||
On macOS/Linux:
|
||||
|
||||
```bash
|
||||
source ./activate.sh
|
||||
```
|
||||
|
|
@ -164,12 +200,14 @@ source ./activate.sh
|
|||
Tests are not run by default. Use the `-test` option to run tests in addition to building.
|
||||
|
||||
On Windows:
|
||||
```
|
||||
|
||||
```ps1
|
||||
.\build.cmd -test
|
||||
```
|
||||
|
||||
On macOS/Linux:
|
||||
```
|
||||
|
||||
```bash
|
||||
./build.sh --test
|
||||
```
|
||||
|
||||
|
|
@ -182,7 +220,8 @@ Furthermore, you can use flags on `build.cmd`/`.sh` to build subsets based on la
|
|||
## Build properties
|
||||
|
||||
Additional properties can be added as an argument in the form `/property:$name=$value`, or `/p:$name=$value` for short. For example:
|
||||
```
|
||||
|
||||
```ps1
|
||||
.\build.cmd /p:Configuration=Release
|
||||
```
|
||||
|
||||
|
|
@ -199,8 +238,18 @@ TargetOsName | The base runtime identifier to build for (win, linux,
|
|||
After building ASP.NET Core from source, you will need to install and use your local version of ASP.NET Core.
|
||||
See ["Artifacts"](./Artifacts.md) for more explanation of the different folders produced by a build.
|
||||
|
||||
- Run the installers produced in `artifacts/installers/{Debug, Release}/` for your platform.
|
||||
- Add a NuGet.Config to your project directory with the following content:
|
||||
Building installers does not run as part of `build.cmd` run without parameters, so you should opt-in for building them:
|
||||
|
||||
```ps1
|
||||
.\build.cmd -all -pack -arch x64
|
||||
.\build.cmd -all -pack -arch x86 -noBuildJava
|
||||
.\build.cmd -buildInstallers
|
||||
```
|
||||
|
||||
*Note*: Additional build steps listed above aren't necessary on Linux or macOS.
|
||||
|
||||
* Run the installers produced in `artifacts/installers/{Debug, Release}/` for your platform.
|
||||
* Add a NuGet.Config to your project directory with the following content:
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
|
@ -215,7 +264,8 @@ See ["Artifacts"](./Artifacts.md) for more explanation of the different folders
|
|||
|
||||
*NOTE: This NuGet.Config should be with your application unless you want nightly packages to potentially start being restored for other apps on the machine.*
|
||||
|
||||
- Update the versions on `PackageReference` items in your .csproj project file to point to the version from your local build.
|
||||
* Update the versions on `PackageReference` items in your .csproj project file to point to the version from your local build.
|
||||
|
||||
```xml
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.SpaServices" Version="3.0.0-dev" />
|
||||
|
|
|
|||
|
|
@ -13,13 +13,7 @@ If you want to download the latest daily build and use it in a project, then you
|
|||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="dotnet-core" value="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json" />
|
||||
<add key="extensions" value="https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json" />
|
||||
<add key="entityframeworkcore" value="https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json" />
|
||||
<add key="entityframework6" value="https://dotnetfeed.blob.core.windows.net/aspnet-entityframework6/index.json" />
|
||||
<add key="aspnetcore-tooling" value="https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json" />
|
||||
<add key="aspnetcore" value="https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json" />
|
||||
<add key="aspnet-blazor" value="https://dotnetfeed.blob.core.windows.net/aspnet-blazor/index.json" />
|
||||
<add key="aspnetcore" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json" />
|
||||
<add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,203 @@
|
|||
# Event Sources, Counters and Listeners, Oh My!
|
||||
|
||||
## Overview
|
||||
|
||||
This is a quick overview of how to add `EventSource` and `EventCounter` tracing to an ASP.NET library.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
You should have a basic understanding of `EventSource` and how to write events. See https://blogs.msdn.microsoft.com/vancem/2012/07/09/introduction-tutorial-logging-etw-events-in-c-system-diagnostics-tracing-eventsource/ for some guidance.
|
||||
|
||||
Similarly, you should have a basic understanding of `EventCounter` and how they work. See https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Tracing/documentation/EventCounterTutorial.md for guidance.
|
||||
|
||||
## Event Patterns
|
||||
|
||||
* Add `ILogger` based tracing in all the places you add `EventSource` tracing unless there's a really good reason not to. You can always used the `Trace` level ;).
|
||||
* `Start`/`Stop` events should have at least one payload value in common that can be used to correlate them. For example, Request ID, Request Path, Action Name, etc.
|
||||
* `Error` events should use the `EventLevel.Error` level (which should be obvious I hope ;))
|
||||
* `Stop` events should include a `double durationInMilliseconds` payload value with the duration between the `Start` and `End` event in milliseconds.
|
||||
* Use `ValueStopwatch` from [Microsoft.Extensions.ValueStopwatch.Sources](https://github.com/aspnet/Common/tree/dev/shared/Microsoft.Extensions.ValueStopwatch.Sources) for timing since it avoids a heap allocation (it's a simple wrapper around a long)
|
||||
* For timing events, have the `Start` event method return a `ValueStopwatch`. Have that method return `default(ValueStopwatch)` when the event is disabled, and `ValueStopwatch.StartNew()` when it is enabled. Have the `End` event take in the `ValueStopwatch` and use `.IsActive` to check if it was actually started, and then if it was started use `GetElapsedTime` to get the duration. This ensures that if the event is disabled, we don't have the perf hit of calling `ValueStopwatch.StartNew()`.
|
||||
* Payload values can only be primitives, so rich objects have to be expanded in advance or via a `NonEvent` wrapper method.
|
||||
* Exceptions should expand to three `string` payload parameters: `exceptionType` (`.GetType().AssemblyQualifiedName` output), `exceptionMessage` (`.Message` output), `exceptionDetails` (`.ToString()` output).
|
||||
* Make Payload Names descriptive as they are seen in Event viewing tools like PerfView. For example `durationInMilliseconds` instead of `duration`.
|
||||
* Naming Patterns:
|
||||
* Use `Start` as a suffix for events signalling the start of an operation. Do **not** use `Begin` or `Started`
|
||||
* Use `Stop` as a suffix for events signalling the end of an operation. Do **not** use `Stopped`, `End` or `Ended`
|
||||
* Fire `Stop` events even when a `Failure` event is also fired. Treat `Stop` as a `finally` block.
|
||||
* Use `Failure` as a suffix for events signalling an error.
|
||||
* Use present-tense verbs (`Timeout` not `TimedOut`)
|
||||
* Use `NounVerb` form (`ConnectionStart` not `StartConnection`)
|
||||
* In the `EventSource` type, keep all methods marked with `[Event]` together and sorted by `eventId`
|
||||
* .NET Core 2.0.3 or higher is required to view `EventCounters` (they were broken at runtime in 2.0.0 RTM). You can compile fine with 2.0 RTM though, it just won't actually trigger the counter
|
||||
|
||||
More patterns can be added as we find them :).
|
||||
|
||||
## Code Style
|
||||
|
||||
* Our event sources should have names that match the name of the containing assembly, but with `.` replaced with `-`. For example `Microsoft.AspNetCore.Authentication` becomes `Microsoft-AspNetCore-Authentication`.
|
||||
* Event sources should always be `internal`
|
||||
* Event sources should declare a `private` parameterless constructor
|
||||
* Event sources should declare a `public static readonly` instance of themselves called `Log`
|
||||
* Event sources should have names that end `EventSource`, for example `DependencyInjectionEventSource`
|
||||
|
||||
## Event Pattern
|
||||
|
||||
In general, events should follow a pattern like this:
|
||||
|
||||
```csharp
|
||||
// This needs to have the NonEventAttribute because otherwise EventSource will try to auto-generate a manifest for it!
|
||||
[NonEvent]
|
||||
public void SomethingHappened(ObjectNeededToCalulateThePayload p, AnotherObjectNeededToCalculateThePayload p2)
|
||||
{
|
||||
// Check that the source is enabled (regardless of level)
|
||||
if (IsEnabled())
|
||||
{
|
||||
// Write to an event counter if one is associated with this event
|
||||
_somethingsHappenedCounter.WriteMetric(1.0f);
|
||||
|
||||
// Check that this specific event is actually enabled (by level and optionally keywords).
|
||||
if (IsEnabled(EventLevel.Informational, EventKeyords.None))
|
||||
{
|
||||
// Do any complex calculation needed to determine the payload values.
|
||||
var payloadValue = CalculateThePayload(p);
|
||||
|
||||
// Fire the actual event method
|
||||
SomethingHappened(payloadValue, p2.MorePayload, p2.SomeValue - p2.SomeOtherValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This has to be a separate method so that EventSource can generate an ETW manifest.
|
||||
// The eventId field is required and must also be passed to WriteEvent.
|
||||
[Event(eventId: 42, Level = EventLevel.Informational)]
|
||||
private void SomethingHappened(string payloadValue, int anotherPayloadValue, double morePayload) => WriteEvent(42, payloadValue, anotherPayloadValue, morePayload);
|
||||
```
|
||||
|
||||
The above example is one that covers basically all the scenarios. However, many of the individual elements of that pattern can be elided when not needed. For example, when there isn't any complex payload calcuation, everything can be done in a single method with the `Event` attribute. We generally write EventCounters regardless of the level that the provider is activated at (see the section on counters), hence why we check `IsEnabled()` (no parameters) in the above example. However, if there is no counter associated with the event, the `IsEnabled(EventLevel, EventKeyword)` overload can be used directly. So, below is an example of an event with a simple payload and no event counter:
|
||||
|
||||
```csharp
|
||||
[Event(eventId: 42, Level = EventLevel.Informational)]
|
||||
public void SomethingHappened(string payloadValue)
|
||||
{
|
||||
if (IsEnabled(EventLevel.Informational, EventKeywords.None))
|
||||
{
|
||||
WriteEvent(42, payloadValue);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Keywords
|
||||
|
||||
When we have places where we want to enable events but only when explicitly requested by the user, we can use Keywords to control those. Keywords are a simple flags value that are provided when a listener enables an event source, and can be tested when calling `IsEnabled`. See [https://msdn.microsoft.com/en-us/library/dn774985(v=pandp.20).aspx#_Using_keywords](https://msdn.microsoft.com/en-us/library/dn774985(v=pandp.20).aspx#_Using_keywords) for some guidance about keywords
|
||||
|
||||
## Event Counters
|
||||
|
||||
Since Event Counters are only actually enabled when the `EventCounterIntervalSec` parameter is provided to the event source when a listener attaches, we don't really need a level or keyword to control them. As a result, we always write to them, when the EventSource itself is enabled.
|
||||
|
||||
There are a number of different "kinds" of event counters in our system. They are characterized by what kind of value is written in the `EventCounter.WriteMetric` call. Counters provide mulitple aggregations (Count, Mean, StdDev, Min, Max), and certain aggregations are appropriate for different kinds of counters.
|
||||
|
||||
* Counters track the number of times an event occurs. They are written by calling `.WriteMetric(1.0f)` to the counter. The consumer can determine the number of events that occurred over an interval by reading the "Count" aggregation. They should have names combining a plural noun and adjective, like "RequestsStarted"
|
||||
* Metrics track a value that changes over time or per "unit" (i.e. per request, per connection, etc.). They are written by calling `.WriteMetric` with the current value of the metric. The consumer can use the aggregates to get data about the metric over time. They should have names combining a singular nouns describing the metric, like "RequestBodySize"
|
||||
* Durations are a Metric that tracks a time duration in milliseconds. They have names ending with "Duration", like "RequestDuration"
|
||||
|
||||
## Full Example
|
||||
|
||||
Here is an example of a straw-man Event Source for Authentication:
|
||||
|
||||
```csharp
|
||||
using System;
|
||||
using System.Diagnostics.Tracing;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication.Internal
|
||||
{
|
||||
[EventSource(Name = "Microsoft-AspNetCore-Authentication")]
|
||||
public class AuthenticationEventSource : EventSource
|
||||
{
|
||||
public static readonly AuthenticationEventSource Log = new AuthenticationEventSource();
|
||||
private readonly EventCounter _authenticationMiddlewareDuration;
|
||||
|
||||
private AuthenticationEventSource()
|
||||
{
|
||||
_authenticationMiddlewareDuration = new EventCounter("AuthenticationMiddlewareDuration", this);
|
||||
}
|
||||
|
||||
[NonEvent]
|
||||
internal void AuthenticationMiddlewareStart(HttpContext context)
|
||||
{
|
||||
if (IsEnabled(EventLevel.Informational, EventKeywords.None))
|
||||
{
|
||||
AuthenticationMiddlewareStart(context.TraceIdentifier, context.Request.Path.Value);
|
||||
}
|
||||
}
|
||||
|
||||
[NonEvent]
|
||||
internal void AuthenticationMiddlewareEnd(HttpContext context, TimeSpan duration)
|
||||
{
|
||||
if (IsEnabled())
|
||||
{
|
||||
_authenticationMiddlewareDuration.WriteMetric((float)duration.TotalMilliseconds);
|
||||
|
||||
if (IsEnabled(EventLevel.Informational, EventKeywords.None))
|
||||
{
|
||||
AuthenticationMiddlewareEnd(context.TraceIdentifier, context.Request.Path.Value, duration.TotalMilliseconds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[NonEvent]
|
||||
internal void AuthenticationMiddlewareFailure(HttpContext context, Exception ex)
|
||||
{
|
||||
if(IsEnabled(EventLevel.Error, EventKeywords.None))
|
||||
{
|
||||
AuthenticationMiddlewareFailure(context.TraceIdentifier, context.Request.Path.Value, ex.GetType().FullName, ex.Message, ex.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
[Event(eventId: 1, Level = EventLevel.Informational)]
|
||||
private void AuthenticationMiddlewareStart(string traceIdentifier, string path) => WriteEvent(1, traceIdentifier, path);
|
||||
|
||||
[Event(eventId: 2, Level = EventLevel.Informational)]
|
||||
private void AuthenticationMiddlewareEnd(string traceIdentifier, string path, double durationMilliseconds) => WriteEvent(2, traceIdentifier, path, durationMilliseconds);
|
||||
|
||||
[Event(eventId: 3, Level = EventLevel.Error)]
|
||||
private void AuthenticationMiddlewareFailure(string traceIdentifier, string value, string exceptionTypeName, string message, string fullException) => WriteEvent(3, traceIdentifier, value, exceptionTypeName, message, fullException);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Automated Testing of EventSources
|
||||
|
||||
EventSources can be tested using the `EventSourceTestBase` base class in `Microsoft.AspNetCore.Testing`. An example test is below:
|
||||
|
||||
```csharp
|
||||
// The base class MUST be used for EventSource testing because EventSources are global and parallel tests can cause issues.
|
||||
// The base class adds some code to handle that.
|
||||
public class SomeTest : EventSourceTestBase
|
||||
{
|
||||
[Fact]
|
||||
public void TestName()
|
||||
{
|
||||
// Arrange: Explicitly register the event sources to listen to.
|
||||
CollectFrom("Microsoft-AspNetCore-SomeEventSourceName");
|
||||
|
||||
// Act: Do things that causes the events to be fired.
|
||||
DoStuff();
|
||||
|
||||
// Assert: Get the collected events and assert that they match the expectations
|
||||
var events = GetEvents();
|
||||
|
||||
// EventAssert is a helper for testing events. It's a little odd in that EventAssert.Event returns a "builder"
|
||||
// that creates an Action<EventWrittenEventArgs> that will assert the things you configured when called.
|
||||
// This pattern makes for clearer test code.
|
||||
EventAssert.Collection(events,
|
||||
EventAssert.Event(1, "Test", EventLevel.Informational),
|
||||
EventAssert.Event(2, "TestWithPayload", EventLevel.Verbose)
|
||||
.Payload("payload1", 42)
|
||||
.Payload("payload2", 4.2));
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**NOTE:** The test listener does not currently support collecting EventCounters. If you need that, file an issue in Testing and ping @anurse.
|
||||
116
docs/Helix.md
116
docs/Helix.md
|
|
@ -1,5 +1,4 @@
|
|||
Helix testing in ASP.NET Core
|
||||
==============================
|
||||
# Helix testing in ASP.NET Core
|
||||
|
||||
Helix is the distributed test platform that we use to run tests. We build a helix payload that contains the publish directory of every test project that we want to test
|
||||
send a job with with this payload to a set of queues for the various combinations of OS that we want to test
|
||||
|
|
@ -11,56 +10,113 @@ For more info about helix see: [SDK](https://github.com/dotnet/arcade/blob/maste
|
|||
|
||||
To run Helix tests for one particular test project:
|
||||
|
||||
```
|
||||
cd src/MyCode/test
|
||||
dotnet msbuild /t:Helix
|
||||
``` powershell
|
||||
.\eng\scripts\RunHelix.ps1 -Project path\mytestproject.csproj
|
||||
```
|
||||
|
||||
To run tests for the entire repo, run:
|
||||
This will restore, and then publish all the test project including some bootstrapping scripts that will install the correct dotnet runtime/sdk before running the test assembly on the helix machine(s), and upload the job to helix.
|
||||
|
||||
```
|
||||
.\eng\scripts\TestHelix.ps1
|
||||
```
|
||||
## Overview of the helix usage in our pipelines
|
||||
|
||||
This will restore, and then publish all of the test projects including some bootstrapping scripts that will install the correct dotnet runtime/sdk before running the test assemblies on the helix machine, and upload the job to helix.
|
||||
- Required queues: Windows10, OSX, Ubuntu1604
|
||||
- Full queue matrix: Windows[7, 81, 10], Ubuntu[1604, 1804, 2004], Centos7, Debian[8,9], Redhat7, Fedora28, Arm64 (Win10, Debian9)
|
||||
- The queues are defined in [Helix.Common.props](https://github.com/dotnet/aspnetcore/blob/master/eng/targets/Helix.Common.props)
|
||||
|
||||
[aspnetcore-ci](https://dev.azure.com/dnceng/public/_build?definitionId=278) runs non quarantined tests against the required helix queues as a required PR check and all builds on all branches.
|
||||
|
||||
[aspnetcore-helix-matrix](https://dev.azure.com/dnceng/public/_build?definitionId=837) runs non quarantined tests against all queues twice a day only on public master.
|
||||
|
||||
[aspnetcore-quarantined-pr](https://dev.azure.com/dnceng/public/_build?definitionId=869) runs only quarantined tests against the required queues on PRs and on master every 4 hours.
|
||||
|
||||
[aspnetcore-quarantined-tests](https://dev.azure.com/dnceng/public/_build?definitionId=331) runs only quarantined tests against all queues only on public master once a day at 11 PM.
|
||||
|
||||
You can always manually queue pipeline runs by clicking on the link to the pipeline -> Run Pipeline -> select your branch/tag and commit
|
||||
|
||||
## Checkin process expectations
|
||||
|
||||
- The normal PR process has aspnetcore-ci will ensure that the required queues are green.
|
||||
- If your changes are likely to have cross platform impact that would affect more than the required queues, you should kick off a manual aspnetcore-helix-matrix pipeline run against your branch before merging your PR. Even though aspnetcore-helix-matrix is not a required checkin gate, if your changes break this pipeline, you must either immediately revert your changes, or quarantine the test, its never ok to leave this pipeline in a broken state.
|
||||
|
||||
|
||||
## How do I look at the results of a helix run on Azure Pipelines?
|
||||
There's a link embedded in the build.cmd log of the helix target on Azure Pipelines, near the bottom right that will look something like this:
|
||||
```
|
||||
2019-02-07T21:55:48.1516089Z Results will be available from https://mc.dot.net/#/user/aspnetcore/pr~2Faspnet~2Faspnetcore/ci/20190207.34
|
||||
2019-02-07T21:56:43.2209607Z Job 0dedeef6-210e-4815-89f9-fd07513179fe is completed with 108 finished work items.
|
||||
2019-02-07T21:56:43.5091018Z Job 4c45a464-9464-4321-906c-2503320066b0 is completed with 108 finished work items.
|
||||
2019-02-07T21:56:43.6863473Z Job 91a826de-fd51-42c2-9e7e-84bbe18b16cf is completed with 108 finished work items.
|
||||
2019-02-07T21:56:43.8591328Z Job b3595ab8-049d-4775-9cea-d1140a0cb446 is completed with 108 finished work items.
|
||||
2019-02-07T21:56:44.0384313Z Job 2f174f2b-f6b1-4683-8303-3f120865c341 is completed with 108 finished work items.
|
||||
2019-02-07T21:56:44.2069520Z Job b9387311-e670-4e18-9c84-479b7bfe67d1 is completed with 111 finished work items.
|
||||
2019-02-07T21:56:44.3946686Z Job 43582e31-5648-47be-ac42-8a5e4129f15f is completed with 108 finished work items.
|
||||
2019-02-07T21:56:44.5568847Z Job 1e6b0051-21a4-4b75-93f3-f739bb71d5dc is completed with 108 finished work items.
|
||||
2019-02-07T22:01:26.0028154Z Job d597c581-f81b-446c-8daf-7c6511b526f7 is completed with 108 finished work items.
|
||||
2019-02-07T22:06:33.6898567Z Job 82f27d4c-9099-4f0e-b383-870c24d8dc2c is completed with 108 finished work items.
|
||||
|
||||
The easiest way to look at a test failure is via the tests tab in azdo which now should show a summary of the errors and have attachments to the relevant console logs.
|
||||
|
||||
You can also drill down into the helix web apis if you take the HelixJobId from the Debug tab of a failing test, and the HelixWorkItemName and go to: `https://helix.dot.net/api/2019-06-17/jobs/<jobId>/workitems/<workitemname>` which will show you more urls you can drill into for more info.
|
||||
|
||||
There's also a link embedded in the build.cmd log of the Tests: Helix x64 job on Azure Pipelines, near the bottom right that will look something like this:
|
||||
|
||||
``` text
|
||||
Uploading payloads for Job on Ubuntu.1604.Amd64.Open...
|
||||
Finished uploading payloads for Job on Ubuntu.1604.Amd64.Open...
|
||||
Sending Job to Ubuntu.1604.Amd64.Open...
|
||||
Sent Helix Job a5cbf405-1363-452f-af4b-de5b2a61c8cf
|
||||
Uploading payloads for Job on Windows.10.Amd64.Open...
|
||||
Finished uploading payloads for Job on Windows.10.Amd64.Open...
|
||||
Sending Job to Windows.10.Amd64.Open...
|
||||
Sent Helix Job cbec3697-c298-412a-953a-e375e49d1fe0
|
||||
Uploading payloads for Job on OSX.1014.Amd64.Open...
|
||||
Finished uploading payloads for Job on OSX.1014.Amd64.Open...
|
||||
Sending Job to OSX.1014.Amd64.Open...
|
||||
Sent Helix Job a54359cf-f74d-4d02-9faf-07e0a8380995
|
||||
Waiting for completion of job cbec3697-c298-412a-953a-e375e49d1fe0
|
||||
Waiting for completion of job a54359cf-f74d-4d02-9faf-07e0a8380995
|
||||
Waiting for completion of job a5cbf405-1363-452f-af4b-de5b2a61c8cf
|
||||
Job a54359cf-f74d-4d02-9faf-07e0a8380995 is completed with 136 finished work items.
|
||||
Job cbec3697-c298-412a-953a-e375e49d1fe0 is completed with 156 finished work items.
|
||||
Job a5cbf405-1363-452f-af4b-de5b2a61c8cf is completed with 136 finished work items.
|
||||
Stopping Azure Pipelines Test Run Ubuntu.1604.Amd64.Open
|
||||
Stopping Azure Pipelines Test Run Windows.10.Amd64.Open
|
||||
Stopping Azure Pipelines Test Run OSX.1014.Amd64.Open
|
||||
F:\workspace\_work\1\s\.packages\microsoft.dotnet.helix.sdk\5.0.0-beta.20280.1\tools\Microsoft.DotNet.Helix.Sdk.MultiQueue.targets(76,5): error : Work item a5cbf405-1363-452f-af4b-de5b2a61c8cf/Microsoft.AspNetCore.Authentication.Test--net5.0 in job a5cbf405-1363-452f-af4b-de5b2a61c8cf has failed. [F:\workspace\_work\1\s\eng\helix\helix.proj]
|
||||
F:\workspace\_work\1\s\.packages\microsoft.dotnet.helix.sdk\5.0.0-beta.20280.1\tools\Microsoft.DotNet.Helix.Sdk.MultiQueue.targets(76,5): error : Failure log: https://helix.dot.net/api/2019-06-17/jobs/a5cbf405-1363-452f-af4b-de5b2a61c8cf/workitems/Microsoft.AspNetCore.Authentication.Test--net5.0/console [F:\workspace\_work\1\s\eng\helix\helix.proj]
|
||||
##[error].packages\microsoft.dotnet.helix.sdk\5.0.0-beta.20280.1\tools\Microsoft.DotNet.Helix.Sdk.MultiQueue.targets(76,5): error : (NETCORE_ENGINEERING_TELEMETRY=Test) Work item a5cbf405-1363-452f-af4b-de5b2a61c8cf/Microsoft.AspNetCore.Authentication.Test--net5.0 in job a5cbf405-1363-452f-af4b-de5b2a61c8cf has failed.
|
||||
Failure log: https://helix.dot.net/api/2019-06-17/jobs/a5cbf405-1363-452f-af4b-de5b2a61c8cf/workitems/Microsoft.AspNetCore.Authentication.Test--net5.0/console
|
||||
```
|
||||
|
||||
The link will take you to an overview of all the tests with clickable links to the logs and each run broken down by queue.
|
||||
The https://helix.dot.net/ home page displays information about the available public queues (nothing about the related BYOC pools and queues or the internal Helix queues)
|
||||
|
||||
All of the helix runs for aspnetcore can be found here https://mc.dot.net/#/user/aspnetcore/builds
|
||||
Some superficial information about both BYOC and Helix agents is available at https://github.com/dotnet/arcade/blob/8ca46105193bd25c95af49bc6cd3604aaefec980/Documentation/AzureDevOps/AzureDevOpsOnboarding.md#agent-queues
|
||||
|
||||
More detailed and always up-to-date information about all of the agents is available at https://helix.dot.net/api/2018-03-14/info/queues
|
||||
|
||||
## What do I do if a test fails?
|
||||
|
||||
You can simulate how most tests run locally:
|
||||
```
|
||||
|
||||
``` powershell
|
||||
dotnet publish
|
||||
cd <the publish directory>
|
||||
dotnet vstest My.Tests.dll
|
||||
```
|
||||
|
||||
If that doesn't help, you can try the Get Repro environment link from mission control and try to debug that way.
|
||||
|
||||
## Differences from running tests locally
|
||||
Most tests that don't just work on helix automatically are ones that depend on the source code being accessible. The helix payloads only contain whatever is in the publish directories, so any thing else that test depends on will need to be included to the payload (TBD how to do this).
|
||||
|
||||
Most tests that don't just work on helix automatically are ones that depend on the source code being accessible. The helix payloads only contain whatever is in the publish directories, so any thing else that test depends on will need to be included to the payload.
|
||||
|
||||
This can be accomplished by using the `HelixContent` property like so.
|
||||
|
||||
``` msbuild
|
||||
<ItemGroup>
|
||||
<HelixContent Include="$(RepoRoot)src\KeepMe.js"/>
|
||||
<HelixContent Include="$(RepoRoot)src\Project\**"/>
|
||||
</ItemGroup>
|
||||
```
|
||||
|
||||
By default, these files will be included in the root directory. To include these files in a different directory, you can use either the `Link` or `LinkBase` attributes to set the included path.
|
||||
|
||||
``` msbuild
|
||||
<ItemGroup>
|
||||
<HelixContent Include="$(RepoRoot)src\KeepMe.js" Link="$(MSBuildThisFileDirectory)\myassets\KeepMe.js"/>
|
||||
<HelixContent Include="$(RepoRoot)src\Project\**" LinkBase="$(MSBuildThisFileDirectory)\myassets"/>
|
||||
</ItemGroup>
|
||||
```
|
||||
|
||||
## How to skip tests on helix
|
||||
|
||||
There are two main ways to opt out of helix
|
||||
|
||||
- Skipping the entire test project via `<BuildHelixPayload>false</BuildHelixPayload>` in csproj (the default value for this is IsTestProject).
|
||||
- Skipping an individual test via `[SkipOnHelix("url to github issue")]` which might require including a compile reference to: `<Compile Include="$(SharedSourceRoot)test\SkipOnHelixAttribute.cs" />`
|
||||
- Skipping an individual test via `[SkipOnHelix("url to github issue")]`.
|
||||
|
||||
Make sure to file an issue for any skipped tests and include that in a comment next to either of these
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
# Issue Management Policies
|
||||
|
||||
We have a lot of issue traffic to manage, so we have a few policies in place to help us do that. This is a brief summary of some of the policies we have in place and the justification for them.
|
||||
|
||||
## Commenting on closed issues
|
||||
|
||||
In general, we recommend you open a new issue if you have a bug, feature request, or question to discuss. If you find a closed issue that is related, open a *new issue* and link to the closed issue rather than posting on the closed issue. Closed issues don't appear in our triage process, so only the people who have been active on the original thread will be notified of your comment. A new issue will get more attention from the team.
|
||||
|
||||
*In general* we don't mind getting duplicate issues. It's easier for us to close duplicate issues than to discuss multiple root causes on a single issue! We may close your issue as a duplicate if we determine it has the same root cause as another. Don't worry! It's not a waste of our time!
|
||||
|
||||
## Needs Author Feedback
|
||||
|
||||
If a contributor reviews an issue and determines that more information is needed from the author, they will post a comment requesting that information and apply the `Needs: Author Feedback` label. This label indicates that the author needs to post a response in order for us to continue investigating the issue.
|
||||
|
||||
If the author does not post a response within **7 days**, the issue will be automatically closed. If the author responds within **7 days** after the issue is closed, the issue will be automatically re-opened. We recognize that you may not be able to respond immediately to our requests, we're happy to hear from you whenever you're able to provide the new information.
|
||||
|
||||
## Duplicate issues
|
||||
|
||||
If we determine that the issue is a duplicate of another, we will label it with the `Resolution: Duplicate` label. The issue will be automatically closed in 1 day of inactivity.
|
||||
|
||||
## Answered questions
|
||||
|
||||
If we determine that the issue is a question and have posted an answer, we will label it with the `Resolution: Answered` label. The issue will be automatically closed in 1 day of inactivity.
|
||||
|
||||
## Locking closed issues
|
||||
|
||||
After an issue has been closed and had no activity for **30 days** it will be automatically locked as *resolved*. This is done in order to reduce confusion as to where to post new comments. If you are still encountering the problem reported in an issue, or have a related question or bug report, feel free to open a *new issue* and link to the original (now locked) issue!
|
||||
|
|
@ -3,3 +3,9 @@ Contributor documentation
|
|||
|
||||
The primary audience for documentation in this folder is contributors to ASP.NET Core.
|
||||
If you are looking for documentation on how to *use* ASP.NET Core, go to <https://docs.asp.net>.
|
||||
|
||||
# ASP.NET Core developer workflow
|
||||
|
||||
- [Building from source](BuildFromSource.md)
|
||||
- [Troubleshooting build errors](BuildErrors.md)
|
||||
- [Artifacts structure](Artifacts.md)
|
||||
|
|
|
|||
|
|
@ -22,4 +22,4 @@ Set `<HasReferenceAssembly>false</HasReferenceAssembly>` in the implementation (
|
|||
|
||||
### Regenerate reference assemblies for all projects
|
||||
|
||||
Run `.\eng\scripts\GenerateReferenceAssemblies.ps1` from repository root.
|
||||
Run `.\eng\scripts\GenerateReferenceAssemblies.ps1` from repository root. Make sure you've run `.\restore.cmd` first.
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ Steps for adding a new package dependency to an existing project. Let's say I'm
|
|||
If you don't know the commit hash of the source code used to produce "0.0.1-beta-1", you can use `000000` as a placeholder for `Sha`
|
||||
as its value is unimportant and will be updated the next time the bot runs.
|
||||
|
||||
If the new dependency comes from dotnet/CoreFx, dotnet/code-setup or aspnet/Extensions, add a
|
||||
If the new dependency comes from dotnet/CoreFx, dotnet/code-setup or dotnet/extensions, add a
|
||||
`CoherentParentDependency` attribute to the `<Dependency>` element as shown below. This example indicates the
|
||||
dotnet/CoreFx dependency version should be determined based on the build that produced the chosen
|
||||
Microsoft.NETCore.App. That is, the dotnet/CoreFx dependency and Microsoft.NETCore.App should be
|
||||
|
|
@ -81,7 +81,7 @@ Steps for adding a new package dependency to an existing project. Let's say I'm
|
|||
```
|
||||
|
||||
The attribute value should be `"Microsoft.Extensions.Logging"` for dotnet/core-setup dependencies and
|
||||
`"Microsoft.CodeAnalysis.Razor"` for aspnet/Extensions dependencies.
|
||||
`"Microsoft.CodeAnalysis.Razor"` for dotnet/extensions dependencies.
|
||||
|
||||
## Example: make a breaking change to references
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,80 @@
|
|||
# Servicing Process
|
||||
|
||||
We maintain several on-going releases at once and produce patches for them. An essential part of our support committment to users is that we build high-quality patches that avoid breaking applications. This means we have to be extremely cautious with taking changes in patch releases. This document describes the "bar" (criteria for accepting servicing fixes) and the process for managing these changes.
|
||||
|
||||
See the [.NET Core release lifecycle](https://dotnet.microsoft.com/platform/support/policy/dotnet-core#lifecycle) for more details on the currently-supported .NET releases.
|
||||
|
||||
The status of current servicing fixes can be found on the [Servicing Status](https://github.com/dotnet/aspnetcore/projects/11) GitHub project.
|
||||
|
||||
## Servicing Bar
|
||||
|
||||
The servicing bar is defined as any fixes the .NET "Shiproom" (see below) approves. We use certain criteria to evaluate fixes (described below) but still reserve the right to accept/reject bugs despite this criteria in certain circumstances.
|
||||
|
||||
A fix is generally suitable for accepting in a servicing release if **all** of the below are true:
|
||||
|
||||
* It impacts a "significant" number of users. There's no formal definition here, but generally means multiple users have reported the issue, or the team is confident that a large number of users would be affected.
|
||||
* It has no suitable workaround. Since any change comes with risk, having users apply a workaround is generally preferable to shipping an update that may cause more issues.
|
||||
* It does not change public API (removing/adding/changing APIs). Applications should be binary-compatible with **all** patches for a given major.minor version, so API changes cannot be made in patches.
|
||||
* Any behavioral changes are fixing unexpected exceptions/failures/crashes/etc. or are behind opt-in configuration. In rare cases, where the value is high, we will take changes that are not opt-in, but will provide opt-out configuration to disable them and restore previous behavior.
|
||||
|
||||
In addition, the following factors make a particular servicing fix *more likely* to be accepted:
|
||||
|
||||
* It fixes a regression introduced in a previous release
|
||||
* It is necessary to meet key "tenants" (Security, Compliance, Geopolitical issues, etc.)
|
||||
* It is required to support new OS distributions
|
||||
* If the issue is reported through [Microsoft Product Support](https://dotnet.microsoft.com/platform/support).
|
||||
|
||||
Finally, infrastructure and test-only fixes are generally acceptable since they do not impact the customer use of the product. However, these should generally be focused on fixes that improve the *reliability* of building/testing the product.
|
||||
|
||||
### Long-Term Support Releases
|
||||
|
||||
In general, Long-Term Support releases are very risk-averse. Users choose these releases over the "Current" releases because their applications can't take the risks involved in frequent updates. We want users to feel very confident installing patches.
|
||||
|
||||
As a result, in general, requests for servicing fixes in Long-Term Support releases should come through [Microsoft Support](https://dotnet.microsoft.com/platform/support).
|
||||
|
||||
## Submitting a fix to Shiproom
|
||||
|
||||
**External Contributors**: In general, this will be done by a team member. Reach out to the team members reviewing your change to ask for help with this process.
|
||||
|
||||
To request Shiproom approval for a fix, open a **Pull Request** to the target `release/` branch (for example `release/3.1` for 3.1.x). Prior to submitting to shiproom, ensure all of the following:
|
||||
|
||||
* The PR is "ready-to-merge" (Has at least one review approval, passing builds, is not a draft)
|
||||
* The PR description contains the following template:
|
||||
|
||||
```
|
||||
#### Description
|
||||
|
||||
<!-- Describe the bug and the fix. -->
|
||||
|
||||
#### Customer Impact
|
||||
|
||||
<!--
|
||||
* Was the bug reported by a customer?
|
||||
* How does the bug impact the customer
|
||||
* Are there any workarounds? If so, why are they not acceptable alternatives?
|
||||
-->
|
||||
|
||||
#### Regression?
|
||||
|
||||
<!-- Either "no", or include the version that regressed the behavior -->
|
||||
|
||||
#### Risk
|
||||
|
||||
<!-- Describe the risk of introducing this change. -->
|
||||
```
|
||||
|
||||
Once the above conditions are met, apply the `servicing-consider` label.
|
||||
|
||||
## Shiproom
|
||||
|
||||
The .NET Shiproom meets regularly (approximately twice a week) and reviews PRs labelled `servicing-consider`. The Shiproom attendees include stakeholders from across the stack (runtime, libraries, app models, sdk, etc.). Any PR with this label will be considered. Having a fully-complete template is important to ensuring the PR can be properly reviewed. Generally, someone familiar with the PR should be present at the meeting, but having the template filled out helps ensure that if that person is unavailable, the bug is well-represented.
|
||||
|
||||
After reviewing a PR, Shiproom will take one of the following actions:
|
||||
|
||||
* Apply the `servicing-approved` label and place it in the appropriate milestone based on the target patch release. The change is approved and can be merged when branches are open for the target patch.
|
||||
* Apply the `servicing-more-info` label (or just leave `servicing-consider`) and request additional information or better representation at a subsequent meeting for approval.
|
||||
* Apply the `servicing-rejected` label. The change has been declined and should not be merged. It can be resubmitted if there is new information to consider.
|
||||
|
||||
## Merging
|
||||
|
||||
Only a repository admin can merge changes to `release/*` branches. Once branches open for a particular patch release, the admins will go through and merge PRs labelled `servicing-approved` and targeting that patch release. Sometimes we are tracking multiple patch releases at once (rare, but it happens) so it's possible that only some approved PRs will be merged at the same time.
|
||||
|
|
@ -9,7 +9,7 @@ For full information, see the [official docs for git submodules](https://git-scm
|
|||
|
||||
## Fundamental concept
|
||||
|
||||
The parent repo (aspnet/AspNetCore) stores two pieces of info about each submodule.
|
||||
The parent repo (dotnet/aspnetcore) stores two pieces of info about each submodule.
|
||||
|
||||
1. Where to clone the submodule from. This is stored in the .gitmodules file
|
||||
2. The commit hash of the submodule to use.
|
||||
|
|
@ -22,7 +22,7 @@ Other info may appear in the .gitmodules file, but it is only used when attempti
|
|||
|
||||
By default, submodules will not be present. Use `--recursive` to clone all submodules.
|
||||
|
||||
git clone https://github.com/aspnet/AspNetCore.git --recursive
|
||||
git clone https://github.com/dotnet/aspnetcore.git --recursive
|
||||
|
||||
If you have already cloned, run this to initialize all submodules.
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ that contains the new commit.
|
|||
git add modules/KestrelhttpServer/
|
||||
git commit -m "Update Kestrel to latest version"
|
||||
|
||||
## PowerShell is slow in aspnet/AspNetCore
|
||||
## PowerShell is slow in dotnet/aspnetcore
|
||||
|
||||
Many users have post-git, and extension that shows git status on the prompt line. Because `git status` with submodules
|
||||
on Windows is very slow, it can make PowerShell unbearable to use.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
Managing a popular GitHub repo with a small team is not an easy task. It requires a good balance between creating new features while handling many investigations and bug fixes associated with existing ones.
|
||||
|
||||
During the last couple of years the amount of incoming issues has been constantly growing. While this is a sign of a healthy framework and ecosystem surrounding it, it's becoming harder to react to all those issues.
|
||||
To be able to keep up with ever-evolving expectations, we're introducing a set of rules to help us better handle the incoming issues going forward.
|
||||
|
||||
**Note:** Customers that need help with **urgent investigations** should contact [Microsoft Support](https://dotnet.microsoft.com/platform/support).
|
||||
|
||||
## Goals
|
||||
The goals of these rules are listed below in priority order:
|
||||
- Make it easy to make triage decisions for each issue filed in this repository
|
||||
- Be able to easily prioritize issues for each milestone
|
||||
- Set proper expectations with customers regarding how issues are going to be handled
|
||||
|
||||
## Triage Process
|
||||
The feature teams should be able look through every single issue filed against this repository and be able to make a quick call regarding the nature of the issue.
|
||||
We will first categorize the issues and further handle these depending on the category the issue is in. The subsections below reprsent these categories and the rules we apply for them during our triage meeting.
|
||||
|
||||
### Information Gathering
|
||||
In this phase we instruct the user on how to collect the appropriate diagnostics and see if they are able to address the issue with that additional information. When we need user input we will mark the issue with `Needs: Author Feedback` label. Issues in this phase may be closed automatically if we do not receive timely responses, they often do not provide enough information for us to investigate further.
|
||||
We'll try to respond quickly to such issues (within days). If a user has collected all of the relevant diagnostics and the issue is still not apparent, then we will consider it for further [investigation](#investigations) by the team.
|
||||
|
||||
### Feature requests
|
||||
As soon as we identify an issue represents an ask for a new feature, we will label the issue with the `enhancement` label.
|
||||
Most of the time, we will automatically move these issues into the `Next Sprint Planning` milestone for further review during the [next sprint planning meeting](#milestone-planning).
|
||||
If we think the feature request is not aligned with our goals, we may choose to close it immediately.
|
||||
In some situations, however, we may choose to collect more feedback before acting on the issue. In these situations we will move the issue in the `Backlog` so that we can review it during the [release planning](#release-planning).
|
||||
|
||||
### Bug reports
|
||||
If it's immediately clear, that the issue is related to a bug in the framework, we will apply the `bug` label to the issue.
|
||||
|
||||
At this point, we will try to make a call regarding it's impact and severity. If the issue is critical, we may choose to include it in our current milestone for immediate handling or potentially patching.
|
||||
If the bug is relatively high impact, we will move the issue into the `Next Sprint Planning` milestone to review during our [next sprint planning](#milestone-planning) meeting.
|
||||
If the impact is unclear or the is a very corner case scenario, we may move it to the `Backlog` milestone to further evaluate the impact by reviewing customer upvotes / comments at a later time.
|
||||
|
||||
### Investigations
|
||||
In many situations it's not immediately clear whether a specific issue reported is a bug or not. To be certain, the team will need to spend time to investigate it before making a call regarding the faith of the issue. In these situations we will apply the `investigate` label to the issue.
|
||||
In many situations, these issues turn out to be a result of some kind of misconfiguration in the user code.
|
||||
In some rare situations, however, these turn out to be caused by very impactful issues. So we will make a call during the triage whether we need to immediately investigate certain issues or not.
|
||||
If not, we will move the investigation to the `Next Sprint Planning` to review during the [next sprint planning meeting](#milestone-planning).
|
||||
|
||||
### Documentation requests
|
||||
Some issues turn out to indicate user confusion around how to configure different aspects of the framework.
|
||||
When we determine such isssues, we will mark these with the `Docs` label and move them into the `Next Sprint Planning` milestone to handle at a later time. The goal here will be to fill in the gaps or clarify our documentation, so that customers can be successful by using the guidance provided in the documentation.
|
||||
If we identify a documentation issue which too many customers are having trouble with, we may choose to address that in current milestone.
|
||||
|
||||
## Milestone Planning
|
||||
Our milestones are usually a month long.
|
||||
Before each milestone we have one or more planning meetings, where we look through all the accumulated issues in the `Next Sprint Planning` milestone and choose the most important and impactful ones to handle during the next milestone. This will be a mixture of feature requests, bug fixes, documentation issues as well as some investigations.
|
||||
|
||||
Note, that we will investigate only issues, which have accumulated more than certain number of upvotes and/or comments, which will indicate that there is some wider impact associated with it.
|
||||
We may not investigate issues which haven't received many votes/comments and choose to close these. The reason is that the impact is very scoped and potentially something is wrong in the user code. Consider asking these questions on StackOverflow.
|
||||
|
||||
For some feature requests and bug reports, depending on the user involvement, we may choose to move these to the backlog at this point. What this means, is that they will not be looked at again up until the next major release planning.
|
||||
|
||||
## Release Planning
|
||||
Once we approach to the end of the release cylce (.NET Core 3, .NET 5) we will look through the accumulated issues in the `Backlog` milestone. This is a long process as the amount of issues accumulated in this milestone is quite large.
|
||||
|
||||
We will try to prioritize issues with most community requests / upvotes assuming these are aligned with our goals.
|
||||
Issues, which we will think are candidates for the upcoming release, will be moved to the `Next Sprint Planning` milestone.
|
||||
|
||||
## Process Visualization
|
||||
The following diagram summarizes the processes detailed above:
|
||||

|
||||
|
|
@ -0,0 +1,23 @@
|
|||
The below table lists all the `area-`labels used in the `aspnetcore` repository and their owners:
|
||||
|
||||
| Area label | Owner | Description|
|
||||
|--- | ---| --- |
|
||||
| area-azure | anurse | |
|
||||
| area-blazor | mkArtakMSFT | Blazor server and Blazor WASM related |
|
||||
| area-commandlinetools | anurse, mkArtakMSFT | dev certs, dotnet watch, |
|
||||
| area-dataprotection | anurse | |
|
||||
| area-grpc | shirhatti | |
|
||||
| area-healthchecks | rynowak | |
|
||||
| area-hosting | anurse | |
|
||||
| area-httpclientfactory | anurse | |
|
||||
| area-identity | blowdart | |
|
||||
| area-infrastructure | dougbu | |
|
||||
| area-installers | anurse | |
|
||||
| area-middleware | anurse | |
|
||||
| area-mvc | mkArtakMSFT | |
|
||||
| area-perf | anurse | |
|
||||
| area-platform | anurse | |
|
||||
| area-security | blowdart | |
|
||||
| area-servers | anurse | |
|
||||
| area-signalr | anurse | |
|
||||
| area-websockets | anurse | |
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
# AspNetCore Tooling Consolidation
|
||||
|
||||
## Objectives
|
||||
|
||||
We want to consolidate dotnet/aspnetcore-tooling into dotnet/aspnetcore to achieve 3 goals
|
||||
1. Reduce overall build time end to end for the .NET Core SDK
|
||||
2. Reduce the complexity of maintaining multiple repositories.
|
||||
3. Maintain, or if possible, improve, developer productivity
|
||||
|
||||
We are prioritizing the first objective since it is part of a cross-team efforct to reduce the SDK build time. To ensure we are able to achieve this goal quickly and with minimal risk, we plan to take a multi-phase approach. The first phase will involve moving the language components from aspnetcore-tooling to aspnetcore which is required for the SDK build. The second phase will involve a more gradual migration for the remaining tooling components with an emphasis on maintaining developer productivity.
|
||||
|
||||
## Phase one: Migration of language components
|
||||
|
||||
In this phase, we are primarily concerned with the overall goals of repo consolidation to reduce the number of repository required to build the SDK while keeping the build in aspnetcore as simple as possible without needing to support build/test for tooling scenarios such as testing on VSCode. As such, we will not require all of aspnetcore-tooling to be merged into aspnetcore. For example, tooling for VSMac and VSCode will remain in aspnetcore-tooling. There is also an added benefit of maintaining the current development and release workflow for aspnetcore-tooling which is more "agile" than aspnetcore (e.g. faster PR builds, release cycles that synchronize with VS releases).
|
||||
|
||||
To achieve this we will be migrating the following (and associated tests) from aspnetcore-tooling to aspnetcore:
|
||||
```
|
||||
Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X
|
||||
Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X
|
||||
Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||
Microsoft.AspNetCore.Razor.Language
|
||||
Microsoft.AspNetCore.Razor.Tools
|
||||
Microsoft.CodeAnalysis.Razor
|
||||
Microsoft.NET.Sdk.Razor
|
||||
````
|
||||
The following (and associated tests) will remain in aspnetcore-tooling:
|
||||
```
|
||||
Microsoft.AspNetCore.Razor.LanguageServer.Common
|
||||
Microsoft.AspNetCore.Razor.LanguageServer
|
||||
Microsoft.AspNetCore.Razor.OmniSharpPlugin.StrongNamed
|
||||
Microsoft.AspNetCore.Razor.OmniSharpPlugin
|
||||
Microsoft.AspNetCore.Razor.VSCode.Extension
|
||||
Microsoft.AspNetCore.Razor.VSCode
|
||||
Microsoft.CodeAnalysis.Razor.Workspaces
|
||||
Microsoft.CodeAnalysis.Remote.Razor
|
||||
Microsoft.VisualStudio.Editor.Razor
|
||||
Microsoft.VisualStudio.LanguageServerClient.Razor
|
||||
Microsoft.VisualStudio.LanguageServices.Razor
|
||||
Microsoft.VisualStudio.LiveShare.Razor
|
||||
Microsoft.VisualStudio.Mac.LanguageServices.Razor
|
||||
Microsoft.VisualStudio.Mac.RazorAddin
|
||||
Microsoft.VisualStudio.RazorExtension
|
||||
RazorDeveloperTools
|
||||
rzls
|
||||
````
|
||||
THe following will be deleted:
|
||||
```
|
||||
RazorPageGenerator
|
||||
```
|
||||
|
||||
Due to the separation of tooling projects, the new dependency flow will be:
|
||||
|
||||
```
|
||||
runtime +--> aspnetcore +--> SDK
|
||||
\ \
|
||||
+-> extensions -+-> aspnetcore-tooling
|
||||
```
|
||||
### Known action items
|
||||
|
||||
1. Migrate source with `git filter-branch`, preserving commit history
|
||||
2. Migration of pending PRs to aspnetcore after source migration.
|
||||
1. Alternatively, we can freeze checkins during source migration especially since there isn't much source code that requires migration
|
||||
3. It seems like we do not need a pre-build step to build the Razor SDK for consumption elsewhere in the repo. It is possible to add a project dependency along with appropriate props/target imports
|
||||
4. Invert darc subscriptions so aspnetcore flows into aspnetcore-tooling
|
||||
|
||||
## Phase two: Migration of tooling components
|
||||
|
||||
After phase one is completed, we will migrate the tooling components remaining in aspnetcore-tooling piecemeal at a time as required. Our current understanding is that we will eventually be moving all of aspnetcore-tooling into aspnetcore but this can be scoped as appropriate given time/resource constraints. The overall goal here is to reduce build complexity in our repos and maintain developer productivity. As such, more discussion will be made with area owners to identify workflow impacts.
|
||||
|
||||
## Major considerations
|
||||
|
||||
### Pinning Roslyn dependencies
|
||||
|
||||
Due to runtime and tooling divergence of Roslyn packages, we may need to pin multiple versions of Roslyn dependencies for the migrated packages.
|
||||
|
||||
### Assets
|
||||
|
||||
The migrated projects are C# only in phase one so we will use existing infrastructure in aspnetcore to handle signing and publishing of these packages. Phase two will involve additional asset types including vsix, zips, npm packages and mpacks. We have asset publishing mechanisms for most of these asset types but may need to add addtional asset publishing mechanisms and/or release management for some assets (mpacks for example). We will evaluate the additional requirements when phase two is discussed.
|
||||
|
||||
### Developer efficiency (PR builds)
|
||||
|
||||
A concern that has been voiced is that working in aspnetcore would be significantly slower than in aspnetcore-tooling given that the PR validation in aspnetcore takes longer. For comparison, it takes about 30 mins to run builds and tests in aspnetcore-tooling whereas builds and tests in aspnetcore takes about 1.5 - 2 hours. We are making efforts in improving this experience but it will be out of scope of aspnetcore-tooling consolidation.
|
||||
|
||||
Note that this will only apply to the migrated language projects in phase one. In phase two, we will explore several approaches to improve this area. We are considering adopting additiona logic (from dotnet/runtime) that will allow us to run only portions of tests based on what source changes were detected. However, we will always build the entire repository regardless of what source changes were made.
|
||||
|
||||
### Testing
|
||||
|
||||
In phase one, the migrated projects are C# only so there are no test infrasture changes needed in aspnetcore. The existing vscode jest, and node tests will remain in aspnetcore-tooling during phase one and will be migrated in phase two.
|
||||
|
||||
### Reliability
|
||||
|
||||
There is concern that there is test reliability issues in both repos and combining them would aggravate the problem in aspnetcore. This has been deemed a non-issue in phase one since the test to be migrated are found to be very reliable. For phase two, we will ensure tests are reliable before we migrate each tooling component over to aspnetcore.
|
||||
|
||||
### Release cycles
|
||||
|
||||
Tooling release cycles is a cross product of .NET Core (2.1, 3.1, 5.0) and VS (vs-mac, vscode, vs) release cycles. In phase one, the packages we are migrating are only released on .NET Core cycles so it should not add any complexity to servicing in aspnetcore. We will follow the existing branching and servicing strategies. In phase two, we will evaluate branching and release policies for tooling components.
|
||||
|
||||
### Cross-repo changes
|
||||
|
||||
Given that some of the work in tooling scenarios may involve projects in both aspnetcore and aspnetcore-tooling, there is added complexity here to coordinate cross-repo changes. However, this concern is already present due to the dependency of aspnetcore on aspnetcore-tooling. This problem is not new but will affect different projects after the migration; some current cross-repo changes will be easier while some changes between language and tooling packages will be more burdensome.
|
||||
|
||||
## Timeline and costs
|
||||
|
||||
Phase one can begin as soon as possible and will likely take about 1 week. Phase two's schedule and costs are TBD.
|
||||
|
|
@ -1,12 +1,10 @@
|
|||
<Project>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(GenerateChecksums)' == 'true'" />
|
||||
|
||||
<PropertyGroup Condition="'$(GenerateChecksums)' == 'true'">
|
||||
<!-- The one use of ArtifactsDir in Publish.proj adds an additional slash, confusing itself. -->
|
||||
<ArtifactsDir Condition=" HasTrailingSlash('$(ArtifactsDir)') ">$(ArtifactsDir.Substring(0, $([MSBuild]::Subtract($(ArtifactsDir.Length), 1))))</ArtifactsDir>
|
||||
<!-- $(InstallersOutputPath) is not defined. Root Directory.Build.props is not imported. -->
|
||||
<InstallersOutputPath>$(ArtifactsDir)\installers\</InstallersOutputPath>
|
||||
<_SuppressSdkImports>false</_SuppressSdkImports>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="PopulateGenerateChecksumItems"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@
|
|||
<Import Project="SharedFramework.Local.props" />
|
||||
|
||||
<!-- This is temporary until we can use FrameworkReference to build our own packages. -->
|
||||
<Target Name="RemoveSharedFrameworkOnlyRefsFromNuspec" AfterTargets="Pack">
|
||||
<Target Name="RemoveSharedFrameworkOnlyRefsFromNuspec" AfterTargets="Pack"
|
||||
Condition=" '$(MSBuildRuntimeType)' == 'core' ">
|
||||
<ItemGroup>
|
||||
<_BuildOutput Include="$(ArtifactsShippingPackagesDir)*.nupkg"
|
||||
Exclude="$(ArtifactsShippingPackagesDir)*.symbols.nupkg" />
|
||||
|
|
@ -14,7 +15,7 @@
|
|||
<RepoTasks.RemoveSharedFrameworkDependencies Condition="@(_BuildOutput->Count()) != 0"
|
||||
Files="@(_BuildOutput)"
|
||||
FrameworkOnlyPackages="@(AspNetCoreAppReference)"
|
||||
SharedFrameworkTargetFramework="netcoreapp$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)" />
|
||||
SharedFrameworkTargetFramework="net$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,216 @@
|
|||
<?xml version="1.0"?>
|
||||
<RuleSet Name="All Rules Disabled" Description="All Rules are disabled." ToolsVersion="15.0">
|
||||
<Rules AnalyzerId="Microsoft.CodeAnalysis.FxCopAnalyzers" RuleNamespace="Microsoft.CodeAnalysis.FxCopAnalyzers">
|
||||
<Rule Id="CA1000" Action="None" /> <!-- Do not declare static members on generic types -->
|
||||
<Rule Id="CA1001" Action="None" /> <!-- Types that own disposable fields should be disposable -->
|
||||
<Rule Id="CA1003" Action="None" /> <!-- Use generic event handler instances -->
|
||||
<Rule Id="CA1008" Action="None" /> <!-- Enums should have zero value -->
|
||||
<Rule Id="CA1010" Action="None" /> <!-- Generic interface should also be implemented -->
|
||||
<Rule Id="CA1012" Action="None" /> <!-- Abstract types should not have constructors -->
|
||||
<Rule Id="CA1014" Action="None" /> <!-- Mark assemblies with CLSCompliant -->
|
||||
<Rule Id="CA1016" Action="None" /> <!-- Mark assemblies with assembly version -->
|
||||
<Rule Id="CA1017" Action="None" /> <!-- Mark assemblies with ComVisible -->
|
||||
<Rule Id="CA1018" Action="None" /> <!-- Mark attributes with AttributeUsageAttribute -->
|
||||
<Rule Id="CA1019" Action="None" /> <!-- Define accessors for attribute arguments -->
|
||||
<Rule Id="CA1021" Action="None" /> <!-- Avoid out parameters -->
|
||||
<Rule Id="CA1024" Action="None" /> <!-- Use properties where appropriate -->
|
||||
<Rule Id="CA1027" Action="None" /> <!-- Mark enums with FlagsAttribute -->
|
||||
<Rule Id="CA1028" Action="None" /> <!-- Enum Storage should be Int32 -->
|
||||
<Rule Id="CA1030" Action="None" /> <!-- Use events where appropriate -->
|
||||
<Rule Id="CA1031" Action="None" /> <!-- Do not catch general exception types -->
|
||||
<Rule Id="CA1032" Action="None" /> <!-- Implement standard exception constructors -->
|
||||
<Rule Id="CA1033" Action="None" /> <!-- Interface methods should be callable by child types -->
|
||||
<Rule Id="CA1034" Action="None" /> <!-- Nested types should not be visible -->
|
||||
<Rule Id="CA1036" Action="None" /> <!-- Override methods on comparable types -->
|
||||
<Rule Id="CA1040" Action="None" /> <!-- Avoid empty interfaces -->
|
||||
<Rule Id="CA1041" Action="None" /> <!-- Provide ObsoleteAttribute message -->
|
||||
<Rule Id="CA1043" Action="None" /> <!-- Use Integral Or String Argument For Indexers -->
|
||||
<Rule Id="CA1044" Action="None" /> <!-- Properties should not be write only -->
|
||||
<Rule Id="CA1050" Action="None" /> <!-- Declare types in namespaces -->
|
||||
<Rule Id="CA1051" Action="None" /> <!-- Do not declare visible instance fields -->
|
||||
<Rule Id="CA1052" Action="None" /> <!-- Static holder types should be Static or NotInheritable -->
|
||||
<Rule Id="CA1054" Action="None" /> <!-- Uri parameters should not be strings -->
|
||||
<Rule Id="CA1055" Action="None" /> <!-- Uri return values should not be strings -->
|
||||
<Rule Id="CA1056" Action="None" /> <!-- Uri properties should not be strings -->
|
||||
<Rule Id="CA1058" Action="None" /> <!-- Types should not extend certain base types -->
|
||||
<Rule Id="CA1060" Action="None" /> <!-- Move pinvokes to native methods class -->
|
||||
<Rule Id="CA1061" Action="None" /> <!-- Do not hide base class methods -->
|
||||
<Rule Id="CA1062" Action="None" /> <!-- Validate arguments of public methods -->
|
||||
<Rule Id="CA1063" Action="None" /> <!-- Implement IDisposable Correctly -->
|
||||
<Rule Id="CA1064" Action="None" /> <!-- Exceptions should be public -->
|
||||
<Rule Id="CA1065" Action="None" /> <!-- Do not raise exceptions in unexpected locations -->
|
||||
<Rule Id="CA1066" Action="None" /> <!-- Type {0} should implement IEquatable<T> because it overrides Equals -->
|
||||
<Rule Id="CA1067" Action="None" /> <!-- Override Object.Equals(object) when implementing IEquatable<T> -->
|
||||
<Rule Id="CA1068" Action="None" /> <!-- CancellationToken parameters must come last -->
|
||||
<Rule Id="CA1069" Action="None" /> <!-- Enums values should not be duplicated -->
|
||||
<Rule Id="CA1200" Action="None" /> <!-- Avoid using cref tags with a prefix -->
|
||||
<Rule Id="CA1303" Action="None" /> <!-- Do not pass literals as localized parameters -->
|
||||
<Rule Id="CA1304" Action="None" /> <!-- Specify CultureInfo -->
|
||||
<Rule Id="CA1305" Action="None" /> <!-- Specify IFormatProvider -->
|
||||
<Rule Id="CA1307" Action="None" /> <!-- Specify StringComparison -->
|
||||
<Rule Id="CA1308" Action="None" /> <!-- Normalize strings to uppercase -->
|
||||
<Rule Id="CA1309" Action="None" /> <!-- Use ordinal stringcomparison -->
|
||||
<Rule Id="CA1401" Action="None" /> <!-- P/Invokes should not be visible -->
|
||||
<Rule Id="CA1501" Action="None" /> <!-- Avoid excessive inheritance -->
|
||||
<Rule Id="CA1502" Action="None" /> <!-- Avoid excessive complexity -->
|
||||
<Rule Id="CA1505" Action="None" /> <!-- Avoid unmaintainable code -->
|
||||
<Rule Id="CA1506" Action="None" /> <!-- Avoid excessive class coupling -->
|
||||
<Rule Id="CA1507" Action="None" /> <!-- Use nameof to express symbol names -->
|
||||
<Rule Id="CA1508" Action="None" /> <!-- Avoid dead conditional code -->
|
||||
<Rule Id="CA1509" Action="None" /> <!-- Invalid entry in code metrics rule specification file -->
|
||||
<Rule Id="CA1707" Action="None" /> <!-- Identifiers should not contain underscores -->
|
||||
<Rule Id="CA1708" Action="None" /> <!-- Identifiers should differ by more than case -->
|
||||
<Rule Id="CA1710" Action="None" /> <!-- Identifiers should have correct suffix -->
|
||||
<Rule Id="CA1711" Action="None" /> <!-- Identifiers should not have incorrect suffix -->
|
||||
<Rule Id="CA1712" Action="None" /> <!-- Do not prefix enum values with type name -->
|
||||
<Rule Id="CA1714" Action="None" /> <!-- Flags enums should have plural names -->
|
||||
<Rule Id="CA1715" Action="None" /> <!-- Identifiers should have correct prefix -->
|
||||
<Rule Id="CA1716" Action="None" /> <!-- Identifiers should not match keywords -->
|
||||
<Rule Id="CA1717" Action="None" /> <!-- Only FlagsAttribute enums should have plural names -->
|
||||
<Rule Id="CA1720" Action="None" /> <!-- Identifier contains type name -->
|
||||
<Rule Id="CA1721" Action="None" /> <!-- Property names should not match get methods -->
|
||||
<Rule Id="CA1724" Action="None" /> <!-- Type names should not match namespaces -->
|
||||
<Rule Id="CA1725" Action="None" /> <!-- Parameter names should match base declaration -->
|
||||
<Rule Id="CA1801" Action="None" /> <!-- Review unused parameters -->
|
||||
<Rule Id="CA1802" Action="None" /> <!-- Use literals where appropriate -->
|
||||
<Rule Id="CA1806" Action="None" /> <!-- Do not ignore method results -->
|
||||
<Rule Id="CA1810" Action="None" /> <!-- Initialize reference type static fields inline -->
|
||||
<Rule Id="CA1812" Action="None" /> <!-- Avoid uninstantiated internal classes -->
|
||||
<Rule Id="CA1813" Action="None" /> <!-- Avoid unsealed attributes -->
|
||||
<Rule Id="CA1814" Action="None" /> <!-- Prefer jagged arrays over multidimensional -->
|
||||
<Rule Id="CA1815" Action="None" /> <!-- Override equals and operator equals on value types -->
|
||||
<Rule Id="CA1816" Action="None" /> <!-- Dispose methods should call SuppressFinalize -->
|
||||
<Rule Id="CA1819" Action="None" /> <!-- Properties should not return arrays -->
|
||||
<Rule Id="CA1820" Action="None" /> <!-- Test for empty strings using string length -->
|
||||
<Rule Id="CA1821" Action="None" /> <!-- Remove empty Finalizers -->
|
||||
<Rule Id="CA1822" Action="None" /> <!-- Mark members as static -->
|
||||
<Rule Id="CA1823" Action="None" /> <!-- Avoid unused private fields -->
|
||||
<Rule Id="CA1824" Action="None" /> <!-- Mark assemblies with NeutralResourcesLanguageAttribute -->
|
||||
<Rule Id="CA1825" Action="None" /> <!-- Avoid zero-length array allocations. -->
|
||||
<Rule Id="CA1826" Action="None" /> <!-- Do not use Enumerable methods on indexable collections. Instead use the collection directly -->
|
||||
<Rule Id="CA1827" Action="None" /> <!-- Do not use Count() or LongCount() when Any() can be used -->
|
||||
<Rule Id="CA1828" Action="None" /> <!-- Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used -->
|
||||
<Rule Id="CA1829" Action="None" /> <!-- Use Length/Count property instead of Count() when available -->
|
||||
<Rule Id="CA2000" Action="None" /> <!-- Dispose objects before losing scope -->
|
||||
<Rule Id="CA2002" Action="None" /> <!-- Do not lock on objects with weak identity -->
|
||||
<Rule Id="CA2007" Action="None" /> <!-- Consider calling ConfigureAwait on the awaited task -->
|
||||
<Rule Id="CA2008" Action="None" /> <!-- Do not create tasks without passing a TaskScheduler -->
|
||||
<Rule Id="CA2009" Action="None" /> <!-- Do not call ToImmutableCollection on an ImmutableCollection value -->
|
||||
<Rule Id="CA2010" Action="None" /> <!-- Always consume the value returned by methods marked with PreserveSigAttribute -->
|
||||
<Rule Id="CA2011" Action="None" /> <!-- Avoid infinite recursion -->
|
||||
<Rule Id="CA2012" Action="None" /> <!-- Use ValueTasks correctly -->
|
||||
<Rule Id="CA2013" Action="None" /> <!-- Do not use ReferenceEquals with value types -->
|
||||
<Rule Id="CA2100" Action="None" /> <!-- Review SQL queries for security vulnerabilities -->
|
||||
<Rule Id="CA2101" Action="None" /> <!-- Specify marshaling for P/Invoke string arguments -->
|
||||
<Rule Id="CA2119" Action="None" /> <!-- Seal methods that satisfy private interfaces -->
|
||||
<Rule Id="CA2153" Action="None" /> <!-- Do Not Catch Corrupted State Exceptions -->
|
||||
<Rule Id="CA2200" Action="None" /> <!-- Rethrow to preserve stack details. -->
|
||||
<Rule Id="CA2201" Action="None" /> <!-- Do not raise reserved exception types -->
|
||||
<Rule Id="CA2207" Action="None" /> <!-- Initialize value type static fields inline -->
|
||||
<Rule Id="CA2208" Action="None" /> <!-- Instantiate argument exceptions correctly -->
|
||||
<Rule Id="CA2211" Action="None" /> <!-- Non-constant fields should not be visible -->
|
||||
<Rule Id="CA2213" Action="None" /> <!-- Disposable fields should be disposed -->
|
||||
<Rule Id="CA2214" Action="None" /> <!-- Do not call overridable methods in constructors -->
|
||||
<Rule Id="CA2215" Action="None" /> <!-- Dispose methods should call base class dispose -->
|
||||
<Rule Id="CA2216" Action="None" /> <!-- Disposable types should declare finalizer -->
|
||||
<Rule Id="CA2217" Action="None" /> <!-- Do not mark enums with FlagsAttribute -->
|
||||
<Rule Id="CA2218" Action="None" /> <!-- Override GetHashCode on overriding Equals -->
|
||||
<Rule Id="CA2219" Action="None" /> <!-- Do not raise exceptions in finally clauses -->
|
||||
<Rule Id="CA2224" Action="None" /> <!-- Override Equals on overloading operator equals -->
|
||||
<Rule Id="CA2225" Action="None" /> <!-- Operator overloads have named alternates -->
|
||||
<Rule Id="CA2226" Action="None" /> <!-- Operators should have symmetrical overloads -->
|
||||
<Rule Id="CA2227" Action="None" /> <!-- Collection properties should be read only -->
|
||||
<Rule Id="CA2229" Action="None" /> <!-- Implement serialization constructors -->
|
||||
<Rule Id="CA2231" Action="None" /> <!-- Overload operator equals on overriding value type Equals -->
|
||||
<Rule Id="CA2234" Action="None" /> <!-- Pass system uri objects instead of strings -->
|
||||
<Rule Id="CA2235" Action="None" /> <!-- Mark all non-serializable fields -->
|
||||
<Rule Id="CA2237" Action="None" /> <!-- Mark ISerializable types with serializable -->
|
||||
<Rule Id="CA2241" Action="None" /> <!-- Provide correct arguments to formatting methods -->
|
||||
<Rule Id="CA2242" Action="None" /> <!-- Test for NaN correctly -->
|
||||
<Rule Id="CA2243" Action="None" /> <!-- Attribute string literals should parse correctly -->
|
||||
<Rule Id="CA2244" Action="None" /> <!-- Do not duplicate indexed element initializations -->
|
||||
<Rule Id="CA2245" Action="None" /> <!-- Do not assign a property to itself. -->
|
||||
<Rule Id="CA2246" Action="None" /> <!-- Assigning symbol and its member in the same statement. -->
|
||||
<Rule Id="CA2300" Action="None" /> <!-- Do not use insecure deserializer BinaryFormatter -->
|
||||
<Rule Id="CA2301" Action="None" /> <!-- Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder -->
|
||||
<Rule Id="CA2302" Action="None" /> <!-- Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize -->
|
||||
<Rule Id="CA2305" Action="None" /> <!-- Do not use insecure deserializer LosFormatter -->
|
||||
<Rule Id="CA2310" Action="None" /> <!-- Do not use insecure deserializer NetDataContractSerializer -->
|
||||
<Rule Id="CA2311" Action="None" /> <!-- Do not deserialize without first setting NetDataContractSerializer.Binder -->
|
||||
<Rule Id="CA2312" Action="None" /> <!-- Ensure NetDataContractSerializer.Binder is set before deserializing -->
|
||||
<Rule Id="CA2315" Action="None" /> <!-- Do not use insecure deserializer ObjectStateFormatter -->
|
||||
<Rule Id="CA2321" Action="None" /> <!-- Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver -->
|
||||
<Rule Id="CA2322" Action="None" /> <!-- Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing -->
|
||||
<Rule Id="CA2326" Action="None" /> <!-- Do not use TypeNameHandling values other than None -->
|
||||
<Rule Id="CA2327" Action="None" /> <!-- Do not use insecure JsonSerializerSettings -->
|
||||
<Rule Id="CA2328" Action="None" /> <!-- Ensure that JsonSerializerSettings are secure -->
|
||||
<Rule Id="CA2329" Action="None" /> <!-- Do not deserialize with JsonSerializer using an insecure configuration -->
|
||||
<Rule Id="CA2330" Action="None" /> <!-- Ensure that JsonSerializer has a secure configuration when deserializing -->
|
||||
<Rule Id="CA3001" Action="None" /> <!-- Review code for SQL injection vulnerabilities -->
|
||||
<Rule Id="CA3002" Action="None" /> <!-- Review code for XSS vulnerabilities -->
|
||||
<Rule Id="CA3003" Action="None" /> <!-- Review code for file path injection vulnerabilities -->
|
||||
<Rule Id="CA3004" Action="None" /> <!-- Review code for information disclosure vulnerabilities -->
|
||||
<Rule Id="CA3005" Action="None" /> <!-- Review code for LDAP injection vulnerabilities -->
|
||||
<Rule Id="CA3006" Action="None" /> <!-- Review code for process command injection vulnerabilities -->
|
||||
<Rule Id="CA3007" Action="None" /> <!-- Review code for open redirect vulnerabilities -->
|
||||
<Rule Id="CA3008" Action="None" /> <!-- Review code for XPath injection vulnerabilities -->
|
||||
<Rule Id="CA3009" Action="None" /> <!-- Review code for XML injection vulnerabilities -->
|
||||
<Rule Id="CA3010" Action="None" /> <!-- Review code for XAML injection vulnerabilities -->
|
||||
<Rule Id="CA3011" Action="None" /> <!-- Review code for DLL injection vulnerabilities -->
|
||||
<Rule Id="CA3012" Action="None" /> <!-- Review code for regex injection vulnerabilities -->
|
||||
<Rule Id="CA3061" Action="None" /> <!-- Do Not Add Schema By URL -->
|
||||
<Rule Id="CA3075" Action="None" /> <!-- Insecure DTD processing in XML -->
|
||||
<Rule Id="CA3076" Action="None" /> <!-- Insecure XSLT script processing. -->
|
||||
<Rule Id="CA3077" Action="None" /> <!-- Insecure Processing in API Design, XmlDocument and XmlTextReader -->
|
||||
<Rule Id="CA3147" Action="None" /> <!-- Mark Verb Handlers With Validate Antiforgery Token -->
|
||||
<Rule Id="CA5350" Action="None" /> <!-- Do Not Use Weak Cryptographic Algorithms -->
|
||||
<Rule Id="CA5351" Action="None" /> <!-- Do Not Use Broken Cryptographic Algorithms -->
|
||||
<Rule Id="CA5358" Action="None" /> <!-- Review cipher mode usage with cryptography experts -->
|
||||
<Rule Id="CA5359" Action="None" /> <!-- Do Not Disable Certificate Validation -->
|
||||
<Rule Id="CA5360" Action="None" /> <!-- Do Not Call Dangerous Methods In Deserialization -->
|
||||
<Rule Id="CA5361" Action="None" /> <!-- Do Not Disable SChannel Use of Strong Crypto -->
|
||||
<Rule Id="CA5362" Action="None" /> <!-- Do Not Refer Self In Serializable Class -->
|
||||
<Rule Id="CA5363" Action="None" /> <!-- Do Not Disable Request Validation -->
|
||||
<Rule Id="CA5364" Action="None" /> <!-- Do Not Use Deprecated Security Protocols -->
|
||||
<Rule Id="CA5365" Action="None" /> <!-- Do Not Disable HTTP Header Checking -->
|
||||
<Rule Id="CA5366" Action="None" /> <!-- Use XmlReader For DataSet Read Xml -->
|
||||
<Rule Id="CA5367" Action="None" /> <!-- Do Not Serialize Types With Pointer Fields -->
|
||||
<Rule Id="CA5368" Action="None" /> <!-- Set ViewStateUserKey For Classes Derived From Page -->
|
||||
<Rule Id="CA5369" Action="None" /> <!-- Use XmlReader For Deserialize -->
|
||||
<Rule Id="CA5370" Action="None" /> <!-- Use XmlReader For Validating Reader -->
|
||||
<Rule Id="CA5371" Action="None" /> <!-- Use XmlReader For Schema Read -->
|
||||
<Rule Id="CA5372" Action="None" /> <!-- Use XmlReader For XPathDocument -->
|
||||
<Rule Id="CA5373" Action="None" /> <!-- Do not use obsolete key derivation function -->
|
||||
<Rule Id="CA5374" Action="None" /> <!-- Do Not Use XslTransform -->
|
||||
<Rule Id="CA5375" Action="None" /> <!-- Do Not Use Account Shared Access Signature -->
|
||||
<Rule Id="CA5376" Action="None" /> <!-- Use SharedAccessProtocol HttpsOnly -->
|
||||
<Rule Id="CA5377" Action="None" /> <!-- Use Container Level Access Policy -->
|
||||
<Rule Id="CA5378" Action="None" /> <!-- Do not disable ServicePointManagerSecurityProtocols -->
|
||||
<Rule Id="CA5379" Action="None" /> <!-- Do Not Use Weak Key Derivation Function Algorithm -->
|
||||
<Rule Id="CA5380" Action="None" /> <!-- Do Not Add Certificates To Root Store -->
|
||||
<Rule Id="CA5381" Action="None" /> <!-- Ensure Certificates Are Not Added To Root Store -->
|
||||
<Rule Id="CA5382" Action="None" /> <!-- Use Secure Cookies In ASP.Net Core -->
|
||||
<Rule Id="CA5383" Action="None" /> <!-- Ensure Use Secure Cookies In ASP.Net Core -->
|
||||
<Rule Id="CA5384" Action="None" /> <!-- Do Not Use Digital Signature Algorithm (DSA) -->
|
||||
<Rule Id="CA5385" Action="None" /> <!-- Use Rivest–Shamir–Adleman (RSA) Algorithm With Sufficient Key Size -->
|
||||
<Rule Id="CA5386" Action="None" /> <!-- Avoid hardcoding SecurityProtocolType value -->
|
||||
<Rule Id="CA5387" Action="None" /> <!-- Do Not Use Weak Key Derivation Function With Insufficient Iteration Count -->
|
||||
<Rule Id="CA5388" Action="None" /> <!-- Ensure Sufficient Iteration Count When Using Weak Key Derivation Function -->
|
||||
<Rule Id="CA5389" Action="None" /> <!-- Do Not Add Archive Item's Path To The Target File System Path -->
|
||||
<Rule Id="CA5390" Action="None" /> <!-- Do not hard-code encryption key -->
|
||||
<Rule Id="CA5391" Action="None" /> <!-- Use antiforgery tokens in ASP.NET Core MVC controllers -->
|
||||
<Rule Id="CA5392" Action="None" /> <!-- Use DefaultDllImportSearchPaths attribute for P/Invokes -->
|
||||
<Rule Id="CA5393" Action="None" /> <!-- Do not use unsafe DllImportSearchPath value -->
|
||||
<Rule Id="CA5394" Action="None" /> <!-- Do not use insecure randomness -->
|
||||
<Rule Id="CA5395" Action="None" /> <!-- Miss HttpVerb attribute for action methods -->
|
||||
<Rule Id="CA5396" Action="None" /> <!-- Set HttpOnly to true for HttpCookie -->
|
||||
<Rule Id="CA5397" Action="None" /> <!-- Do not use deprecated SslProtocols values -->
|
||||
<Rule Id="CA5398" Action="None" /> <!-- Avoid hardcoded SslProtocols values -->
|
||||
<Rule Id="CA5399" Action="None" /> <!-- HttpClients should enable certificate revocation list checks -->
|
||||
<Rule Id="CA5400" Action="None" /> <!-- Ensure HttpClient certificate revocation list check is not disabled -->
|
||||
<Rule Id="CA5401" Action="None" /> <!-- Do not use CreateEncryptor with non-default IV -->
|
||||
<Rule Id="CA5402" Action="None" /> <!-- Use CreateEncryptor with the default IV -->
|
||||
<Rule Id="CA5403" Action="None" /> <!-- Do not hard-code certificate -->
|
||||
<Rule Id="CA9999" Action="None" /> <!-- Analyzer version mismatch -->
|
||||
</Rules>
|
||||
</RuleSet>
|
||||
|
|
@ -1,14 +1,5 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<TargetRuntimeIdentifier Condition="'$(TargetRuntimeIdentifier)' == ''">$(TargetOsName)-$(TargetArchitecture)</TargetRuntimeIdentifier>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(BuildAllProjects)' == 'true' ">
|
||||
<BuildNative Condition="'$(BuildNative)' == ''">true</BuildNative>
|
||||
<BuildManaged Condition="'$(BuildManaged)' == ''">true</BuildManaged>
|
||||
<BuildNodeJS Condition="'$(BuildNodeJS)' == ''">true</BuildNodeJS>
|
||||
<BuildJava Condition="'$(BuildJava)' == ''">true</BuildJava>
|
||||
</PropertyGroup>
|
||||
<Import Project="Common.props" />
|
||||
|
||||
<!-- These projects are always excluded, even when -projects is specified on command line. -->
|
||||
<ItemGroup>
|
||||
|
|
@ -35,7 +26,6 @@
|
|||
$(RepoRoot)src\SignalR\clients\ts\**\node_modules\**\*.*proj;
|
||||
$(RepoRoot)src\Components\Web.JS\node_modules\**\*.*proj;
|
||||
$(RepoRoot)src\Components\WebAssembly\Build\testassets\**\*.csproj;
|
||||
$(RepoRoot)src\ProjectTemplates\ComponentsWebAssembly.ProjectTemplates\content\**\*.csproj;
|
||||
$(RepoRoot)src\ProjectTemplates\Web.ProjectTemplates\content\**\*.csproj;
|
||||
$(RepoRoot)src\ProjectTemplates\Web.ProjectTemplates\content\**\*.fsproj;
|
||||
$(RepoRoot)src\ProjectTemplates\Web.Spa.ProjectTemplates\content\**\*.csproj;
|
||||
|
|
@ -43,7 +33,7 @@
|
|||
|
||||
<!-- Exclude the benchmarks because they use <PackageReference>. -->
|
||||
<ProjectToExclude Include="
|
||||
$(RepoRoot)src\Components\benchmarkapps\**\*.csproj;
|
||||
$(RepoRoot)src\Components\benchmarkapps\BlazingPizza.Server\**\*.csproj;
|
||||
$(RepoRoot)src\Mvc\benchmarkapps\**\*.csproj;
|
||||
$(RepoRoot)src\Servers\Kestrel\perf\PlatformBenchmarks\**\*.csproj;
|
||||
$(RepoRoot)src\SignalR\perf\benchmarkapps\**\*.csproj;
|
||||
|
|
@ -94,21 +84,20 @@
|
|||
Include="$(RepoRoot)src\Installers\Rpm\**\*.*proj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<NativeProjects Condition=" '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64') "
|
||||
Include="$(RepoRoot)src\**\*.vcxproj" Exclude="@(ProjectToExclude)">
|
||||
<!-- Required to prevent triggering double-builds. See src\Servers\IIS\ResolveIisReferences.targets for details. -->
|
||||
<AdditionalProperties Condition="'$(TargetArchitecture)' == 'x64'">Platform=x64</AdditionalProperties>
|
||||
<AdditionalProperties Condition="'$(TargetArchitecture)' == 'x86'">Platform=Win32</AdditionalProperties>
|
||||
</NativeProjects>
|
||||
<ItemGroup Condition=" '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64') ">
|
||||
<NativeProjects Include="$(RepoRoot)src\**\*.vcxproj" Exclude="@(ProjectToExclude)" AdditionalProperties="Platform=x64" />
|
||||
<NativeProjects Include="$(RepoRoot)src\**\*.vcxproj" Exclude="@(ProjectToExclude)" AdditionalProperties="Platform=Win32" />
|
||||
</ItemGroup>
|
||||
|
||||
<ProjectToBuild Condition=" '$(BuildNative)' == 'true'" Include="@(NativeProjects)" Exclude="@(ProjectToExclude)" />
|
||||
<ProjectToExclude Condition=" '$(BuildNative)' != 'true'" Include="@(NativeProjects)" />
|
||||
<ItemGroup>
|
||||
<ProjectToBuild Condition=" $(BuildNative) " Include="@(NativeProjects)" Exclude="@(ProjectToExclude)" />
|
||||
<ProjectToExclude Condition=" !$(BuildNative) " Include="@(NativeProjects)" />
|
||||
|
||||
<NodeJsProjects Include="
|
||||
$(RepoRoot)src\Components\Web.JS\Microsoft.AspNetCore.Components.Web.JS.npmproj;
|
||||
$(RepoRoot)src\SignalR\**\*.npmproj;
|
||||
$(RepoRoot)src\Middleware\**\*.npmproj;
|
||||
$(RepoRoot)src\JSInterop\**\*.npmproj;
|
||||
"
|
||||
RestoreInParallel="false"
|
||||
Exclude="@(ProjectToExclude)" />
|
||||
|
|
@ -122,6 +111,13 @@
|
|||
<ProjectToBuild Condition=" '$(BuildJava)' == 'true'" Include="@(JavaProjects)" Exclude="@(ProjectToExclude)" />
|
||||
<ProjectToExclude Condition=" '$(BuildJava)' != 'true'" Include="@(JavaProjects)" />
|
||||
|
||||
<!-- These interop test projects can only be restored and built after the shared framework is built -->
|
||||
<InteropProjects Include="$(RepoRoot)src\Grpc\**\*.csproj"
|
||||
Exclude="@(ProjectToExclude)" />
|
||||
|
||||
<ProjectToBuild Condition=" '$(BuildInteropProjects)' == 'true'" Include="@(InteropProjects)" Exclude="@(ProjectToExclude)" />
|
||||
<ProjectToExclude Condition=" '$(BuildInteropProjects)' != 'true'" Include="@(InteropProjects)" />
|
||||
|
||||
<!--
|
||||
Use caution to avoid deep recursion. If the globbing pattern picks up something which exceeds MAX_PATH,
|
||||
the entire pattern will silently fail to evaluate correctly.
|
||||
|
|
@ -145,6 +141,7 @@
|
|||
$(RepoRoot)src\SiteExtensions\LoggingAggregate\test\**\*.csproj;
|
||||
$(RepoRoot)src\Shared\**\*.*proj;
|
||||
$(RepoRoot)src\Tools\**\*.*proj;
|
||||
$(RepoRoot)src\Logging.AzureAppServices\**\src\*.csproj;
|
||||
$(RepoRoot)src\Middleware\**\*.csproj;
|
||||
$(RepoRoot)src\Razor\**\*.*proj;
|
||||
$(RepoRoot)src\Mvc\**\*.*proj;
|
||||
|
|
@ -153,12 +150,21 @@
|
|||
$(RepoRoot)src\SignalR\**\*.csproj;
|
||||
$(RepoRoot)src\Components\**\*.csproj;
|
||||
$(RepoRoot)src\Analyzers\**\*.csproj;
|
||||
$(RepoRoot)src\FileProviders\**\*.csproj;
|
||||
$(RepoRoot)src\Configuration.KeyPerFile\**\*.csproj;
|
||||
$(RepoRoot)src\Localization\**\*.csproj;
|
||||
$(RepoRoot)src\ObjectPool\**\*.csproj;
|
||||
$(RepoRoot)src\JSInterop\**\*.csproj;
|
||||
$(RepoRoot)src\WebEncoders\**\*.csproj;
|
||||
$(RepoRoot)src\HealthChecks\**\*.csproj;
|
||||
$(RepoRoot)src\Testing\**\*.csproj;
|
||||
$(RepoRoot)src\ProjectTemplates\*\*.csproj;
|
||||
$(RepoRoot)src\ProjectTemplates\testassets\*\*.csproj;
|
||||
"
|
||||
Exclude="
|
||||
@(ProjectToBuild);
|
||||
@(ProjectToExclude);
|
||||
$(RepoRoot)src\Razor\test\testassets\**\*.*proj;
|
||||
$(RepoRoot)**\node_modules\**\*;
|
||||
$(RepoRoot)**\bin\**\*;
|
||||
$(RepoRoot)**\obj\**\*;"
|
||||
|
|
@ -176,16 +182,26 @@
|
|||
$(RepoRoot)src\Security\**\src\*.csproj;
|
||||
$(RepoRoot)src\SiteExtensions\**\src\*.csproj;
|
||||
$(RepoRoot)src\Tools\**\src\*.csproj;
|
||||
$(RepoRoot)src\Logging.AzureAppServices\**\src\*.csproj;
|
||||
$(RepoRoot)src\Middleware\**\src\*.csproj;
|
||||
$(RepoRoot)src\Razor\**\src\*.csproj;
|
||||
$(RepoRoot)src\Mvc\**\src\*.csproj;
|
||||
$(RepoRoot)src\Azure\**\src\*.csproj;
|
||||
$(RepoRoot)src\SignalR\**\src\*.csproj;
|
||||
$(RepoRoot)src\Components\**\src\*.csproj;
|
||||
$(RepoRoot)src\FileProviders\**\src\*.csproj;
|
||||
$(RepoRoot)src\Configuration.KeyPerFile\**\src\*.csproj;
|
||||
$(RepoRoot)src\Localization\**\src\*.csproj;
|
||||
$(RepoRoot)src\ObjectPool\**\src\*.csproj;
|
||||
$(RepoRoot)src\JSInterop\**\src\*.csproj;
|
||||
$(RepoRoot)src\WebEncoders\**\src\*.csproj;
|
||||
$(RepoRoot)src\HealthChecks\**\src\*.csproj;
|
||||
$(RepoRoot)src\Testing\**\src\*.csproj;
|
||||
"
|
||||
Exclude="
|
||||
@(ProjectToBuild);
|
||||
@(ProjectToExclude);
|
||||
$(RepoRoot)src\Razor\test\testassets\**\*.*proj;
|
||||
$(RepoRoot)**\node_modules\**\*;
|
||||
$(RepoRoot)**\bin\**\*;
|
||||
$(RepoRoot)**\obj\**\*;"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('Windows'))">win</TargetOsName>
|
||||
<TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">osx</TargetOsName>
|
||||
<TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('Linux'))">linux</TargetOsName>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
|
||||
<TargetRuntimeIdentifier Condition="'$(TargetRuntimeIdentifier)' == ''">$(TargetOsName)-$(TargetArchitecture)</TargetRuntimeIdentifier>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(BuildAllProjects)' == 'true' ">
|
||||
<!-- Ignore $(BuildNative) when using MSBuild Core, on non-Windows platforms, or when C++ bits are missing. -->
|
||||
<BuildNative Condition=" '$(MSBuildRuntimeType)' == 'Core' ">false</BuildNative>
|
||||
<BuildNative Condition=" '$(TargetOsName)' != 'win' ">false</BuildNative>
|
||||
<BuildNative Condition=" '$(VCTargetsPath)' == '' ">false</BuildNative>
|
||||
<BuildNative Condition=" '$(BuildNative)' == '' ">true</BuildNative>
|
||||
|
||||
<BuildManaged Condition="'$(BuildManaged)' == ''">true</BuildManaged>
|
||||
<BuildNodeJS Condition="'$(BuildNodeJS)' == ''">true</BuildNodeJS>
|
||||
<BuildJava Condition="'$(BuildJava)' == ''">true</BuildJava>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildNative Condition=" '$(BuildNative)' == '' ">false</BuildNative>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -20,20 +20,15 @@ and are generated based on the last package release.
|
|||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemGroup Label=".NET team dependencies">
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="$(MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.Razor.Language" Version="$(MicrosoftAspNetCoreRazorLanguagePackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="$(MicrosoftBclAsyncInterfacesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Azure.SignalR" Version="$(MicrosoftAzureSignalRPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Css.Parser" Version="$(MicrosoftCssParserPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.CodeAnalysis.Common" Version="$(MicrosoftCodeAnalysisCommonPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="$(MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(MicrosoftCodeAnalysisCSharpPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.CodeAnalysis.Razor" Version="$(MicrosoftCodeAnalysisRazorPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.CSharp" Version="$(MicrosoftCSharpPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.DotNet.GenAPI" Version="$(MicrosoftDotNetGenApiPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="$(MicrosoftDotNetPlatformAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.ActivatorUtilities.Sources" Version="$(MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="$(MicrosoftExtensionsCachingAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Caching.Memory" Version="$(MicrosoftExtensionsCachingMemoryPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="$(MicrosoftExtensionsConfigurationBinderPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="$(MicrosoftExtensionsConfigurationCommandLinePackageVersion)" />
|
||||
|
|
@ -41,7 +36,6 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="$(MicrosoftExtensionsConfigurationFileExtensionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="$(MicrosoftExtensionsConfigurationIniPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.KeyPerFile" Version="$(MicrosoftExtensionsConfigurationKeyPerFilePackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="$(MicrosoftExtensionsConfigurationUserSecretsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration.Xml" Version="$(MicrosoftExtensionsConfigurationXmlPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftExtensionsConfigurationPackageVersion)" />
|
||||
|
|
@ -49,20 +43,14 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(MicrosoftExtensionsDependencyModelPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.DiagnosticAdapter" Version="$(MicrosoftExtensionsDiagnosticAdapterPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.FileProviders.Composite" Version="$(MicrosoftExtensionsFileProvidersCompositePackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="$(MicrosoftExtensionsFileSystemGlobbingPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.HashCodeCombiner.Sources" Version="$(MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.HostFactoryResolver.Sources" Version="$(MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsHostingAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsHttpPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="$(MicrosoftExtensionsLocalizationAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Localization" Version="$(MicrosoftExtensionsLocalizationPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="$(MicrosoftExtensionsLoggingConfigurationPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
|
||||
|
|
@ -71,16 +59,10 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="$(MicrosoftExtensionsLoggingEventLogPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Logging.TraceSource" Version="$(MicrosoftExtensionsLoggingTraceSourcePackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="$(MicrosoftExtensionsOptionsDataAnnotationsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="$(MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.TypeNameHelper.Sources" Version="$(MicrosoftExtensionsTypeNameHelperSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.ValueStopWatch.Sources" Version="$(MicrosoftExtensionsValueStopwatchSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.WebEncoders" Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.JSInterop" Version="$(MicrosoftJSInteropPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Win32.SystemEvents" Version="$(MicrosoftWin32SystemEventsPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Buffers" Version="$(SystemBuffersPackageVersion)" />
|
||||
|
|
@ -88,6 +70,7 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="System.CommandLine.Experimental" Version="$(SystemCommandlineExperimentalPackageVersion)" />
|
||||
<LatestPackageReference Include="System.ComponentModel" Version="$(SystemComponentModelPackageVersion)" />
|
||||
<LatestPackageReference Include="System.ComponentModel.Annotations" Version="$(SystemComponentModelAnnotationsPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Diagnostics.DiagnosticSource" Version="$(SystemDiagnosticsDiagnosticSourcePackageVersion)" />
|
||||
<LatestPackageReference Include="System.Diagnostics.EventLog" Version="$(SystemDiagnosticsEventLogPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Drawing.Common" Version="$(SystemDrawingCommonPackageVersion)" />
|
||||
<LatestPackageReference Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" />
|
||||
|
|
@ -95,14 +78,17 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="System.Net.Http.Json" Version="$(SystemNetHttpJsonPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
|
||||
<LatestPackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="$(SystemRuntimeInteropServicesRuntimeInformationPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Security.Cryptography.Cng" Version="$(SystemSecurityCryptographyCngPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Security.Cryptography.Pkcs" Version="$(SystemSecurityCryptographyPkcsPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Security.Cryptography.Xml" Version="$(SystemSecurityCryptographyXmlPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Security.Principal.Windows" Version="$(SystemSecurityPrincipalWindowsPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Text.Encodings.Web" Version="$(SystemTextEncodingsWebPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Text.Json" Version="$(SystemTextJsonPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Threading.Channels" Version="$(SystemThreadingChannelsPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Windows.Extensions" Version="$(SystemWindowsExtensionsPackageVersion)" />
|
||||
<LatestPackageReference Include="System.ValueTuple" Version="$(SystemValueTuplePackageVersion)" />
|
||||
|
||||
<!-- Runtime packages required for crossgen -->
|
||||
<LatestPackageReference Include="microsoft.netcore.app.runtime.win-x64" Version="$(MicrosoftNETCoreAppRuntimeVersion)" />
|
||||
|
|
@ -119,12 +105,13 @@ and are generated based on the last package release.
|
|||
|
||||
<ItemGroup Label=".NET team dependencies (Non-source-build)" Condition="'$(DotNetBuildFromSource)' != 'true'">
|
||||
<LatestPackageReference Include="Microsoft.AspNet.WebApi.Client" Version="$(MicrosoftAspNetWebApiClientPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.Analyzer.Testing" Version="$(MicrosoftAspNetCoreAnalyzerTestingPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.2.1" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.2.2" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="$(MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.3.1.x64" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.AzureAppServices.SiteExtension.3.1.x86" Version="$(MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Runtime" Version="$(MicrosoftAspNetCoreComponentsWebAssemblyRuntimePackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.AspNetCore.Testing" Version="$(MicrosoftAspNetCoreTestingPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="$(MicrosoftBclAsyncInterfacesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="$(MicrosoftCodeAnalysisFxCopAnalyzersVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="$(MicrosoftEntityFrameworkCoreInMemoryPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="$(MicrosoftEntityFrameworkCoreRelationalPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(MicrosoftEntityFrameworkCoreSqlitePackageVersion)" />
|
||||
|
|
@ -133,18 +120,17 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="Microsoft.EntityFrameworkCore" Version="$(MicrosoftEntityFrameworkCorePackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="$(MicrosoftExtensionsCachingSqlServerPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="$(MicrosoftExtensionsCachingStackExchangeRedisPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="$(MicrosoftExtensionsLoggingAzureAppServicesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="$(MicrosoftIdentityModelClientsActiveDirectoryPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="$(MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.IdentityModel.Protocols.WsFederation" Version="$(MicrosoftIdentityModelProtocolsWsFederationPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Internal.AspNetCore.H2Spec.All" Version="$(MicrosoftInternalAspNetCoreH2SpecAllPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Internal.Extensions.Refs" Version="$(MicrosoftInternalExtensionsRefsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Extensions.Internal.Transport" Version="$(MicrosoftExtensionsInternalTransportPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.NETCore.Windows.ApiSets" Version="$(MicrosoftNETCoreWindowsApiSetsPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Owin.Security.Cookies" Version="$(MicrosoftOwinSecurityCookiesPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Owin.Testing" Version="$(MicrosoftOwinTestingPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Web.Administration" Version="$(MicrosoftWebAdministrationPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Web.Xdt" Version="$(MicrosoftWebXdtPackageVersion)" />
|
||||
<LatestPackageReference Include="NETStandard.Library" Version="$(NETStandardLibraryPackageVersion)" />
|
||||
<LatestPackageReference Include="System.IdentityModel.Tokens.Jwt" Version="$(SystemIdentityModelTokensJwtPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Net.Http.WinHttpHandler" Version="$(SystemNetHttpWinHttpHandlerPackageVersion)" />
|
||||
<LatestPackageReference Include="System.Net.WebSockets.WebSocketProtocol" Version="$(SystemNetWebSocketsWebSocketProtocolPackageVersion)" />
|
||||
|
|
@ -166,8 +152,13 @@ and are generated based on the last package release.
|
|||
<ItemGroup Label="External dependencies" Condition="'$(DotNetBuildFromSource)' != 'true'">
|
||||
<LatestPackageReference Include="AngleSharp" Version="$(AngleSharpPackageVersion)" />
|
||||
<LatestPackageReference Include="BenchmarkDotNet" Version="$(BenchmarkDotNetPackageVersion)" />
|
||||
<LatestPackageReference Include="CommandLineParser" Version="$(CommandLineParserPackageVersion)" />
|
||||
<LatestPackageReference Include="FSharp.Core" Version="$(FSharpCorePackageVersion)" />
|
||||
<LatestPackageReference Include="Google.ProtoBuf" Version="$(GoogleProtoBufPackageVersion)" />
|
||||
<LatestPackageReference Include="Google.Protobuf" Version="$(GoogleProtobufPackageVersion)" />
|
||||
<LatestPackageReference Include="Grpc.AspNetCore" Version="$(GrpcAspNetCorePackageVersion)" />
|
||||
<LatestPackageReference Include="Grpc.Auth" Version="$(GrpcAuthPackageVersion)" />
|
||||
<LatestPackageReference Include="Grpc.Net.Client" Version="$(GrpcNetClientPackageVersion)" />
|
||||
<LatestPackageReference Include="Grpc.Tools" Version="$(GrpcToolsPackageVersion)" />
|
||||
<LatestPackageReference Include="IdentityServer4" Version="$(IdentityServer4PackageVersion)" />
|
||||
<LatestPackageReference Include="IdentityServer4.AspNetIdentity" Version="$(IdentityServer4AspNetIdentityPackageVersion)" />
|
||||
<LatestPackageReference Include="IdentityServer4.EntityFramework" Version="$(IdentityServer4EntityFrameworkPackageVersion)" />
|
||||
|
|
@ -175,12 +166,8 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="IdentityServer4.Storage" Version="$(IdentityServer4StoragePackageVersion)" />
|
||||
<LatestPackageReference Include="Libuv" Version="$(LibuvPackageVersion)" />
|
||||
<LatestPackageReference Include="MessagePack" Version="$(MessagePackPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Azure.KeyVault" Version="$(MicrosoftAzureKeyVaultPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Azure.Storage.Blob" Version="$(MicrosoftAzureStorageBlobPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Data.OData" Version="$(MicrosoftDataODataPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Data.Services.Client" Version="$(MicrosoftDataServicesClientPackageVersion)" />
|
||||
<LatestPackageReference Include="MessagePackAnalyzer" Version="$(MessagePackPackageVersion)" />
|
||||
<LatestPackageReference Include="Mono.Cecil" Version="$(MonoCecilPackageVersion)" />
|
||||
<LatestPackageReference Include="Mono.WebAssembly.Interop" Version="$(MonoWebAssemblyInteropPackageVersion)" />
|
||||
<LatestPackageReference Include="Moq" Version="$(MoqPackageVersion)" />
|
||||
<LatestPackageReference Include="Newtonsoft.Json.Bson" Version="$(NewtonsoftJsonBsonPackageVersion)" />
|
||||
<LatestPackageReference Include="NSwag.ApiDescription.Client" Version="$(NSwagApiDescriptionClientPackageVersion)" />
|
||||
|
|
@ -197,7 +184,6 @@ and are generated based on the last package release.
|
|||
<LatestPackageReference Include="xunit.assert" Version="$(XunitAssertPackageVersion)" />
|
||||
<LatestPackageReference Include="xunit.extensibility.core" Version="$(XunitExtensibilityCorePackageVersion)" />
|
||||
<LatestPackageReference Include="xunit.extensibility.execution" Version="$(XunitExtensibilityExecutionPackageVersion)" />
|
||||
<LatestPackageReference Include="xunit.extensibility.execution" Version="$(XunitExtensibilityExecutionPackageVersion)" />
|
||||
<LatestPackageReference Include="Microsoft.Data.SqlClient" Version="$(MicrosoftDataSqlClientPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
<Project>
|
||||
<!-- Override where xUnit logs and results go if we're doing the flaky run -->
|
||||
<PropertyGroup Condition="'$(RunFlakyTests)' == 'true'">
|
||||
<ArtifactsLogDir>$(ArtifactsDir)log\$(Configuration)\Flaky\</ArtifactsLogDir>
|
||||
<ArtifactsTestResultsDir>$(ArtifactsDir)TestResults\$(Configuration)\Flaky\</ArtifactsTestResultsDir>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
<Project>
|
||||
<!-- Local Dev Flakiness -->
|
||||
<PropertyGroup>
|
||||
<_FlakyRunAdditionalArgs>-trait "Flaky:All=true"</_FlakyRunAdditionalArgs>
|
||||
<_NonFlakyRunAdditionalArgs>-notrait "Flaky:All=true"</_NonFlakyRunAdditionalArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Azure Pipelines Flakiness -->
|
||||
<PropertyGroup Condition="'$(TF_BUILD)' != ''">
|
||||
<_FlakyRunAdditionalArgs>$(_FlakyRunAdditionalArgs) -trait "Flaky:AzP:All=true" -trait "Flaky:AzP:OS:$(AGENT_OS)=true"</_FlakyRunAdditionalArgs>
|
||||
<_NonFlakyRunAdditionalArgs>$(_NonFlakyRunAdditionalArgs) -notrait "Flaky:AzP:All=true" -notrait "Flaky:AzP:OS:$(AGENT_OS)=true"</_NonFlakyRunAdditionalArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<TestRunnerAdditionalArguments Condition="'$(RunFlakyTests)' == ''">$(_NonFlakyRunAdditionalArgs) $(TestRunnerAdditionalArguments)</TestRunnerAdditionalArguments>
|
||||
<TestRunnerAdditionalArguments Condition="'$(RunFlakyTests)' == 'true'">$(_FlakyRunAdditionalArgs) $(TestRunnerAdditionalArguments)</TestRunnerAdditionalArguments>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -2,24 +2,4 @@
|
|||
T:Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame
|
||||
# Manually implemented - https://github.com/dotnet/arcade/issues/2066
|
||||
T:Microsoft.AspNetCore.Mvc.ApplicationModels.PageParameterModel
|
||||
T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
|
||||
# Manually implemented - Need to include internal setter
|
||||
P:Microsoft.AspNetCore.Mvc.Razor.Infrastructure.TagHelperMemoryCacheProvider.Cache
|
||||
P:Microsoft.AspNetCore.Mvc.RazorPages.RazorPagesOptions.Conventions
|
||||
P:Microsoft.AspNetCore.Routing.Matching.CandidateState.Values
|
||||
P:Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.KestrelServerOptions
|
||||
# public structs with public fields that GenAPI doesn't handle
|
||||
T:Microsoft.AspNetCore.Components.EventCallback
|
||||
T:Microsoft.AspNetCore.Components.EventCallback`1
|
||||
# Break GenAPI - https://github.com/dotnet/arcade/issues/4488
|
||||
T:Microsoft.AspNetCore.Components.Rendering.HtmlRenderer.<CreateInitialRenderAsync>d__17
|
||||
T:Microsoft.AspNetCore.Components.Rendering.HtmlRenderer.<RenderComponentAsync>d__8
|
||||
T:Microsoft.AspNetCore.Mvc.ApplicationModels.ActionAttributeRouteModel.<>c
|
||||
T:Microsoft.AspNetCore.Mvc.ApplicationModels.ActionAttributeRouteModel.<GetAttributeRoutes>d__3
|
||||
T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__181`1
|
||||
T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__183`1
|
||||
T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__184`1
|
||||
T:Microsoft.AspNetCore.Mvc.ControllerBase.<TryUpdateModelAsync>d__187
|
||||
T:Microsoft.AspNetCore.Mvc.Controllers.ControllerBinderDelegateProvider.<>c__DisplayClass0_0
|
||||
T:Microsoft.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.<TryCreateAsync>d__4
|
||||
T:Microsoft.AspNetCore.Mvc.Routing.ConsumesMatcherPolicy.<>c
|
||||
T:Microsoft.AspNetCore.Mvc.ApplicationModels.PagePropertyModel
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
aspnetcorev2_inprocess.dll|Microsoft.AspNetCore.App.Ref||13.1.19320.0
|
||||
Microsoft.AspNetCore.Antiforgery.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Authentication.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Authentication.Cookies.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Authentication.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Authentication.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Authentication.OAuth.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Authorization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Authorization.Policy.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Components.Authorization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Components.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Components.Forms.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Components.Server.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Components.Web.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Connections.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.CookiePolicy.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Cors.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Cryptography.Internal.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Cryptography.KeyDerivation.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.DataProtection.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.DataProtection.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.DataProtection.Extensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Diagnostics.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Diagnostics.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Diagnostics.HealthChecks.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.HostFiltering.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Hosting.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Hosting.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Hosting.Server.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Html.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Http.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Http.Connections.Common.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Http.Connections.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Http.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Http.Extensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Http.Features.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.HttpOverrides.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.HttpsPolicy.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Identity.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Localization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Localization.Routing.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Metadata.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.ApiExplorer.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.Cors.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.DataAnnotations.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.Formatters.Json.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.Formatters.Xml.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.Localization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.Razor.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.RazorPages.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.TagHelpers.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Mvc.ViewFeatures.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Razor.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Razor.Runtime.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.ResponseCaching.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.ResponseCaching.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.ResponseCompression.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Rewrite.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Routing.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Routing.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Server.HttpSys.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Server.IIS.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Server.IISIntegration.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Server.Kestrel.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Server.Kestrel.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.Session.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.SignalR.Common.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.SignalR.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.SignalR.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.SignalR.Protocols.Json.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.StaticFiles.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.WebSockets.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.AspNetCore.WebUtilities.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.Extensions.Caching.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Caching.Memory.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.Binder.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.CommandLine.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.EnvironmentVariables.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.FileExtensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.Ini.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.Json.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.KeyPerFile.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.UserSecrets.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Configuration.Xml.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.DependencyInjection.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.DependencyInjection.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Diagnostics.HealthChecks.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.FileProviders.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.FileProviders.Composite.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.FileProviders.Embedded.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.FileProviders.Physical.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.FileSystemGlobbing.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Hosting.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Hosting.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Http.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Identity.Core.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.Extensions.Identity.Stores.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.Extensions.Localization.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Localization.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.Abstractions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.Configuration.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.Console.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.Debug.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.EventLog.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.EventSource.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Logging.TraceSource.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.ObjectPool.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Options.ConfigurationExtensions.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Options.DataAnnotations.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Options.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.Primitives.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Extensions.WebEncoders.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.JSInterop.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56504
|
||||
Microsoft.Net.Http.Headers.dll|Microsoft.AspNetCore.App.Ref|3.1.0.0|3.100.19.56601
|
||||
Microsoft.Win32.SystemEvents.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
|
||||
System.Diagnostics.EventLog.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
|
||||
System.Drawing.Common.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
|
||||
System.IO.Pipelines.dll|Microsoft.AspNetCore.App.Ref|4.0.2.0|4.700.19.56404
|
||||
System.Security.Cryptography.Pkcs.dll|Microsoft.AspNetCore.App.Ref|4.1.1.0|4.700.19.56404
|
||||
System.Security.Cryptography.Xml.dll|Microsoft.AspNetCore.App.Ref|4.0.3.0|4.700.19.56404
|
||||
System.Security.Permissions.dll|Microsoft.AspNetCore.App.Ref|4.0.3.0|4.700.19.56404
|
||||
System.Windows.Extensions.dll|Microsoft.AspNetCore.App.Ref|4.0.1.0|4.700.19.56404
|
||||
|
|
@ -6,8 +6,6 @@
|
|||
<Project>
|
||||
<ItemGroup>
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.JsonPatch" ProjectPath="$(RepoRoot)src\Features\JsonPatch\src\Microsoft.AspNetCore.JsonPatch.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureKeyVault" ProjectPath="$(RepoRoot)src\DataProtection\AzureKeyVault\src\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.AzureStorage" ProjectPath="$(RepoRoot)src\DataProtection\AzureStorage\src\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\DataProtection\EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" ProjectPath="$(RepoRoot)src\DataProtection\StackExchangeRedis\src\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.TestHost" ProjectPath="$(RepoRoot)src\Hosting\TestHost\src\Microsoft.AspNetCore.TestHost.csproj" />
|
||||
|
|
@ -18,6 +16,7 @@
|
|||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.Specification.Tests" ProjectPath="$(RepoRoot)src\Identity\Specification.Tests\src\Microsoft.AspNetCore.Identity.Specification.Tests.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Identity.UI" ProjectPath="$(RepoRoot)src\Identity\UI\src\Microsoft.AspNetCore.Identity.UI.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Libuv\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Server.Kestrel.Transport.Experimental.Quic" ProjectPath="$(RepoRoot)src\Servers\Kestrel\Transport.Quic\src\Microsoft.AspNetCore.Server.Kestrel.Transport.Experimental.Quic.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Certificate" ProjectPath="$(RepoRoot)src\Security\Authentication\Certificate\src\Microsoft.AspNetCore.Authentication.Certificate.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Facebook" ProjectPath="$(RepoRoot)src\Security\Authentication\Facebook\src\Microsoft.AspNetCore.Authentication.Facebook.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Authentication.Google" ProjectPath="$(RepoRoot)src\Security\Authentication\Google\src\Microsoft.AspNetCore.Authentication.Google.csproj" />
|
||||
|
|
@ -33,6 +32,7 @@
|
|||
<ProjectReferenceProvider Include="Microsoft.Extensions.ApiDescription.Server" ProjectPath="$(RepoRoot)src\Tools\Extensions.ApiDescription.Server\src\Microsoft.Extensions.ApiDescription.Server.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.DeveloperCertificates.XPlat" ProjectPath="$(RepoRoot)src\Tools\FirstRunCertGenerator\src\Microsoft.AspNetCore.DeveloperCertificates.XPlat.csproj" />
|
||||
<ProjectReferenceProvider Include="GetDocument.Insider" ProjectPath="$(RepoRoot)src\Tools\GetDocumentInsider\src\GetDocumentInsider.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.Logging.AzureAppServices" ProjectPath="$(RepoRoot)src\Logging.AzureAppServices\src\Microsoft.Extensions.Logging.AzureAppServices.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.ConcurrencyLimiter" ProjectPath="$(RepoRoot)src\Middleware\ConcurrencyLimiter\src\Microsoft.AspNetCore.ConcurrencyLimiter.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" ProjectPath="$(RepoRoot)src\Middleware\Diagnostics.EntityFrameworkCore\src\Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.HeaderPropagation" ProjectPath="$(RepoRoot)src\Middleware\HeaderPropagation\src\Microsoft.AspNetCore.HeaderPropagation.csproj" />
|
||||
|
|
@ -41,6 +41,13 @@
|
|||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.NodeServices" ProjectPath="$(RepoRoot)src\Middleware\NodeServices\src\Microsoft.AspNetCore.NodeServices.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices.Extensions" ProjectPath="$(RepoRoot)src\Middleware\SpaServices.Extensions\src\Microsoft.AspNetCore.SpaServices.Extensions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SpaServices" ProjectPath="$(RepoRoot)src\Middleware\SpaServices\src\Microsoft.AspNetCore.SpaServices.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X" ProjectPath="$(RepoRoot)src\Razor\Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X\src\Microsoft.AspNetCore.Mvc.Razor.Extensions.Version1_X.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X" ProjectPath="$(RepoRoot)src\Razor\Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X\src\Microsoft.AspNetCore.Mvc.Razor.Extensions.Version2_X.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.Extensions" ProjectPath="$(RepoRoot)src\Razor\Microsoft.AspNetCore.Mvc.Razor.Extensions\src\Microsoft.AspNetCore.Mvc.Razor.Extensions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Razor.Language" ProjectPath="$(RepoRoot)src\Razor\Microsoft.AspNetCore.Razor.Language\src\Microsoft.AspNetCore.Razor.Language.csproj" />
|
||||
<ProjectReferenceProvider Include="rzc" ProjectPath="$(RepoRoot)src\Razor\Microsoft.AspNetCore.Razor.Tools\src\Microsoft.AspNetCore.Razor.Tools.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.CodeAnalysis.Razor" ProjectPath="$(RepoRoot)src\Razor\Microsoft.CodeAnalysis.Razor\src\Microsoft.CodeAnalysis.Razor.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.NET.Sdk.Razor" ProjectPath="$(RepoRoot)src\Razor\Microsoft.NET.Sdk.Razor\src\Microsoft.NET.Sdk.Razor.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" ProjectPath="$(RepoRoot)src\Mvc\Mvc.NewtonsoftJson\src\Microsoft.AspNetCore.Mvc.NewtonsoftJson.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Razor.RuntimeCompilation\src\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Mvc.Testing" ProjectPath="$(RepoRoot)src\Mvc\Mvc.Testing\src\Microsoft.AspNetCore.Mvc.Testing.csproj" />
|
||||
|
|
@ -56,13 +63,13 @@
|
|||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.Specification.Tests" ProjectPath="$(RepoRoot)src\SignalR\server\Specification.Tests\src\Microsoft.AspNetCore.SignalR.Specification.Tests.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" ProjectPath="$(RepoRoot)src\SignalR\server\StackExchangeRedis\src\Microsoft.AspNetCore.SignalR.StackExchangeRedis.csproj" />
|
||||
<ProjectReferenceProvider Include="Ignitor" ProjectPath="$(RepoRoot)src\Components\Ignitor\src\Ignitor.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Web.Extensions" ProjectPath="$(RepoRoot)src\Components\Web.Extensions\src\Microsoft.AspNetCore.Components.Web.Extensions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Authentication.WebAssembly.Msal" ProjectPath="$(RepoRoot)src\Components\WebAssembly\Authentication.Msal\src\Microsoft.Authentication.WebAssembly.Msal.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.WebAssembly.Build" ProjectPath="$(RepoRoot)src\Components\WebAssembly\Build\src\Microsoft.AspNetCore.Components.WebAssembly.Build.csproj" />
|
||||
<ProjectReferenceProvider Include="blazor-brotli" ProjectPath="$(RepoRoot)src\Components\WebAssembly\Compression\src\Microsoft.AspNetCore.Components.WebAssembly.Build.BrotliCompression.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.JSInterop.WebAssembly" ProjectPath="$(RepoRoot)src\Components\WebAssembly\JSInterop\src\Microsoft.JSInterop.WebAssembly.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.WebAssembly.Server" ProjectPath="$(RepoRoot)src\Components\WebAssembly\Server\src\Microsoft.AspNetCore.Components.WebAssembly.Server.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" ProjectPath="$(RepoRoot)src\Components\WebAssembly\WebAssembly.Authentication\src\Microsoft.AspNetCore.Components.WebAssembly.Authentication.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.WebAssembly" ProjectPath="$(RepoRoot)src\Components\WebAssembly\WebAssembly\src\Microsoft.AspNetCore.Components.WebAssembly.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Testing" ProjectPath="$(RepoRoot)src\Testing\src\Microsoft.AspNetCore.Testing.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore" ProjectPath="$(RepoRoot)src\DefaultBuilder\src\Microsoft.AspNetCore.csproj" RefProjectPath="$(RepoRoot)src\DefaultBuilder\ref\Microsoft.AspNetCore.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.DataProtection.Abstractions" ProjectPath="$(RepoRoot)src\DataProtection\Abstractions\src\Microsoft.AspNetCore.DataProtection.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Abstractions\ref\Microsoft.AspNetCore.DataProtection.Abstractions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Cryptography.Internal" ProjectPath="$(RepoRoot)src\DataProtection\Cryptography.Internal\src\Microsoft.AspNetCore.Cryptography.Internal.csproj" RefProjectPath="$(RepoRoot)src\DataProtection\Cryptography.Internal\ref\Microsoft.AspNetCore.Cryptography.Internal.csproj" />
|
||||
|
|
@ -143,5 +150,14 @@
|
|||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Forms" ProjectPath="$(RepoRoot)src\Components\Forms\src\Microsoft.AspNetCore.Components.Forms.csproj" RefProjectPath="$(RepoRoot)src\Components\Forms\ref\Microsoft.AspNetCore.Components.Forms.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Server" ProjectPath="$(RepoRoot)src\Components\Server\src\Microsoft.AspNetCore.Components.Server.csproj" RefProjectPath="$(RepoRoot)src\Components\Server\ref\Microsoft.AspNetCore.Components.Server.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.AspNetCore.Components.Web" ProjectPath="$(RepoRoot)src\Components\Web\src\Microsoft.AspNetCore.Components.Web.csproj" RefProjectPath="$(RepoRoot)src\Components\Web\ref\Microsoft.AspNetCore.Components.Web.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.FileProviders.Embedded" ProjectPath="$(RepoRoot)src\FileProviders\Embedded\src\Microsoft.Extensions.FileProviders.Embedded.csproj" RefProjectPath="$(RepoRoot)src\FileProviders\Embedded\ref\Microsoft.Extensions.FileProviders.Embedded.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.Configuration.KeyPerFile" ProjectPath="$(RepoRoot)src\Configuration.KeyPerFile\src\Microsoft.Extensions.Configuration.KeyPerFile.csproj" RefProjectPath="$(RepoRoot)src\Configuration.KeyPerFile\ref\Microsoft.Extensions.Configuration.KeyPerFile.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.Localization.Abstractions" ProjectPath="$(RepoRoot)src\Localization\Abstractions\src\Microsoft.Extensions.Localization.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\Localization\Abstractions\ref\Microsoft.Extensions.Localization.Abstractions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.Localization" ProjectPath="$(RepoRoot)src\Localization\Localization\src\Microsoft.Extensions.Localization.csproj" RefProjectPath="$(RepoRoot)src\Localization\Localization\ref\Microsoft.Extensions.Localization.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.ObjectPool" ProjectPath="$(RepoRoot)src\ObjectPool\src\Microsoft.Extensions.ObjectPool.csproj" RefProjectPath="$(RepoRoot)src\ObjectPool\ref\Microsoft.Extensions.ObjectPool.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.JSInterop" ProjectPath="$(RepoRoot)src\JSInterop\Microsoft.JSInterop\src\Microsoft.JSInterop.csproj" RefProjectPath="$(RepoRoot)src\JSInterop\Microsoft.JSInterop\ref\Microsoft.JSInterop.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.WebEncoders" ProjectPath="$(RepoRoot)src\WebEncoders\src\Microsoft.Extensions.WebEncoders.csproj" RefProjectPath="$(RepoRoot)src\WebEncoders\ref\Microsoft.Extensions.WebEncoders.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" ProjectPath="$(RepoRoot)src\HealthChecks\Abstractions\src\Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.csproj" RefProjectPath="$(RepoRoot)src\HealthChecks\Abstractions\ref\Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.csproj" />
|
||||
<ProjectReferenceProvider Include="Microsoft.Extensions.Diagnostics.HealthChecks" ProjectPath="$(RepoRoot)src\HealthChecks\HealthChecks\src\Microsoft.Extensions.Diagnostics.HealthChecks.csproj" RefProjectPath="$(RepoRoot)src\HealthChecks\HealthChecks\ref\Microsoft.Extensions.Diagnostics.HealthChecks.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
<!--
|
||||
This target is defined in eng/targets/Packaging.targets and included in every C# and F# project.
|
||||
We use Microsoft.AspNetCore.DeveloperCertificates.XPlat because it is a nonshipping package, and we need a non-stable version string to use as our publish location.
|
||||
If Microsoft.AspNetCore.DeveloperCertificates.XPlat ever becomes a shipping package, this logic will break, so be careful
|
||||
-->
|
||||
<MSBuild Projects="$(RepoRoot)src\Tools\FirstRunCertGenerator\src\Microsoft.AspNetCore.DeveloperCertificates.XPlat.csproj"
|
||||
Targets="_GetPackageVersionInfo"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<Project>
|
||||
<!-- Override where xUnit logs and results go if we're doing the Quarantined run -->
|
||||
<PropertyGroup Condition="'$(RunQuarantinedTests)' == 'true'">
|
||||
<ArtifactsLogDir>$(ArtifactsDir)log\$(Configuration)\Quarantined\</ArtifactsLogDir>
|
||||
<ArtifactsTestResultsDir>$(ArtifactsDir)TestResults\$(Configuration)\Quarantined\</ArtifactsTestResultsDir>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<_QuarantinedTestRunAdditionalArgs>-trait "Quarantined=true"</_QuarantinedTestRunAdditionalArgs>
|
||||
<_NonQuarantinedTestRunAdditionalArgs>-notrait "Quarantined=true"</_NonQuarantinedTestRunAdditionalArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<TestRunnerAdditionalArguments Condition="'$(RunQuarantinedTests)' == ''">$(_NonQuarantinedTestRunAdditionalArgs) $(TestRunnerAdditionalArguments)</TestRunnerAdditionalArguments>
|
||||
<TestRunnerAdditionalArguments Condition="'$(RunQuarantinedTests)' == 'true'">$(_QuarantinedTestRunAdditionalArgs) $(TestRunnerAdditionalArguments)</TestRunnerAdditionalArguments>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
<Project>
|
||||
|
||||
<!-- For the targeting pack, always use packages with PatchVersion=0 -->
|
||||
<PropertyGroup Condition="'$(MSBuildProjectName)' == 'Microsoft.AspNetCore.App.Ref' OR '$(IsReferenceAssemblyProject)' == 'true' ">
|
||||
<PropertyGroup Condition="'$(IsServicingBuild)' == 'true' AND ('$(MSBuildProjectName)' == 'Microsoft.AspNetCore.App.Ref' OR '$(IsReferenceAssemblyProject)' == 'true')">
|
||||
<SystemIOPipelinesPackageVersion>$(SystemIOPipelinesPackageVersion.Split('.')[0]).$(SystemIOPipelinesPackageVersion.Split('.')[1]).0</SystemIOPipelinesPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>$(SystemSecurityCryptographyXmlPackageVersion.Split('.')[0]).$(SystemSecurityCryptographyXmlPackageVersion.Split('.')[1]).0</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<MicrosoftWin32SystemEventsPackageVersion>$(MicrosoftWin32SystemEventsPackageVersion.Split('.')[0]).$(MicrosoftWin32SystemEventsPackageVersion.Split('.')[1]).0</MicrosoftWin32SystemEventsPackageVersion>
|
||||
|
|
@ -18,9 +18,8 @@
|
|||
<SystemWindowsExtensionsPackageVersion>$(SystemWindowsExtensionsPackageVersion.Split('.')[0]).$(SystemWindowsExtensionsPackageVersion.Split('.')[1]).0</SystemWindowsExtensionsPackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Dependencies from aspnet/Extensions -->
|
||||
<!-- Dependencies from dotnet/runtime -->
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Caching.Abstractions" Version="$(MicrosoftExtensionsCachingAbstractionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Caching.Memory" Version="$(MicrosoftExtensionsCachingMemoryPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
|
||||
|
|
@ -30,24 +29,18 @@
|
|||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="$(MicrosoftExtensionsConfigurationFileExtensionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration.Ini" Version="$(MicrosoftExtensionsConfigurationIniPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration.KeyPerFile" Version="$(MicrosoftExtensionsConfigurationKeyPerFilePackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="$(MicrosoftExtensionsConfigurationUserSecretsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration.Xml" Version="$(MicrosoftExtensionsConfigurationXmlPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftExtensionsConfigurationPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="$(MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.DependencyInjection" Version="$(MicrosoftExtensionsDependencyInjectionPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.FileProviders.Abstractions" Version="$(MicrosoftExtensionsFileProvidersAbstractionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.FileProviders.Composite" Version="$(MicrosoftExtensionsFileProvidersCompositePackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="$(MicrosoftExtensionsFileProvidersEmbeddedPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.FileProviders.Physical" Version="$(MicrosoftExtensionsFileProvidersPhysicalPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="$(MicrosoftExtensionsFileSystemGlobbingPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftExtensionsHostingAbstractionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsHttpPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Localization.Abstractions" Version="$(MicrosoftExtensionsLocalizationAbstractionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Localization" Version="$(MicrosoftExtensionsLocalizationPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Logging.Configuration" Version="$(MicrosoftExtensionsLoggingConfigurationPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
|
||||
|
|
@ -56,15 +49,10 @@
|
|||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Logging.EventLog" Version="$(MicrosoftExtensionsLoggingEventLogPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Logging.TraceSource" Version="$(MicrosoftExtensionsLoggingTraceSourcePackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.ObjectPool" Version="$(MicrosoftExtensionsObjectPoolPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="$(MicrosoftExtensionsOptionsDataAnnotationsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionsOptionsPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.Primitives" Version="$(MicrosoftExtensionsPrimitivesPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.Extensions.WebEncoders" Version="$(MicrosoftExtensionsWebEncodersPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="Microsoft.JSInterop" Version="$(MicrosoftJSInteropPackageVersion)" />
|
||||
|
||||
<!-- Dependencies from dotnet/corefx -->
|
||||
<ExternalAspNetCoreAppReference Include="System.IO.Pipelines" Version="$(SystemIOPipelinesPackageVersion)" />
|
||||
<ExternalAspNetCoreAppReference Include="System.Security.Cryptography.Xml" Version="$(SystemSecurityCryptographyXmlPackageVersion)" />
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,15 @@
|
|||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Components" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Components.Forms" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.AspNetCore.Components.Web" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.FileProviders.Embedded" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.Configuration.KeyPerFile" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.Localization.Abstractions" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.Localization" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.ObjectPool" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.JSInterop" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.WebEncoders" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" />
|
||||
<AspNetCoreAppReferenceAndPackage Include="Microsoft.Extensions.Diagnostics.HealthChecks" />
|
||||
|
||||
<!-- These assemblies are only in the shared framework -->
|
||||
<AspNetCoreAppReference Include="Microsoft.AspNetCore" />
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<Project>
|
||||
|
||||
<!-- See https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/Signing.md for details. -->
|
||||
<Import Project="Common.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Reset Arcade's defaults. -->
|
||||
|
|
@ -69,7 +69,6 @@
|
|||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetRuntimeIdentifier Condition="'$(TargetRuntimeIdentifier)' == ''">$(TargetOsName)-$(TargetArchitecture)</TargetRuntimeIdentifier>
|
||||
<BaseRedistNetCorePath>$(ArtifactsObjDir)RedistSharedFx.Layout\$(Configuration)\</BaseRedistNetCorePath>
|
||||
<RedistNetCorePath>$(BaseRedistNetCorePath)$(TargetRuntimeIdentifier)\</RedistNetCorePath>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -13,429 +13,308 @@
|
|||
<Uri>https://github.com/dotnet/blazor</Uri>
|
||||
<Sha>cc449601d638ffaab58ae9487f0fd010bb178a12</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.Http.Json" Version="3.2.0">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>66409e392d64ed96e5d3a5fda712d9baf51196ed</Sha>
|
||||
<Dependency Name="dotnet-ef" Version="5.0.0-preview.8.20365.2">
|
||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||
<Sha>ca2a793016c6980c943325c214f42602910d9991</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Razor.Language" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore-tooling</Uri>
|
||||
<Sha>d63ec4a166a5c4f40fcbb823873cfa68cfd39eae</Sha>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.0-preview.8.20365.2">
|
||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||
<Sha>ca2a793016c6980c943325c214f42602910d9991</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Mvc.Razor.Extensions" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore-tooling</Uri>
|
||||
<Sha>d63ec4a166a5c4f40fcbb823873cfa68cfd39eae</Sha>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="5.0.0-preview.8.20365.2">
|
||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||
<Sha>ca2a793016c6980c943325c214f42602910d9991</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CodeAnalysis.Razor" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore-tooling</Uri>
|
||||
<Sha>d63ec4a166a5c4f40fcbb823873cfa68cfd39eae</Sha>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.0-preview.8.20365.2">
|
||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||
<Sha>ca2a793016c6980c943325c214f42602910d9991</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk.Razor" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore-tooling</Uri>
|
||||
<Sha>d63ec4a166a5c4f40fcbb823873cfa68cfd39eae</Sha>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-preview.8.20365.2">
|
||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||
<Sha>ca2a793016c6980c943325c214f42602910d9991</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-ef" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
|
||||
<Sha>509fe041d6d740af8122cae870bf58f2c33c38f3</Sha>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0-preview.8.20365.2">
|
||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||
<Sha>ca2a793016c6980c943325c214f42602910d9991</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
|
||||
<Sha>509fe041d6d740af8122cae870bf58f2c33c38f3</Sha>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="5.0.0-preview.8.20365.2">
|
||||
<Uri>https://github.com/dotnet/efcore</Uri>
|
||||
<Sha>ca2a793016c6980c943325c214f42602910d9991</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
|
||||
<Sha>509fe041d6d740af8122cae870bf58f2c33c38f3</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
|
||||
<Sha>509fe041d6d740af8122cae870bf58f2c33c38f3</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
|
||||
<Sha>509fe041d6d740af8122cae870bf58f2c33c38f3</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
|
||||
<Sha>509fe041d6d740af8122cae870bf58f2c33c38f3</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.EntityFrameworkCore" Version="3.1.6">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
|
||||
<Sha>509fe041d6d740af8122cae870bf58f2c33c38f3</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Analyzer.Testing" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.BenchmarkRunner.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ActivatorUtilities.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.Memory" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.SqlServer" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Caching.StackExchangeRedis" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.CommandLineUtils.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Json" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.KeyPerFile" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Configuration" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DiagnosticAdapter" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.Internal.Transport" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HashCodeCombiner.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Win32.SystemEvents" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Hosting" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Diagnostics.DiagnosticSource" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Http" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Drawing.Common" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Localization" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.IO.Pipelines" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Net.Http.Json" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.AzureAppServices" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Reflection.Metadata" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Debug" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Resources.Extensions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Testing" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Security.Permissions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ObjectPool" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Options" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Text.Json" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ParameterDefaultValue.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Threading.Channels" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Primitives" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="System.Windows.Extensions" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.TypeNameHelper.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.ValueStopwatch.Sources" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.WebEncoders" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.JSInterop" Version="3.1.6" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Bcl.AsyncInterfaces" Version="1.1.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-corefx</Uri>
|
||||
<Sha>059a4a19e602494bfbed473dbbb18f2dbfbd0878</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.CSharp" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Win32.Registry" Version="4.7.0" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Win32.SystemEvents" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ComponentModel.Annotations" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Diagnostics.EventLog" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Drawing.Common" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.IO.Pipelines" Version="4.7.1" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>8a3ffed558ddf943c1efa87d693227722d6af094</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.Http.WinHttpHandler" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Net.WebSockets.WebSocketProtocol" Version="4.7.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-corefx</Uri>
|
||||
<Sha>059a4a19e602494bfbed473dbbb18f2dbfbd0878</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Reflection.Metadata" Version="1.8.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-corefx</Uri>
|
||||
<Sha>059a4a19e602494bfbed473dbbb18f2dbfbd0878</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Runtime.CompilerServices.Unsafe" Version="4.7.1" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>8a3ffed558ddf943c1efa87d693227722d6af094</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Cng" Version="4.7.0" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Pkcs" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Cryptography.Xml" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Permissions" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Security.Principal.Windows" Version="4.7.0" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.ServiceProcess.ServiceController" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Encodings.Web" Version="4.7.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-corefx</Uri>
|
||||
<Sha>059a4a19e602494bfbed473dbbb18f2dbfbd0878</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Text.Json" Version="4.7.2" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-corefx</Uri>
|
||||
<Sha>059a4a19e602494bfbed473dbbb18f2dbfbd0878</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Threading.Channels" Version="4.7.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-corefx</Uri>
|
||||
<Sha>059a4a19e602494bfbed473dbbb18f2dbfbd0878</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="System.Windows.Extensions" Version="4.7.0" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/corefx</Uri>
|
||||
<Sha>0f7f38c4fd323b26da10cce95f857f77f0f09b48</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.DependencyModel" Version="3.1.6" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-core-setup</Uri>
|
||||
<Sha>3acd9b0cd16596bad450c82be08780875a73c05c</Sha>
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<!--
|
||||
Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
|
||||
All Runtime.$rid packages should have the same version.
|
||||
-->
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="3.1.6" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-core-setup</Uri>
|
||||
<Sha>3acd9b0cd16596bad450c82be08780875a73c05c</Sha>
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="NETStandard.Library.Ref" Version="2.1.0" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Internal" Version="3.1.6-servicing.20316.4" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-core-setup</Uri>
|
||||
<Sha>3acd9b0cd16596bad450c82be08780875a73c05c</Sha>
|
||||
</Dependency>
|
||||
<!-- Keep these dependencies at the bottom of ProductDependencies, else they will be picked as the parent for CoherentParentDependencies -->
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="3.1.0" Pinned="true">
|
||||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>65f04fb6db7a5e198d05dbebd5c4ad21eb018f89</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Internal.Extensions.Refs" Version="3.1.0-rtm.19565.4" Pinned="true">
|
||||
<Uri>https://github.com/aspnet/Extensions</Uri>
|
||||
<Sha>4e1be2fb546751c773968d7b40ff7f4b62887153</Sha>
|
||||
<Dependency Name="Microsoft.NETCore.App.Internal" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="3.1.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-corefx</Uri>
|
||||
<Sha>059a4a19e602494bfbed473dbbb18f2dbfbd0878</Sha>
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="5.0.0-preview.8.20361.2">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>f37dd6fc8595e130909dcb3085a56342d04aa20c</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Internal.AspNetCore.Analyzers" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="1.0.0-beta.20213.4">
|
||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.20330.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>1a55276ab9d16792cec595ba870df39a9d97d5ca</Sha>
|
||||
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.20213.4">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20330.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>1a55276ab9d16792cec595ba870df39a9d97d5ca</Sha>
|
||||
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.20213.4">
|
||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20330.3">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>1a55276ab9d16792cec595ba870df39a9d97d5ca</Sha>
|
||||
<Sha>243cc92161ad44c2a07464425892daee19121c99</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.Testing" Version="3.1.6-servicing.20316.5" CoherentParentDependency="Microsoft.EntityFrameworkCore">
|
||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-extensions</Uri>
|
||||
<Sha>be18161fbed286d6fb7a7b1c7999ce70a50cf3eb</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.4.1-beta4-20127-10" CoherentParentDependency="Microsoft.Extensions.Logging">
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.8.0-1.20361.1">
|
||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||
<Sha>d8180a5ecafb92adcfbfe8cf9199eb23be1a1ccf</Sha>
|
||||
<Sha>f24d2c5c98211908ab90d6f1f42e7592411d6058</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
||||
|
|
|
|||
|
|
@ -6,37 +6,34 @@
|
|||
-->
|
||||
<Project>
|
||||
<PropertyGroup Label="Version settings">
|
||||
<AspNetCoreMajorVersion>3</AspNetCoreMajorVersion>
|
||||
<AspNetCoreMinorVersion>1</AspNetCoreMinorVersion>
|
||||
<AspNetCorePatchVersion>7</AspNetCorePatchVersion>
|
||||
<PreReleasePreviewNumber>0</PreReleasePreviewNumber>
|
||||
|
||||
<ComponentsWebAssemblyMajorVersion>3</ComponentsWebAssemblyMajorVersion>
|
||||
<ComponentsWebAssemblyMinorVersion>2</ComponentsWebAssemblyMinorVersion>
|
||||
<ComponentsWebAssemblyPatchVersion>1</ComponentsWebAssemblyPatchVersion>
|
||||
|
||||
<AspNetCoreMajorVersion>5</AspNetCoreMajorVersion>
|
||||
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
|
||||
<AspNetCorePatchVersion>0</AspNetCorePatchVersion>
|
||||
<PreReleaseVersionIteration>1</PreReleaseVersionIteration>
|
||||
<!--
|
||||
When StabilizePackageVersion is set to 'true', this branch will produce stable outputs for 'Shipping' packages
|
||||
-->
|
||||
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">true</StabilizePackageVersion>
|
||||
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">false</StabilizePackageVersion>
|
||||
<DotNetFinalVersionKind Condition="'$(StabilizePackageVersion)' == 'true'">release</DotNetFinalVersionKind>
|
||||
<PreReleaseVersionLabel>rc</PreReleaseVersionLabel>
|
||||
<PreReleaseBrandingLabel>RC $(PreReleaseVersionIteration)</PreReleaseBrandingLabel>
|
||||
<IncludePreReleaseLabelInPackageVersion>true</IncludePreReleaseLabelInPackageVersion>
|
||||
<IncludePreReleaseLabelInPackageVersion Condition=" '$(DotNetFinalVersionKind)' == 'release' ">false</IncludePreReleaseLabelInPackageVersion>
|
||||
<PreReleaseVersionLabel>servicing</PreReleaseVersionLabel>
|
||||
<PreReleaseBrandingLabel>Servicing</PreReleaseBrandingLabel>
|
||||
<AspNetCoreMajorMinorVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)</AspNetCoreMajorMinorVersion>
|
||||
<!-- The following property may need to be updated if ingesting new versions of Extensions.Refs package. The package override version is used to create PackageOverrides.txt in the targeting pack. -->
|
||||
<MicrosoftInternalExtensionsRefsPackageOverrideVersion>3.1.0</MicrosoftInternalExtensionsRefsPackageOverrideVersion>
|
||||
<!-- Additional assembly attributes are already configured to include the source revision ID. -->
|
||||
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
|
||||
<!-- Servicing builds have different characteristics for the way dependencies, framework references, and versions are handled. -->
|
||||
<IsServicingBuild Condition=" '$(PreReleaseVersionLabel)' == 'servicing' ">true</IsServicingBuild>
|
||||
<!--
|
||||
Until package baselines are updated (see dotnet/aspnetcore#12702), ignore them and PatchConfig.props. This also
|
||||
gives us time to build the entire repo and settle the infrastructure. Do _not_ do this when stabilizing versions.
|
||||
-->
|
||||
<DisableServicingFeatures Condition=" '$(DisableServicingFeatures)' == '' AND '$(StabilizePackageVersion)' != 'true' ">true</DisableServicingFeatures>
|
||||
<!-- Servicing builds have different characteristics for the way dependencies, baselines, and versions are handled. -->
|
||||
<IsServicingBuild Condition=" '$(DisableServicingFeatures)' != 'true' AND '$(PreReleaseVersionLabel)' == 'servicing' ">true</IsServicingBuild>
|
||||
<VersionPrefix>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).$(AspNetCorePatchVersion)</VersionPrefix>
|
||||
<ComponentsWebAssemblyVersionPrefix>$(ComponentsWebAssemblyMajorVersion).$(ComponentsWebAssemblyMinorVersion).$(ComponentsWebAssemblyPatchVersion)</ComponentsWebAssemblyVersionPrefix>
|
||||
<!-- TargetingPackVersionPrefix is used by projects, like .deb and .rpm, which use slightly different version formats. -->
|
||||
<TargetingPackVersionPrefix>$(VersionPrefix)</TargetingPackVersionPrefix>
|
||||
<!-- Targeting packs do not produce patch versions in servicing builds. No API changes are allowed in patches. -->
|
||||
<TargetingPackVersionPrefix Condition="'$(IsTargetingPackBuilding)' != 'true'">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).3</TargetingPackVersionPrefix>
|
||||
<TargetingPackVersionPrefix Condition="'$(IsTargetingPackBuilding)' != 'true'">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</TargetingPackVersionPrefix>
|
||||
<ExperimentalVersionPrefix>0.3.$(AspNetCorePatchVersion)</ExperimentalVersionPrefix>
|
||||
<!-- ANCM versioning is intentionally 10 + AspNetCoreMajorVersion because earlier versions of ANCM shipped as 8.x. -->
|
||||
<AspNetCoreModuleVersionMajor>$([MSBuild]::Add(10, $(AspNetCoreMajorVersion)))</AspNetCoreModuleVersionMajor>
|
||||
|
|
@ -65,117 +62,84 @@
|
|||
-->
|
||||
<PropertyGroup Label="Automated">
|
||||
<!-- Packages from dotnet/arcade -->
|
||||
<MicrosoftDotNetGenAPIPackageVersion>1.0.0-beta.20213.4</MicrosoftDotNetGenAPIPackageVersion>
|
||||
<MicrosoftDotNetGenAPIPackageVersion>5.0.0-beta.20330.3</MicrosoftDotNetGenAPIPackageVersion>
|
||||
<!-- Packages from dotnet/roslyn -->
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>3.4.1-beta4-20127-10</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
<!-- Packages from dotnet/core-setup -->
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>3.1.6</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppInternalPackageVersion>3.1.6-servicing.20316.4</MicrosoftNETCoreAppInternalPackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>3.1.0</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>3.1.6</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
|
||||
<!-- Packages from dotnet/corefx -->
|
||||
<MicrosoftBclAsyncInterfacesPackageVersion>1.1.1</MicrosoftBclAsyncInterfacesPackageVersion>
|
||||
<MicrosoftCSharpPackageVersion>4.7.0</MicrosoftCSharpPackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>4.7.0</MicrosoftWin32RegistryPackageVersion>
|
||||
<MicrosoftWin32SystemEventsPackageVersion>4.7.0</MicrosoftWin32SystemEventsPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>4.7.0</SystemComponentModelAnnotationsPackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>4.7.0</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemDrawingCommonPackageVersion>4.7.0</SystemDrawingCommonPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>4.7.1</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>4.7.0</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>4.7.1</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>1.8.1</SystemReflectionMetadataPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.7.1</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>4.7.0</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>4.7.0</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>4.7.0</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>4.7.0</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>4.7.0</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>4.7.0</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>4.7.1</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>4.7.2</SystemTextJsonPackageVersion>
|
||||
<SystemNetHttpJsonPackageVersion>3.2.0</SystemNetHttpJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>4.7.1</SystemThreadingChannelsPackageVersion>
|
||||
<SystemWindowsExtensionsPackageVersion>4.7.0</SystemWindowsExtensionsPackageVersion>
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>3.8.0-1.20361.1</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
<!-- Packages from dotnet/runtime -->
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftNETCoreAppInternalPackageVersion>5.0.0-preview.8.20361.2</MicrosoftNETCoreAppInternalPackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>5.0.0-preview.8.20361.2</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>5.0.0-preview.8.20361.2</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWin32RegistryPackageVersion>5.0.0-preview.8.20361.2</MicrosoftWin32RegistryPackageVersion>
|
||||
<MicrosoftWin32SystemEventsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftWin32SystemEventsPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsInternalTransportPackageVersion>5.0.0-preview.8.20361.2</MicrosoftExtensionsInternalTransportPackageVersion>
|
||||
<SystemComponentModelAnnotationsPackageVersion>5.0.0-preview.8.20361.2</SystemComponentModelAnnotationsPackageVersion>
|
||||
<SystemDiagnosticsDiagnosticSourcePackageVersion>5.0.0-preview.8.20361.2</SystemDiagnosticsDiagnosticSourcePackageVersion>
|
||||
<SystemDiagnosticsEventLogPackageVersion>5.0.0-preview.8.20361.2</SystemDiagnosticsEventLogPackageVersion>
|
||||
<SystemDrawingCommonPackageVersion>5.0.0-preview.8.20361.2</SystemDrawingCommonPackageVersion>
|
||||
<SystemIOPipelinesPackageVersion>5.0.0-preview.8.20361.2</SystemIOPipelinesPackageVersion>
|
||||
<SystemNetHttpJsonPackageVersion>5.0.0-preview.8.20361.2</SystemNetHttpJsonPackageVersion>
|
||||
<SystemNetHttpWinHttpHandlerPackageVersion>5.0.0-preview.8.20361.2</SystemNetHttpWinHttpHandlerPackageVersion>
|
||||
<SystemNetWebSocketsWebSocketProtocolPackageVersion>5.0.0-preview.8.20361.2</SystemNetWebSocketsWebSocketProtocolPackageVersion>
|
||||
<SystemReflectionMetadataPackageVersion>5.0.0-preview.8.20361.2</SystemReflectionMetadataPackageVersion>
|
||||
<SystemResourcesExtensionsPackageVersion>5.0.0-preview.8.20361.2</SystemResourcesExtensionsPackageVersion>
|
||||
<SystemRuntimeCompilerServicesUnsafePackageVersion>5.0.0-preview.8.20361.2</SystemRuntimeCompilerServicesUnsafePackageVersion>
|
||||
<SystemSecurityCryptographyCngPackageVersion>5.0.0-preview.8.20361.2</SystemSecurityCryptographyCngPackageVersion>
|
||||
<SystemSecurityCryptographyPkcsPackageVersion>5.0.0-preview.8.20361.2</SystemSecurityCryptographyPkcsPackageVersion>
|
||||
<SystemSecurityCryptographyXmlPackageVersion>5.0.0-preview.8.20361.2</SystemSecurityCryptographyXmlPackageVersion>
|
||||
<SystemSecurityPermissionsPackageVersion>5.0.0-preview.8.20361.2</SystemSecurityPermissionsPackageVersion>
|
||||
<SystemSecurityPrincipalWindowsPackageVersion>5.0.0-preview.8.20361.2</SystemSecurityPrincipalWindowsPackageVersion>
|
||||
<SystemServiceProcessServiceControllerPackageVersion>5.0.0-preview.8.20361.2</SystemServiceProcessServiceControllerPackageVersion>
|
||||
<SystemTextEncodingsWebPackageVersion>5.0.0-preview.8.20361.2</SystemTextEncodingsWebPackageVersion>
|
||||
<SystemTextJsonPackageVersion>5.0.0-preview.8.20361.2</SystemTextJsonPackageVersion>
|
||||
<SystemThreadingChannelsPackageVersion>5.0.0-preview.8.20361.2</SystemThreadingChannelsPackageVersion>
|
||||
<SystemWindowsExtensionsPackageVersion>5.0.0-preview.8.20361.2</SystemWindowsExtensionsPackageVersion>
|
||||
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>3.1.1</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<!-- Packages from aspnet/Blazor -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>5.0.0-preview.8.20361.2</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<!-- Packages from dotnet/blazor -->
|
||||
<MicrosoftAspNetCoreComponentsWebAssemblyRuntimePackageVersion>3.2.0</MicrosoftAspNetCoreComponentsWebAssemblyRuntimePackageVersion>
|
||||
<!-- Packages from aspnet/Extensions -->
|
||||
<InternalAspNetCoreAnalyzersPackageVersion>3.1.6-servicing.20316.5</InternalAspNetCoreAnalyzersPackageVersion>
|
||||
<MicrosoftAspNetCoreAnalyzerTestingPackageVersion>3.1.6-servicing.20316.5</MicrosoftAspNetCoreAnalyzerTestingPackageVersion>
|
||||
<MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftAspNetCoreBenchmarkRunnerSourcesPackageVersion>
|
||||
<MicrosoftAspNetCoreTestingPackageVersion>3.1.6-servicing.20316.5</MicrosoftAspNetCoreTestingPackageVersion>
|
||||
<MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsActivatorUtilitiesSourcesPackageVersion>
|
||||
<MicrosoftExtensionsCachingAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsCachingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsCachingMemoryPackageVersion>3.1.6</MicrosoftExtensionsCachingMemoryPackageVersion>
|
||||
<MicrosoftExtensionsCachingSqlServerPackageVersion>3.1.6</MicrosoftExtensionsCachingSqlServerPackageVersion>
|
||||
<MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>3.1.6</MicrosoftExtensionsCachingStackExchangeRedisPackageVersion>
|
||||
<MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsConfigurationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>3.1.6</MicrosoftExtensionsConfigurationAzureKeyVaultPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationBinderPackageVersion>3.1.6</MicrosoftExtensionsConfigurationBinderPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.1.6</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>3.1.6</MicrosoftExtensionsConfigurationEnvironmentVariablesPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>3.1.6</MicrosoftExtensionsConfigurationFileExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationIniPackageVersion>3.1.6</MicrosoftExtensionsConfigurationIniPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationJsonPackageVersion>3.1.6</MicrosoftExtensionsConfigurationJsonPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>3.1.6</MicrosoftExtensionsConfigurationKeyPerFilePackageVersion>
|
||||
<MicrosoftExtensionsConfigurationPackageVersion>3.1.6</MicrosoftExtensionsConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationUserSecretsPackageVersion>3.1.6</MicrosoftExtensionsConfigurationUserSecretsPackageVersion>
|
||||
<MicrosoftExtensionsConfigurationXmlPackageVersion>3.1.6</MicrosoftExtensionsConfigurationXmlPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsDependencyInjectionAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyInjectionPackageVersion>3.1.6</MicrosoftExtensionsDependencyInjectionPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>3.1.6</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsDiagnosticsHealthChecksAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>3.1.6</MicrosoftExtensionsDiagnosticsHealthChecksPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsFileProvidersAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersCompositePackageVersion>3.1.6</MicrosoftExtensionsFileProvidersCompositePackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>3.1.6</MicrosoftExtensionsFileProvidersEmbeddedPackageVersion>
|
||||
<MicrosoftExtensionsFileProvidersPhysicalPackageVersion>3.1.6</MicrosoftExtensionsFileProvidersPhysicalPackageVersion>
|
||||
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>3.1.6</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
|
||||
<MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsHashCodeCombinerSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHostingAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsHostingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsHostingPackageVersion>3.1.6</MicrosoftExtensionsHostingPackageVersion>
|
||||
<MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsHostFactoryResolverSourcesPackageVersion>
|
||||
<MicrosoftExtensionsHttpPackageVersion>3.1.6</MicrosoftExtensionsHttpPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsLocalizationAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLocalizationPackageVersion>3.1.6</MicrosoftExtensionsLocalizationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAbstractionsPackageVersion>3.1.6</MicrosoftExtensionsLoggingAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>3.1.6</MicrosoftExtensionsLoggingAzureAppServicesPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConfigurationPackageVersion>3.1.6</MicrosoftExtensionsLoggingConfigurationPackageVersion>
|
||||
<MicrosoftExtensionsLoggingConsolePackageVersion>3.1.6</MicrosoftExtensionsLoggingConsolePackageVersion>
|
||||
<MicrosoftExtensionsLoggingDebugPackageVersion>3.1.6</MicrosoftExtensionsLoggingDebugPackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventSourcePackageVersion>3.1.6</MicrosoftExtensionsLoggingEventSourcePackageVersion>
|
||||
<MicrosoftExtensionsLoggingEventLogPackageVersion>3.1.6</MicrosoftExtensionsLoggingEventLogPackageVersion>
|
||||
<MicrosoftExtensionsLoggingPackageVersion>3.1.6</MicrosoftExtensionsLoggingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTestingPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsLoggingTestingPackageVersion>
|
||||
<MicrosoftExtensionsLoggingTraceSourcePackageVersion>3.1.6</MicrosoftExtensionsLoggingTraceSourcePackageVersion>
|
||||
<MicrosoftExtensionsObjectPoolPackageVersion>3.1.6</MicrosoftExtensionsObjectPoolPackageVersion>
|
||||
<MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>3.1.6</MicrosoftExtensionsOptionsConfigurationExtensionsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>3.1.6</MicrosoftExtensionsOptionsDataAnnotationsPackageVersion>
|
||||
<MicrosoftExtensionsOptionsPackageVersion>3.1.6</MicrosoftExtensionsOptionsPackageVersion>
|
||||
<MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsParameterDefaultValueSourcesPackageVersion>
|
||||
<MicrosoftExtensionsPrimitivesPackageVersion>3.1.6</MicrosoftExtensionsPrimitivesPackageVersion>
|
||||
<MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsTypeNameHelperSourcesPackageVersion>
|
||||
<MicrosoftExtensionsValueStopwatchSourcesPackageVersion>3.1.6-servicing.20316.5</MicrosoftExtensionsValueStopwatchSourcesPackageVersion>
|
||||
<MicrosoftExtensionsWebEncodersPackageVersion>3.1.6</MicrosoftExtensionsWebEncodersPackageVersion>
|
||||
<MicrosoftInternalExtensionsRefsPackageVersion>3.1.0-rtm.19565.4</MicrosoftInternalExtensionsRefsPackageVersion>
|
||||
<MicrosoftJSInteropPackageVersion>3.1.6</MicrosoftJSInteropPackageVersion>
|
||||
<!-- Packages from aspnet/EntityFrameworkCore -->
|
||||
<dotnetefPackageVersion>3.1.6</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>3.1.6</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>3.1.6</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>3.1.6</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>3.1.6</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>3.1.6</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>3.1.6</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
<!-- Packages from aspnet/AspNetCore-Tooling -->
|
||||
<MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>3.1.6</MicrosoftAspNetCoreMvcRazorExtensionsPackageVersion>
|
||||
<MicrosoftAspNetCoreRazorLanguagePackageVersion>3.1.6</MicrosoftAspNetCoreRazorLanguagePackageVersion>
|
||||
<MicrosoftCodeAnalysisRazorPackageVersion>3.1.6</MicrosoftCodeAnalysisRazorPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>3.1.6</MicrosoftNETSdkRazorPackageVersion>
|
||||
<!-- Packages from dotnet/efcore -->
|
||||
<dotnetefPackageVersion>5.0.0-preview.8.20365.2</dotnetefPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreInMemoryPackageVersion>5.0.0-preview.8.20365.2</MicrosoftEntityFrameworkCoreInMemoryPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreRelationalPackageVersion>5.0.0-preview.8.20365.2</MicrosoftEntityFrameworkCoreRelationalPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlitePackageVersion>5.0.0-preview.8.20365.2</MicrosoftEntityFrameworkCoreSqlitePackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreSqlServerPackageVersion>5.0.0-preview.8.20365.2</MicrosoftEntityFrameworkCoreSqlServerPackageVersion>
|
||||
<MicrosoftEntityFrameworkCoreToolsPackageVersion>5.0.0-preview.8.20365.2</MicrosoftEntityFrameworkCoreToolsPackageVersion>
|
||||
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-preview.8.20365.2</MicrosoftEntityFrameworkCorePackageVersion>
|
||||
</PropertyGroup>
|
||||
<!--
|
||||
|
||||
|
|
@ -194,64 +158,78 @@
|
|||
<MicrosoftNETCoreAppRuntimeVersion>$(MicrosoftNETCoreAppRuntimewinx64PackageVersion)</MicrosoftNETCoreAppRuntimeVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="Manual">
|
||||
<!-- DiagnosticAdapter package pinned temporarily until migrated/deprecated -->
|
||||
<MicrosoftExtensionsDiagnosticAdapterPackageVersion>5.0.0-preview.4.20180.4</MicrosoftExtensionsDiagnosticAdapterPackageVersion>
|
||||
<!-- Build tool dependencies -->
|
||||
<InternalAspNetCoreBuildTasksPackageVersion>3.0.0-build-20190530.3</InternalAspNetCoreBuildTasksPackageVersion>
|
||||
<MicrosoftSymbolUploaderBuildTaskPackageVersion>1.0.0-beta-64023-03</MicrosoftSymbolUploaderBuildTaskPackageVersion>
|
||||
<MicrosoftVSSDKBuildToolsVersion>15.9.3032</MicrosoftVSSDKBuildToolsVersion>
|
||||
<!-- Stable dotnet/corefx packages no longer updated for .NET Core 3 -->
|
||||
<MicrosoftCSharpPackageVersion>4.7.0</MicrosoftCSharpPackageVersion>
|
||||
<NETStandardLibraryPackageVersion>2.0.3</NETStandardLibraryPackageVersion>
|
||||
<SystemBuffersPackageVersion>4.5.0</SystemBuffersPackageVersion>
|
||||
<SystemCodeDomPackageVersion>4.4.0</SystemCodeDomPackageVersion>
|
||||
<SystemCommandlineExperimentalPackageVersion>0.3.0-alpha.19317.1</SystemCommandlineExperimentalPackageVersion>
|
||||
<SystemComponentModelPackageVersion>4.3.0</SystemComponentModelPackageVersion>
|
||||
<SystemNetHttpPackageVersion>4.3.2</SystemNetHttpPackageVersion>
|
||||
<SystemThreadingTasksExtensionsPackageVersion>4.5.2</SystemThreadingTasksExtensionsPackageVersion>
|
||||
<SystemRuntimeInteropServicesRuntimeInformationPackageVersion>4.3.0</SystemRuntimeInteropServicesRuntimeInformationPackageVersion>
|
||||
<SystemThreadingTasksExtensionsPackageVersion>4.5.3</SystemThreadingTasksExtensionsPackageVersion>
|
||||
<SystemValueTuplePackageVersion>4.5.0</SystemValueTuplePackageVersion>
|
||||
<!-- Packages developed by @aspnet, but manually updated as necessary. -->
|
||||
<LibuvPackageVersion>1.10.0</LibuvPackageVersion>
|
||||
<MicrosoftAspNetWebApiClientPackageVersion>5.2.6</MicrosoftAspNetWebApiClientPackageVersion>
|
||||
<MonoWebAssemblyInteropPackageVersion>3.1.1-preview4.19614.4</MonoWebAssemblyInteropPackageVersion>
|
||||
<!-- Partner teams -->
|
||||
<MicrosoftAzureKeyVaultPackageVersion>2.3.2</MicrosoftAzureKeyVaultPackageVersion>
|
||||
<MicrosoftAzureStorageBlobPackageVersion>10.0.1</MicrosoftAzureStorageBlobPackageVersion>
|
||||
<MicrosoftBclAsyncInterfacesPackageVersion>1.0.0</MicrosoftBclAsyncInterfacesPackageVersion>
|
||||
<MicrosoftBuildPackageVersion>15.8.166</MicrosoftBuildPackageVersion>
|
||||
<MicrosoftAzureSignalRPackageVersion>1.2.0</MicrosoftAzureSignalRPackageVersion>
|
||||
<MicrosoftBuildFrameworkPackageVersion>15.8.166</MicrosoftBuildFrameworkPackageVersion>
|
||||
<MicrosoftBuildLocatorPackageVersion>1.2.6</MicrosoftBuildLocatorPackageVersion>
|
||||
<MicrosoftBuildUtilitiesCorePackageVersion>15.8.166</MicrosoftBuildUtilitiesCorePackageVersion>
|
||||
<MicrosoftCodeAnalysisCommonPackageVersion>3.0.0</MicrosoftCodeAnalysisCommonPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpPackageVersion>3.0.0</MicrosoftCodeAnalysisCSharpPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>3.0.0</MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>
|
||||
<MicrosoftDataODataPackageVersion>5.8.4</MicrosoftDataODataPackageVersion>
|
||||
<MicrosoftDataServicesClientPackageVersion>5.8.4</MicrosoftDataServicesClientPackageVersion>
|
||||
<MicrosoftCodeAnalysisCommonPackageVersion>3.7.0-4.20351.7</MicrosoftCodeAnalysisCommonPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpPackageVersion>3.7.0-4.20351.7</MicrosoftCodeAnalysisCSharpPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>3.7.0-4.20351.7</MicrosoftCodeAnalysisCSharpWorkspacesPackageVersion>
|
||||
<MicrosoftCodeAnalysisFxCopAnalyzersVersion>3.0.0</MicrosoftCodeAnalysisFxCopAnalyzersVersion>
|
||||
<MicrosoftCssParserPackageVersion>1.0.0-20200708.1</MicrosoftCssParserPackageVersion>
|
||||
<MicrosoftIdentityModelClientsActiveDirectoryPackageVersion>3.19.8</MicrosoftIdentityModelClientsActiveDirectoryPackageVersion>
|
||||
<MicrosoftIdentityModelLoggingPackageVersion>5.5.0</MicrosoftIdentityModelLoggingPackageVersion>
|
||||
<MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>5.5.0</MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>
|
||||
<MicrosoftIdentityModelProtocolsWsFederationPackageVersion>5.5.0</MicrosoftIdentityModelProtocolsWsFederationPackageVersion>
|
||||
<MicrosoftIdentityModelLoggingPackageVersion>6.7.1</MicrosoftIdentityModelLoggingPackageVersion>
|
||||
<MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>6.7.1</MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>
|
||||
<MicrosoftIdentityModelProtocolsWsFederationPackageVersion>6.7.1</MicrosoftIdentityModelProtocolsWsFederationPackageVersion>
|
||||
<MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>2.2.1</MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>
|
||||
<MicrosoftNETCoreWindowsApiSetsPackageVersion>1.0.1</MicrosoftNETCoreWindowsApiSetsPackageVersion>
|
||||
<MicrosoftOwinSecurityCookiesPackageVersion>3.0.1</MicrosoftOwinSecurityCookiesPackageVersion>
|
||||
<MicrosoftOwinTestingPackageVersion>3.0.1</MicrosoftOwinTestingPackageVersion>
|
||||
<MicrosoftWebAdministrationPackageVersion>11.1.0</MicrosoftWebAdministrationPackageVersion>
|
||||
<MicrosoftWebXdtPackageVersion>1.4.0</MicrosoftWebXdtPackageVersion>
|
||||
<SystemIdentityModelTokensJwtPackageVersion>5.5.0</SystemIdentityModelTokensJwtPackageVersion>
|
||||
<SystemIdentityModelTokensJwtPackageVersion>6.7.1</SystemIdentityModelTokensJwtPackageVersion>
|
||||
<!-- Packages from 2.1/2.2 branches used for site extension build -->
|
||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>2.1.1</MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>
|
||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>2.2.0</MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>
|
||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion>3.1.3-servicing-20163-14</MicrosoftAspNetCoreAzureAppServicesSiteExtension31PackageVersion>
|
||||
<!-- 3rd party dependencies -->
|
||||
<AngleSharpPackageVersion>0.9.9</AngleSharpPackageVersion>
|
||||
<BenchmarkDotNetPackageVersion>0.10.13</BenchmarkDotNetPackageVersion>
|
||||
<BenchmarkDotNetPackageVersion>0.12.1</BenchmarkDotNetPackageVersion>
|
||||
<CastleCorePackageVersion>4.2.1</CastleCorePackageVersion>
|
||||
<CommandLineParserPackageVersion>2.3.0</CommandLineParserPackageVersion>
|
||||
<FSharpCorePackageVersion>4.2.1</FSharpCorePackageVersion>
|
||||
<GoogleProtobufPackageVersion>3.8.0</GoogleProtobufPackageVersion>
|
||||
<GoogleProtobufPackageVersion>3.10.0</GoogleProtobufPackageVersion>
|
||||
<GrpcAspNetCorePackageVersion>2.27.0</GrpcAspNetCorePackageVersion>
|
||||
<GrpcAuthPackageVersion>2.27.0</GrpcAuthPackageVersion>
|
||||
<GrpcNetClientPackageVersion>2.27.0</GrpcNetClientPackageVersion>
|
||||
<GrpcToolsPackageVersion>2.27.0</GrpcToolsPackageVersion>
|
||||
<IdentityServer4AspNetIdentityPackageVersion>3.0.0</IdentityServer4AspNetIdentityPackageVersion>
|
||||
<IdentityServer4EntityFrameworkPackageVersion>3.0.0</IdentityServer4EntityFrameworkPackageVersion>
|
||||
<IdentityServer4PackageVersion>3.0.0</IdentityServer4PackageVersion>
|
||||
<IdentityServer4StoragePackageVersion>3.0.0</IdentityServer4StoragePackageVersion>
|
||||
<IdentityServer4EntityFrameworkStoragePackageVersion>3.0.0</IdentityServer4EntityFrameworkStoragePackageVersion>
|
||||
<MessagePackPackageVersion>1.7.3.7</MessagePackPackageVersion>
|
||||
<MessagePackPackageVersion>2.1.90</MessagePackPackageVersion>
|
||||
<MoqPackageVersion>4.10.0</MoqPackageVersion>
|
||||
<MonoCecilPackageVersion>0.10.1</MonoCecilPackageVersion>
|
||||
<MonoCecilPackageVersion>0.11.2</MonoCecilPackageVersion>
|
||||
<NewtonsoftJsonBsonPackageVersion>1.0.2</NewtonsoftJsonBsonPackageVersion>
|
||||
<NewtonsoftJsonPackageVersion>12.0.2</NewtonsoftJsonPackageVersion>
|
||||
<!-- Begin: STOP!!! Razor need to reference the version of JSON that our HOSTS support. -->
|
||||
<Razor_NewtonsoftJsonPackageVersion>9.0.1</Razor_NewtonsoftJsonPackageVersion>
|
||||
<!-- End: STOP!!! Razor need to reference the version of JSON that our HOSTS support. -->
|
||||
<NSwagApiDescriptionClientPackageVersion>13.0.4</NSwagApiDescriptionClientPackageVersion>
|
||||
<SeleniumSupportPackageVersion>3.12.1</SeleniumSupportPackageVersion>
|
||||
<SeleniumWebDriverMicrosoftDriverPackageVersion>17.17134.0</SeleniumWebDriverMicrosoftDriverPackageVersion>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<TestRunnerAdditionalArguments>$(TestRunnerAdditionalArguments) -nocolor</TestRunnerAdditionalArguments>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Working around https://github.com/NuGet/Home/issues/8467 -->
|
||||
<NoWarn>$(NoWarn);NU5131</NoWarn>
|
||||
<!-- Workaround until https://github.com/aspnet/AspNetCore-Internal/issues/3103 is resolved -->
|
||||
<NoWarn>$(NoWarn);NU5048</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Workaround https://github.com/dotnet/roslyn/issues/27975 -->
|
||||
<PropertyGroup>
|
||||
<!-- We use the compiler toolset that comes from NuGet Packages rather than the SDK built-in.
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<!-- Use this file to workaround issues. List the issue tracking the item to fix so we can remove the workaround when the issue is resolved. -->
|
||||
<Project>
|
||||
<!-- Workaround while there is no 3.1 SDK available, suppress unsupported version error -->
|
||||
<!-- Workaround while there is no 5.0 SDK available, suppress unsupported version error -->
|
||||
<PropertyGroup>
|
||||
<NETCoreAppMaximumVersion>3.1</NETCoreAppMaximumVersion>
|
||||
<NETCoreAppMaximumVersion>5.0</NETCoreAppMaximumVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<!--
|
||||
Workaround https://github.com/aspnet/AspNetCore/issues/4257.
|
||||
Workaround https://github.com/dotnet/aspnetcore/issues/4257.
|
||||
The web sdk adds an implicit framework reference. This removes it until we can update our build to use framework references.
|
||||
-->
|
||||
<ItemGroup>
|
||||
|
|
@ -25,12 +25,7 @@
|
|||
<Reference Include="Microsoft.AspNetCore.Mvc" Condition="'$(UsingMicrosoftNETSdkWeb)' == 'true' AND '$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND '$(GenerateRazorAssemblyInfo)' == 'true'" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Workaround https://github.com/dotnet/cli/issues/10528 -->
|
||||
<PropertyGroup>
|
||||
<BundledNETCorePlatformsPackageVersion>$(MicrosoftNETCorePlatformsPackageVersion)</BundledNETCorePlatformsPackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Workaround https://github.com/aspnet/AspNetCore/issues/7503. This chains GenerateSourceLinkFile before razor component targets run. -->
|
||||
<!-- Workaround https://github.com/dotnet/aspnetcore/issues/7503. This chains GenerateSourceLinkFile before razor component targets run. -->
|
||||
<!-- Workaround https://github.com/dotnet/source-build/issues/1112. Source link is currently disabled in source build so do not apply this worksaround. -->
|
||||
<Target Condition="'$(DotNetBuildFromSource)' != 'true'"
|
||||
Name="_EnsureSourceLinkHappensBeforeRazorComponentGeneration"
|
||||
|
|
@ -45,6 +40,25 @@
|
|||
<PackageReference Include="Internal.AspNetCore.BuildTasks" PrivateAssets="All" Version="$(InternalAspNetCoreBuildTasksPackageVersion)" IsImplicitlyDefined="true" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<KnownAppHostPackOrFrameworkReferenceTfm>$(DefaultNetCoreTargetFramework)</KnownAppHostPackOrFrameworkReferenceTfm>
|
||||
<KnownAppHostPackOrFrameworkReferenceTfm Condition="'$(KnownAppHostPackOrFrameworkReferenceTfm)' == 'net5.0'">netcoreapp5.0</KnownAppHostPackOrFrameworkReferenceTfm>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Workaround when there is no vNext SDK available, copy known apphost/framework reference info from 3.1 -->
|
||||
<KnownAppHostPack
|
||||
Include="@(KnownAppHostPack->WithMetadataValue('TargetFramework', 'netcoreapp3.1'))"
|
||||
TargetFramework="$(KnownAppHostPackOrFrameworkReferenceTfm)"
|
||||
Condition="@(KnownAppHostPack->Count()) != '0' AND !(@(KnownAppHostPack->AnyHaveMetadataValue('TargetFramework', '$(KnownAppHostPackOrFrameworkReferenceTfm)')))"
|
||||
/>
|
||||
<KnownFrameworkReference
|
||||
Include="@(KnownFrameworkReference->WithMetadataValue('TargetFramework', 'netcoreapp3.1'))"
|
||||
TargetFramework="$(KnownAppHostPackOrFrameworkReferenceTfm)"
|
||||
Condition="@(KnownFrameworkReference->Count()) != '0' AND !(@(KnownFrameworkReference->AnyHaveMetadataValue('TargetFramework', '$(KnownAppHostPackOrFrameworkReferenceTfm)')))"
|
||||
/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Workaround for netstandard2.1 projects until we can get a preview 8 SDK containing https://github.com/dotnet/sdk/pull/3463 fix. -->
|
||||
<ItemGroup>
|
||||
<KnownFrameworkReference Update="NETStandard.Library">
|
||||
|
|
|
|||
|
|
@ -1,158 +0,0 @@
|
|||
param(
|
||||
[Parameter(Mandatory=$true)][string] $InputPath, # Full path to directory where NuGet packages to be checked are stored
|
||||
[Parameter(Mandatory=$true)][string] $ExtractPath, # Full path to directory where the packages will be extracted during validation
|
||||
[Parameter(Mandatory=$true)][string] $SymbolToolPath # Full path to directory where dotnet symbol-tool was installed
|
||||
)
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
|
||||
function FirstMatchingSymbolDescriptionOrDefault {
|
||||
param(
|
||||
[string] $FullPath, # Full path to the module that has to be checked
|
||||
[string] $TargetServerParam, # Parameter to pass to `Symbol Tool` indicating the server to lookup for symbols
|
||||
[string] $SymbolsPath
|
||||
)
|
||||
|
||||
$FileName = [System.IO.Path]::GetFileName($FullPath)
|
||||
$Extension = [System.IO.Path]::GetExtension($FullPath)
|
||||
|
||||
# Those below are potential symbol files that the `dotnet symbol` might
|
||||
# return. Which one will be returned depend on the type of file we are
|
||||
# checking and which type of file was uploaded.
|
||||
|
||||
# The file itself is returned
|
||||
$SymbolPath = $SymbolsPath + "\" + $FileName
|
||||
|
||||
# PDB file for the module
|
||||
$PdbPath = $SymbolPath.Replace($Extension, ".pdb")
|
||||
|
||||
# PDB file for R2R module (created by crossgen)
|
||||
$NGenPdb = $SymbolPath.Replace($Extension, ".ni.pdb")
|
||||
|
||||
# DBG file for a .so library
|
||||
$SODbg = $SymbolPath.Replace($Extension, ".so.dbg")
|
||||
|
||||
# DWARF file for a .dylib
|
||||
$DylibDwarf = $SymbolPath.Replace($Extension, ".dylib.dwarf")
|
||||
|
||||
.\dotnet-symbol.exe --symbols --modules --windows-pdbs $TargetServerParam $FullPath -o $SymbolsPath | Out-Null
|
||||
|
||||
if (Test-Path $PdbPath) {
|
||||
return "PDB"
|
||||
}
|
||||
elseif (Test-Path $NGenPdb) {
|
||||
return "NGen PDB"
|
||||
}
|
||||
elseif (Test-Path $SODbg) {
|
||||
return "DBG for SO"
|
||||
}
|
||||
elseif (Test-Path $DylibDwarf) {
|
||||
return "Dwarf for Dylib"
|
||||
}
|
||||
elseif (Test-Path $SymbolPath) {
|
||||
return "Module"
|
||||
}
|
||||
else {
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
function CountMissingSymbols {
|
||||
param(
|
||||
[string] $PackagePath # Path to a NuGet package
|
||||
)
|
||||
|
||||
# Ensure input file exist
|
||||
if (!(Test-Path $PackagePath)) {
|
||||
throw "Input file does not exist: $PackagePath"
|
||||
}
|
||||
|
||||
# Extensions for which we'll look for symbols
|
||||
$RelevantExtensions = @(".dll", ".exe", ".so", ".dylib")
|
||||
|
||||
# How many files are missing symbol information
|
||||
$MissingSymbols = 0
|
||||
|
||||
$PackageId = [System.IO.Path]::GetFileNameWithoutExtension($PackagePath)
|
||||
$PackageGuid = New-Guid
|
||||
$ExtractPath = Join-Path -Path $ExtractPath -ChildPath $PackageGuid
|
||||
$SymbolsPath = Join-Path -Path $ExtractPath -ChildPath "Symbols"
|
||||
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory($PackagePath, $ExtractPath)
|
||||
|
||||
# Makes easier to reference `symbol tool`
|
||||
Push-Location $SymbolToolPath
|
||||
|
||||
Get-ChildItem -Recurse $ExtractPath |
|
||||
Where-Object {$RelevantExtensions -contains $_.Extension} |
|
||||
ForEach-Object {
|
||||
if ($_.FullName -Match "\\ref\\") {
|
||||
Write-Host "`t Ignoring reference assembly file" $_.FullName
|
||||
return
|
||||
}
|
||||
|
||||
$SymbolsOnMSDL = FirstMatchingSymbolDescriptionOrDefault $_.FullName "--microsoft-symbol-server" $SymbolsPath
|
||||
$SymbolsOnSymWeb = FirstMatchingSymbolDescriptionOrDefault $_.FullName "--internal-server" $SymbolsPath
|
||||
|
||||
Write-Host -NoNewLine "`t Checking file" $_.FullName "... "
|
||||
|
||||
if ($SymbolsOnMSDL -ne $null -and $SymbolsOnSymWeb -ne $null) {
|
||||
Write-Host "Symbols found on MSDL (" $SymbolsOnMSDL ") and SymWeb (" $SymbolsOnSymWeb ")"
|
||||
}
|
||||
else {
|
||||
$MissingSymbols++
|
||||
|
||||
if ($SymbolsOnMSDL -eq $null -and $SymbolsOnSymWeb -eq $null) {
|
||||
Write-Host "No symbols found on MSDL or SymWeb!"
|
||||
}
|
||||
else {
|
||||
if ($SymbolsOnMSDL -eq $null) {
|
||||
Write-Host "No symbols found on MSDL!"
|
||||
}
|
||||
else {
|
||||
Write-Host "No symbols found on SymWeb!"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Pop-Location
|
||||
|
||||
return $MissingSymbols
|
||||
}
|
||||
|
||||
function CheckSymbolsAvailable {
|
||||
if (Test-Path $ExtractPath) {
|
||||
Remove-Item $ExtractPath -Force -Recurse -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
Get-ChildItem "$InputPath\*.nupkg" |
|
||||
ForEach-Object {
|
||||
$FileName = $_.Name
|
||||
|
||||
# These packages from Arcade-Services include some native libraries that
|
||||
# our current symbol uploader can't handle. Below is a workaround until
|
||||
# we get issue: https://github.com/dotnet/arcade/issues/2457 sorted.
|
||||
if ($FileName -Match "Microsoft\.DotNet\.Darc\.") {
|
||||
Write-Host "Ignoring Arcade-services file: $FileName"
|
||||
Write-Host
|
||||
return
|
||||
}
|
||||
elseif ($FileName -Match "Microsoft\.DotNet\.Maestro\.Tasks\.") {
|
||||
Write-Host "Ignoring Arcade-services file: $FileName"
|
||||
Write-Host
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "Validating $FileName "
|
||||
$Status = CountMissingSymbols "$InputPath\$FileName"
|
||||
|
||||
if ($Status -ne 0) {
|
||||
Write-Error "Missing symbols for $Status modules in the package $FileName"
|
||||
}
|
||||
|
||||
Write-Host
|
||||
}
|
||||
}
|
||||
|
||||
CheckSymbolsAvailable
|
||||
|
|
@ -1,83 +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. -->
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!--
|
||||
This MSBuild file is intended to be used as the body of the default
|
||||
publishing release pipeline. The release pipeline will use this file
|
||||
to invoke the PushToStaticFeed task that will read the build asset
|
||||
manifest and publish the assets described in the manifest to
|
||||
informed target feeds.
|
||||
-->
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)DefaultVersions.props" Condition="Exists('$(MSBuildThisFileDirectory)DefaultVersions.props')" />
|
||||
|
||||
<!--
|
||||
This won't be necessary once we solve this issue:
|
||||
https://github.com/dotnet/arcade/issues/2266
|
||||
-->
|
||||
<Import Project="$(MSBuildThisFileDirectory)ArtifactsCategory.props" Condition="Exists('$(MSBuildThisFileDirectory)ArtifactsCategory.props')" />
|
||||
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.dotnet.build.tasks.feed\$(MicrosoftDotNetBuildTasksFeedVersion)\build\Microsoft.DotNet.Build.Tasks.Feed.targets" />
|
||||
|
||||
<Target Name="PublishToFeed">
|
||||
<Error Condition="'$(ArtifactsCategory)' == ''" Text="ArtifactsCategory: The artifacts' category produced by the build wasn't provided." />
|
||||
<Error Condition="'$(AccountKeyToStaticFeed)' == ''" Text="AccountKeyToStaticFeed: Account key for target feed wasn't provided." />
|
||||
<Error Condition="'$(ManifestsBasePath)' == ''" Text="Full path to asset manifests directory wasn't provided." />
|
||||
<Error Condition="'$(BlobBasePath)' == '' AND '$(PackageBasePath)' == ''" Text="A valid full path to BlobBasePath of PackageBasePath is required." />
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Include all manifests found in the manifest folder. -->
|
||||
<ManifestFiles Include="$(ManifestsBasePath)*.xml" />
|
||||
</ItemGroup>
|
||||
|
||||
<Error Condition="'@(ManifestFiles)' == ''" Text="No manifest file was found in the provided path: $(ManifestsBasePath)" />
|
||||
|
||||
<!--
|
||||
For now the type of packages being published will be informed for the whole build.
|
||||
Eventually this will be specified on a per package basis:
|
||||
TODO: https://github.com/dotnet/arcade/issues/2266
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == '.NETCORE'">https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == '.NETCOREVALIDATION'">https://dotnetfeed.blob.core.windows.net/arcade-validation/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETCORE'">https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETCORETOOLING'">https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore-tooling/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ENTITYFRAMEWORKCORE'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframeworkcore/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETEXTENSIONS'">https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'CORECLR'">https://dotnetfeed.blob.core.windows.net/dotnet-coreclr/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'CORESDK'">https://dotnetfeed.blob.core.windows.net/dotnet-sdk/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSINTERNAL'">https://dotnetfeed.blob.core.windows.net/dotnet-tools-internal/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'TOOLSET'">https://dotnetfeed.blob.core.windows.net/dotnet-toolset/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'WINDOWSDESKTOP'">https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'NUGETCLIENT'">https://dotnetfeed.blob.core.windows.net/nuget-nugetclient/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETENTITYFRAMEWORK6'">https://dotnetfeed.blob.core.windows.net/aspnet-entityframework6/index.json</TargetStaticFeed>
|
||||
<TargetStaticFeed Condition="'$(ArtifactsCategory.ToUpper())' == 'ASPNETBLAZOR'">https://dotnetfeed.blob.core.windows.net/aspnet-blazor/index.json</TargetStaticFeed>
|
||||
</PropertyGroup>
|
||||
|
||||
<Error
|
||||
Condition="'$(TargetStaticFeed)' == ''"
|
||||
Text="'$(ArtifactsCategory)' wasn't recognized as a valid artifact category. Valid categories are: '.NetCore' and '.NetCoreValidation'" />
|
||||
|
||||
<!-- Iterate publishing assets from each manifest file. -->
|
||||
<PushArtifactsInManifestToFeed
|
||||
ExpectedFeedUrl="$(TargetStaticFeed)"
|
||||
AccountKey="$(AccountKeyToStaticFeed)"
|
||||
BARBuildId="$(BARBuildId)"
|
||||
MaestroApiEndpoint="$(MaestroApiEndpoint)"
|
||||
BuildAssetRegistryToken="$(BuildAssetRegistryToken)"
|
||||
Overwrite="$(OverrideAssetsWithSameName)"
|
||||
PassIfExistingItemIdentical="$(PassIfExistingItemIdentical)"
|
||||
MaxClients="$(MaxParallelUploads)"
|
||||
UploadTimeoutInMinutes="$(MaxUploadTimeoutInMinutes)"
|
||||
AssetManifestPath="%(ManifestFiles.Identity)"
|
||||
BlobAssetsBasePath="$(BlobBasePath)"
|
||||
PackageAssetsBasePath="$(PackageBasePath)"/>
|
||||
</Target>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="$(MicrosoftDotNetBuildTasksFeedVersion)" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -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. -->
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!--
|
||||
This MSBuild file is intended to be used as the body of the default
|
||||
publishing release pipeline. The release pipeline will use this file
|
||||
to invoke the PublishSymbols tasks to publish symbols to MSDL and SymWeb.
|
||||
|
||||
Parameters:
|
||||
|
||||
- PDBArtifactsDirectory : Full path to directory containing PDB files to be published.
|
||||
- BlobBasePath : Full path containing *.symbols.nupkg packages to be published.
|
||||
- DotNetSymbolServerTokenMsdl : PAT to access MSDL.
|
||||
- DotNetSymbolServerTokenSymWeb : PAT to access SymWeb.
|
||||
- DotNetSymbolExpirationInDays : Expiration days for published packages. Default is 3650.
|
||||
-->
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.symboluploader.build.task\$(SymbolUploaderVersion)\build\PublishSymbols.targets" />
|
||||
|
||||
<Target Name="PublishSymbols">
|
||||
<ItemGroup>
|
||||
<FilesToPublishToSymbolServer Include="$(PDBArtifactsDirectory)\*.pdb"/>
|
||||
<PackagesToPublishToSymbolServer Include="$(BlobBasePath)\*.symbols.nupkg"/>
|
||||
|
||||
<!--
|
||||
These packages from Arcade-Services include some native libraries that
|
||||
our current symbol uploader can't handle. Below is a workaround until
|
||||
we get issue: https://github.com/dotnet/arcade/issues/2457 sorted.
|
||||
-->
|
||||
<PackagesToPublishToSymbolServer Remove="$(BlobBasePath)\Microsoft.DotNet.Darc.*" />
|
||||
<PackagesToPublishToSymbolServer Remove="$(BlobBasePath)\Microsoft.DotNet.Maestro.Tasks.*" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
|
||||
<PublishToSymbolServer>true</PublishToSymbolServer>
|
||||
<PublishToSymbolServer Condition="'@(FilesToPublishToSymbolServer)' == '' and '@(PackagesToPublishToSymbolServer)' == ''">false</PublishToSymbolServer>
|
||||
</PropertyGroup>
|
||||
|
||||
<Message
|
||||
Importance="High"
|
||||
Text="No symbol package(s) were found to publish."
|
||||
Condition="$(PublishToSymbolServer) == false" />
|
||||
|
||||
<!-- Symbol Uploader: MSDL -->
|
||||
<Message Importance="High" Text="Publishing symbol packages to MSDL ..." Condition="$(PublishToSymbolServer)" />
|
||||
<PublishSymbols PackagesToPublish="@(PackagesToPublishToSymbolServer)"
|
||||
FilesToPublish="@(FilesToPublishToSymbolServer)"
|
||||
PersonalAccessToken="$(DotNetSymbolServerTokenMsdl)"
|
||||
SymbolServerPath="https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection"
|
||||
ExpirationInDays="$(DotNetSymbolExpirationInDays)"
|
||||
VerboseLogging="true"
|
||||
DryRun="false"
|
||||
ConvertPortablePdbsToWindowsPdbs="false"
|
||||
PdbConversionTreatAsWarning=""
|
||||
Condition="$(PublishToSymbolServer)"/>
|
||||
|
||||
<!--
|
||||
Symbol Uploader: SymWeb
|
||||
Watson, VS insertion testings and the typical internal dev usage require SymWeb.
|
||||
Currently we need to call the task twice (https://github.com/dotnet/core-eng/issues/3489).
|
||||
-->
|
||||
<Message Importance="High" Text="Publishing symbol packages to SymWeb ..." Condition="$(PublishToSymbolServer)" />
|
||||
<PublishSymbols PackagesToPublish="@(PackagesToPublishToSymbolServer)"
|
||||
FilesToPublish="@(FilesToPublishToSymbolServer)"
|
||||
PersonalAccessToken="$(DotNetSymbolServerTokenSymWeb)"
|
||||
SymbolServerPath="https://microsoft.artifacts.visualstudio.com/DefaultCollection"
|
||||
ExpirationInDays="$(DotNetSymbolExpirationInDays)"
|
||||
VerboseLogging="true"
|
||||
DryRun="false"
|
||||
ConvertPortablePdbsToWindowsPdbs="false"
|
||||
PdbConversionTreatAsWarning=""
|
||||
Condition="$(PublishToSymbolServer)"/>
|
||||
</Target>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.SymbolUploader.Build.Task" Version="$(SymbolUploaderVersion)" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -140,4 +140,4 @@ if ($dotnet31Source -ne $null) {
|
|||
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password
|
||||
}
|
||||
|
||||
$doc.Save($filename)
|
||||
$doc.Save($filename)
|
||||
|
|
|
|||
|
|
@ -146,4 +146,4 @@ for FeedName in ${PackageSources[@]} ; do
|
|||
|
||||
sed -i.bak "s|$PackageSourceCredentialsNodeFooter|$NewCredential${NL}$PackageSourceCredentialsNodeFooter|" $ConfigFile
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
|
|
|||
|
|
@ -1,83 +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. -->
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<!--
|
||||
This MSBuild file is intended to be used as the body of the default
|
||||
publishing release pipeline. The release pipeline will use this file
|
||||
to invoke the SignCheck tool to validate that packages about to
|
||||
be published are correctly signed.
|
||||
|
||||
Parameters:
|
||||
|
||||
- PackageBasePath : Directory containing all files that need to be validated.
|
||||
- SignCheckVersion : Version of SignCheck package to be used.
|
||||
- SignValidationExclusionList : ItemGroup containing exclusion list to be forwarded to SignCheck.
|
||||
- EnableJarSigningCheck : Whether .jar files should be validated.
|
||||
- EnableStrongNameCheck : Whether strong name check should be performed.
|
||||
-->
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
From 'Signing.props' we import $(SignValidationExclusionList)
|
||||
-->
|
||||
<Import Project="$(MSBuildThisFileDirectory)Signing.props" Condition="Exists('$(MSBuildThisFileDirectory)Signing.props')" />
|
||||
|
||||
<Target Name="ValidateSigning">
|
||||
<PropertyGroup>
|
||||
<SignCheckToolPath>$(NuGetPackageRoot)Microsoft.DotNet.SignCheck\$(SignCheckVersion)\tools\Microsoft.DotNet.SignCheck.exe</SignCheckToolPath>
|
||||
|
||||
<SignCheckInputDir>$(PackageBasePath)</SignCheckInputDir>
|
||||
<SignCheckLog>signcheck.log</SignCheckLog>
|
||||
<SignCheckErrorLog>signcheck.errors.log</SignCheckErrorLog>
|
||||
<SignCheckExclusionsFile>signcheck.exclusions.txt</SignCheckExclusionsFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!--
|
||||
Documentation for these arguments is available here:
|
||||
https://github.com/dotnet/arcade/tree/master/src/SignCheck
|
||||
-->
|
||||
<SignCheckArgs Include="--recursive" />
|
||||
<SignCheckArgs Include="--traverse-subfolders" />
|
||||
<SignCheckArgs Include="--file-status AllFiles" />
|
||||
<SignCheckArgs Include="--log-file $(SignCheckLog)" />
|
||||
<SignCheckArgs Include="--error-log-file $(SignCheckErrorLog)" />
|
||||
<SignCheckArgs Include="--input-files $(SignCheckInputDir)" />
|
||||
|
||||
<SignCheckArgs Include="--exclusions-file $(SignCheckExclusionsFile)" Condition="'@(SignValidationExclusionList)' != ''" />
|
||||
<SignCheckArgs Include="--verify-jar" Condition="'$(EnableJarSigningCheck)' == 'true'" />
|
||||
<SignCheckArgs Include="--verify-strongname" Condition="'$(EnableStrongNameCheck)' == 'true'" />
|
||||
</ItemGroup>
|
||||
|
||||
<WriteLinesToFile
|
||||
File="$(SignCheckExclusionsFile)"
|
||||
Lines="@(SignValidationExclusionList)"
|
||||
Condition="'@(SignValidationExclusionList)' != ''"
|
||||
Overwrite="true"
|
||||
Encoding="Unicode"/>
|
||||
|
||||
<!--
|
||||
IgnoreExitCode='true' because the tool doesn't return '0' on success.
|
||||
-->
|
||||
<Exec
|
||||
Command=""$(SignCheckToolPath)" @(SignCheckArgs, ' ')"
|
||||
IgnoreExitCode='true'
|
||||
ConsoleToMsBuild="false"
|
||||
StandardErrorImportance="high" />
|
||||
|
||||
<Error
|
||||
Text="Signing validation failed. Check $(SignCheckErrorLog) for more information."
|
||||
Condition="Exists($(SignCheckErrorLog)) and '$([System.IO.File]::ReadAllText($(SignCheckErrorLog)))' != ''" />
|
||||
|
||||
<Message
|
||||
Text="##vso[artifact.upload containerfolder=LogFiles;artifactname=LogFiles]{SignCheckErrorLog}"
|
||||
Condition="Exists($(SignCheckErrorLog)) and '$([System.IO.File]::ReadAllText($(SignCheckErrorLog)))' != ''" />
|
||||
|
||||
</Target>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.DotNet.SignCheck" Version="$(SignCheckVersion)" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
@ -1,184 +0,0 @@
|
|||
param(
|
||||
[Parameter(Mandatory=$true)][string] $InputPath, # Full path to directory where Symbols.NuGet packages to be checked are stored
|
||||
[Parameter(Mandatory=$true)][string] $ExtractPath, # Full path to directory where the packages will be extracted during validation
|
||||
[Parameter(Mandatory=$true)][string] $SourceLinkToolPath, # Full path to directory where dotnet SourceLink CLI was installed
|
||||
[Parameter(Mandatory=$true)][string] $GHRepoName, # GitHub name of the repo including the Org. E.g., dotnet/arcade
|
||||
[Parameter(Mandatory=$true)][string] $GHCommit # GitHub commit SHA used to build the packages
|
||||
)
|
||||
|
||||
# Cache/HashMap (File -> Exist flag) used to consult whether a file exist
|
||||
# in the repository at a specific commit point. This is populated by inserting
|
||||
# all files present in the repo at a specific commit point.
|
||||
$global:RepoFiles = @{}
|
||||
|
||||
$ValidatePackage = {
|
||||
param(
|
||||
[string] $PackagePath # Full path to a Symbols.NuGet package
|
||||
)
|
||||
|
||||
# Ensure input file exist
|
||||
if (!(Test-Path $PackagePath)) {
|
||||
throw "Input file does not exist: $PackagePath"
|
||||
}
|
||||
|
||||
# Extensions for which we'll look for SourceLink information
|
||||
# For now we'll only care about Portable & Embedded PDBs
|
||||
$RelevantExtensions = @(".dll", ".exe", ".pdb")
|
||||
|
||||
Write-Host -NoNewLine "Validating" ([System.IO.Path]::GetFileName($PackagePath)) "... "
|
||||
|
||||
$PackageId = [System.IO.Path]::GetFileNameWithoutExtension($PackagePath)
|
||||
$ExtractPath = Join-Path -Path $using:ExtractPath -ChildPath $PackageId
|
||||
$FailedFiles = 0
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
|
||||
[System.IO.Directory]::CreateDirectory($ExtractPath);
|
||||
|
||||
$zip = [System.IO.Compression.ZipFile]::OpenRead($PackagePath)
|
||||
|
||||
$zip.Entries |
|
||||
Where-Object {$RelevantExtensions -contains [System.IO.Path]::GetExtension($_.Name)} |
|
||||
ForEach-Object {
|
||||
$FileName = $_.FullName
|
||||
$Extension = [System.IO.Path]::GetExtension($_.Name)
|
||||
$FakeName = -Join((New-Guid), $Extension)
|
||||
$TargetFile = Join-Path -Path $ExtractPath -ChildPath $FakeName
|
||||
|
||||
# We ignore resource DLLs
|
||||
if ($FileName.EndsWith(".resources.dll")) {
|
||||
return
|
||||
}
|
||||
|
||||
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $TargetFile, $true)
|
||||
|
||||
$ValidateFile = {
|
||||
param(
|
||||
[string] $FullPath, # Full path to the module that has to be checked
|
||||
[string] $RealPath,
|
||||
[ref] $FailedFiles
|
||||
)
|
||||
|
||||
# Makes easier to reference `sourcelink cli`
|
||||
Push-Location $using:SourceLinkToolPath
|
||||
|
||||
$SourceLinkInfos = .\sourcelink.exe print-urls $FullPath | Out-String
|
||||
|
||||
if ($LASTEXITCODE -eq 0 -and -not ([string]::IsNullOrEmpty($SourceLinkInfos))) {
|
||||
$NumFailedLinks = 0
|
||||
|
||||
# We only care about Http addresses
|
||||
$Matches = (Select-String '(http[s]?)(:\/\/)([^\s,]+)' -Input $SourceLinkInfos -AllMatches).Matches
|
||||
|
||||
if ($Matches.Count -ne 0) {
|
||||
$Matches.Value |
|
||||
ForEach-Object {
|
||||
$Link = $_
|
||||
$CommitUrl = -Join("https://raw.githubusercontent.com/", $using:GHRepoName, "/", $using:GHCommit, "/")
|
||||
$FilePath = $Link.Replace($CommitUrl, "")
|
||||
$Status = 200
|
||||
$Cache = $using:RepoFiles
|
||||
|
||||
if ( !($Cache.ContainsKey($FilePath)) ) {
|
||||
try {
|
||||
$Uri = $Link -as [System.URI]
|
||||
|
||||
# Only GitHub links are valid
|
||||
if ($Uri.AbsoluteURI -ne $null -and $Uri.Host -match "github") {
|
||||
$Status = (Invoke-WebRequest -Uri $Link -UseBasicParsing -Method HEAD -TimeoutSec 5).StatusCode
|
||||
}
|
||||
else {
|
||||
$Status = 0
|
||||
}
|
||||
}
|
||||
catch {
|
||||
$Status = 0
|
||||
}
|
||||
}
|
||||
|
||||
if ($Status -ne 200) {
|
||||
if ($NumFailedLinks -eq 0) {
|
||||
if ($FailedFiles.Value -eq 0) {
|
||||
Write-Host
|
||||
}
|
||||
|
||||
Write-Host "`tFile $RealPath has broken links:"
|
||||
}
|
||||
|
||||
Write-Host "`t`tFailed to retrieve $Link"
|
||||
|
||||
$NumFailedLinks++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($NumFailedLinks -ne 0) {
|
||||
$FailedFiles.value++
|
||||
$global:LASTEXITCODE = 1
|
||||
}
|
||||
}
|
||||
|
||||
Pop-Location
|
||||
}
|
||||
|
||||
&$ValidateFile $TargetFile $FileName ([ref]$FailedFiles)
|
||||
}
|
||||
|
||||
$zip.Dispose()
|
||||
|
||||
if ($FailedFiles -eq 0) {
|
||||
Write-Host "Passed."
|
||||
}
|
||||
}
|
||||
|
||||
function ValidateSourceLinkLinks {
|
||||
if (!($GHRepoName -Match "^[^\s\/]+/[^\s\/]+$")) {
|
||||
Write-Host "GHRepoName should be in the format <org>/<repo>"
|
||||
$global:LASTEXITCODE = 1
|
||||
return
|
||||
}
|
||||
|
||||
if (!($GHCommit -Match "^[0-9a-fA-F]{40}$")) {
|
||||
Write-Host "GHCommit should be a 40 chars hexadecimal string"
|
||||
$global:LASTEXITCODE = 1
|
||||
return
|
||||
}
|
||||
|
||||
$RepoTreeURL = -Join("https://api.github.com/repos/", $GHRepoName, "/git/trees/", $GHCommit, "?recursive=1")
|
||||
$CodeExtensions = @(".cs", ".vb", ".fs", ".fsi", ".fsx", ".fsscript")
|
||||
|
||||
try {
|
||||
# Retrieve the list of files in the repo at that particular commit point and store them in the RepoFiles hash
|
||||
$Data = Invoke-WebRequest $RepoTreeURL | ConvertFrom-Json | Select-Object -ExpandProperty tree
|
||||
|
||||
foreach ($file in $Data) {
|
||||
$Extension = [System.IO.Path]::GetExtension($file.path)
|
||||
|
||||
if ($CodeExtensions.Contains($Extension)) {
|
||||
$RepoFiles[$file.path] = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host "Problems downloading the list of files from the repo. Url used: $RepoTreeURL"
|
||||
$global:LASTEXITCODE = 1
|
||||
return
|
||||
}
|
||||
|
||||
if (Test-Path $ExtractPath) {
|
||||
Remove-Item $ExtractPath -Force -Recurse -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Process each NuGet package in parallel
|
||||
$Jobs = @()
|
||||
Get-ChildItem "$InputPath\*.symbols.nupkg" |
|
||||
ForEach-Object {
|
||||
$Jobs += Start-Job -ScriptBlock $ValidatePackage -ArgumentList $_.FullName
|
||||
}
|
||||
|
||||
foreach ($Job in $Jobs) {
|
||||
Wait-Job -Id $Job.Id | Receive-Job
|
||||
}
|
||||
}
|
||||
|
||||
Measure-Command { ValidateSourceLinkLinks }
|
||||
|
|
@ -18,56 +18,65 @@ Param(
|
|||
[switch] $sign,
|
||||
[switch] $pack,
|
||||
[switch] $publish,
|
||||
[switch] $clean,
|
||||
[switch][Alias('bl')]$binaryLog,
|
||||
[switch][Alias('nobl')]$excludeCIBinarylog,
|
||||
[switch] $ci,
|
||||
[switch] $prepareMachine,
|
||||
[switch] $help,
|
||||
[Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
|
||||
)
|
||||
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
function Print-Usage() {
|
||||
Write-Host "Common settings:"
|
||||
Write-Host " -configuration <value> Build configuration: 'Debug' or 'Release' (short: -c)"
|
||||
Write-Host " -platform <value> Platform configuration: 'x86', 'x64' or any valid Platform value to pass to msbuild"
|
||||
Write-Host " -verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
||||
Write-Host " -binaryLog Output binary log (short: -bl)"
|
||||
Write-Host " -help Print help and exit"
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Actions:"
|
||||
Write-Host " -restore Restore dependencies (short: -r)"
|
||||
Write-Host " -build Build solution (short: -b)"
|
||||
Write-Host " -rebuild Rebuild solution"
|
||||
Write-Host " -deploy Deploy built VSIXes"
|
||||
Write-Host " -deployDeps Deploy dependencies (e.g. VSIXes for integration tests)"
|
||||
Write-Host " -test Run all unit tests in the solution (short: -t)"
|
||||
Write-Host " -integrationTest Run all integration tests in the solution"
|
||||
Write-Host " -performanceTest Run all performance tests in the solution"
|
||||
Write-Host " -pack Package build outputs into NuGet packages and Willow components"
|
||||
Write-Host " -sign Sign build outputs"
|
||||
Write-Host " -publish Publish artifacts (e.g. symbols)"
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Advanced settings:"
|
||||
Write-Host " -projects <value> Semi-colon delimited list of sln/proj's to build. Globbing is supported (*.sln)"
|
||||
Write-Host " -ci Set when running on CI server"
|
||||
Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
|
||||
Write-Host " -warnAsError <value> Sets warnaserror msbuild parameter ('true' or 'false')"
|
||||
Write-Host " -msbuildEngine <value> Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Command line arguments not listed above are passed thru to msbuild."
|
||||
Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -co for configuration, -t for test, etc.)."
|
||||
# Unset 'Platform' environment variable to avoid unwanted collision in InstallDotNetCore.targets file
|
||||
# some computer has this env var defined (e.g. Some HP)
|
||||
if($env:Platform) {
|
||||
$env:Platform=""
|
||||
}
|
||||
function Print-Usage() {
|
||||
Write-Host "Common settings:"
|
||||
Write-Host " -configuration <value> Build configuration: 'Debug' or 'Release' (short: -c)"
|
||||
Write-Host " -platform <value> Platform configuration: 'x86', 'x64' or any valid Platform value to pass to msbuild"
|
||||
Write-Host " -verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
||||
Write-Host " -binaryLog Output binary log (short: -bl)"
|
||||
Write-Host " -help Print help and exit"
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Actions:"
|
||||
Write-Host " -restore Restore dependencies (short: -r)"
|
||||
Write-Host " -build Build solution (short: -b)"
|
||||
Write-Host " -rebuild Rebuild solution"
|
||||
Write-Host " -deploy Deploy built VSIXes"
|
||||
Write-Host " -deployDeps Deploy dependencies (e.g. VSIXes for integration tests)"
|
||||
Write-Host " -test Run all unit tests in the solution (short: -t)"
|
||||
Write-Host " -integrationTest Run all integration tests in the solution"
|
||||
Write-Host " -performanceTest Run all performance tests in the solution"
|
||||
Write-Host " -pack Package build outputs into NuGet packages and Willow components"
|
||||
Write-Host " -sign Sign build outputs"
|
||||
Write-Host " -publish Publish artifacts (e.g. symbols)"
|
||||
Write-Host " -clean Clean the solution"
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Advanced settings:"
|
||||
Write-Host " -projects <value> Semi-colon delimited list of sln/proj's to build. Globbing is supported (*.sln)"
|
||||
Write-Host " -ci Set when running on CI server"
|
||||
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 " -warnAsError <value> Sets warnaserror msbuild parameter ('true' or 'false')"
|
||||
Write-Host " -msbuildEngine <value> Msbuild engine to use to run build ('dotnet', 'vs', or unspecified)."
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Command line arguments not listed above are passed thru to msbuild."
|
||||
Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -co for configuration, -t for test, etc.)."
|
||||
}
|
||||
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
function InitializeCustomToolset {
|
||||
if (-not $restore) {
|
||||
return
|
||||
}
|
||||
|
||||
$script = Join-Path $EngRoot "restore-toolset.ps1"
|
||||
$script = Join-Path $EngRoot 'restore-toolset.ps1'
|
||||
|
||||
if (Test-Path $script) {
|
||||
. $script
|
||||
|
|
@ -78,8 +87,8 @@ function Build {
|
|||
$toolsetBuildProj = InitializeToolset
|
||||
InitializeCustomToolset
|
||||
|
||||
$bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" }
|
||||
$platformArg = if ($platform) { "/p:Platform=$platform" } else { "" }
|
||||
$bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' }
|
||||
$platformArg = if ($platform) { "/p:Platform=$platform" } else { '' }
|
||||
|
||||
if ($projects) {
|
||||
# Re-assign properties to a new variable because PowerShell doesn't let us append properties directly for unclear reasons.
|
||||
|
|
@ -113,24 +122,27 @@ function Build {
|
|||
}
|
||||
|
||||
try {
|
||||
if ($help -or (($null -ne $properties) -and ($properties.Contains("/help") -or $properties.Contains("/?")))) {
|
||||
if ($clean) {
|
||||
if (Test-Path $ArtifactsDir) {
|
||||
Remove-Item -Recurse -Force $ArtifactsDir
|
||||
Write-Host 'Artifacts directory deleted.'
|
||||
}
|
||||
exit 0
|
||||
}
|
||||
|
||||
if ($help -or (($null -ne $properties) -and ($properties.Contains('/help') -or $properties.Contains('/?')))) {
|
||||
Print-Usage
|
||||
exit 0
|
||||
}
|
||||
|
||||
if ($ci) {
|
||||
$binaryLog = $true
|
||||
if (-not $excludeCIBinarylog) {
|
||||
$binaryLog = $true
|
||||
}
|
||||
$nodeReuse = $false
|
||||
}
|
||||
|
||||
# Import custom tools configuration, if present in the repo.
|
||||
# Note: Import in global scope so that the script set top-level variables without qualification.
|
||||
$configureToolsetScript = Join-Path $EngRoot "configure-toolset.ps1"
|
||||
if (Test-Path $configureToolsetScript) {
|
||||
. $configureToolsetScript
|
||||
}
|
||||
|
||||
if (($restore) -and ($null -eq $env:DisableNativeToolsetInstalls)) {
|
||||
if ($restore) {
|
||||
InitializeNativeTools
|
||||
}
|
||||
|
||||
|
|
@ -138,7 +150,7 @@ try {
|
|||
}
|
||||
catch {
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category "InitializeToolset" -Message $_
|
||||
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,11 +26,13 @@ usage()
|
|||
echo " --pack Package build outputs into NuGet packages and Willow components"
|
||||
echo " --sign Sign build outputs"
|
||||
echo " --publish Publish artifacts (e.g. symbols)"
|
||||
echo " --clean Clean the solution"
|
||||
echo ""
|
||||
|
||||
echo "Advanced settings:"
|
||||
echo " --projects <value> Project or solution file(s) to build"
|
||||
echo " --ci Set when running on CI server"
|
||||
echo " --excludeCIBinarylog Don't output binary log (short: -nobl)"
|
||||
echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
|
||||
echo " --nodeReuse <value> Sets nodereuse msbuild parameter ('true' or 'false')"
|
||||
echo " --warnAsError <value> Sets warnaserror msbuild parameter ('true' or 'false')"
|
||||
|
|
@ -62,10 +64,12 @@ publish=false
|
|||
sign=false
|
||||
public=false
|
||||
ci=false
|
||||
clean=false
|
||||
|
||||
warn_as_error=true
|
||||
node_reuse=true
|
||||
binary_log=false
|
||||
exclude_ci_binary_log=false
|
||||
pipelines_log=false
|
||||
|
||||
projects=''
|
||||
|
|
@ -82,6 +86,9 @@ while [[ $# > 0 ]]; do
|
|||
usage
|
||||
exit 0
|
||||
;;
|
||||
-clean)
|
||||
clean=true
|
||||
;;
|
||||
-configuration|-c)
|
||||
configuration=$2
|
||||
shift
|
||||
|
|
@ -93,6 +100,9 @@ while [[ $# > 0 ]]; do
|
|||
-binarylog|-bl)
|
||||
binary_log=true
|
||||
;;
|
||||
-excludeCIBinarylog|-nobl)
|
||||
exclude_ci_binary_log=true
|
||||
;;
|
||||
-pipelineslog|-pl)
|
||||
pipelines_log=true
|
||||
;;
|
||||
|
|
@ -151,8 +161,10 @@ done
|
|||
|
||||
if [[ "$ci" == true ]]; then
|
||||
pipelines_log=true
|
||||
binary_log=true
|
||||
node_reuse=false
|
||||
if [[ "$exclude_ci_binary_log" == false ]]; then
|
||||
binary_log=true
|
||||
fi
|
||||
fi
|
||||
|
||||
. "$scriptroot/tools.sh"
|
||||
|
|
@ -196,20 +208,15 @@ function Build {
|
|||
ExitWithExitCode 0
|
||||
}
|
||||
|
||||
# Import custom tools configuration, if present in the repo.
|
||||
configure_toolset_script="$eng_root/configure-toolset.sh"
|
||||
if [[ -a "$configure_toolset_script" ]]; then
|
||||
. "$configure_toolset_script"
|
||||
if [[ "$clean" == true ]]; then
|
||||
if [ -d "$artifacts_dir" ]; then
|
||||
rm -rf $artifacts_dir
|
||||
echo "Artifacts directory deleted."
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# TODO: https://github.com/dotnet/arcade/issues/1468
|
||||
# Temporary workaround to avoid breaking change.
|
||||
# Remove once repos are updated.
|
||||
if [[ -n "${useInstalledDotNetCli:-}" ]]; then
|
||||
use_installed_dotnet_cli="$useInstalledDotNetCli"
|
||||
fi
|
||||
|
||||
if [[ "$restore" == true && -z ${DisableNativeToolsetInstalls:-} ]]; then
|
||||
if [[ "$restore" == true ]]; then
|
||||
InitializeNativeTools
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
set(CROSS_NDK_TOOLCHAIN $ENV{ROOTFS_DIR}/../)
|
||||
set(CROSS_ROOTFS ${CROSS_NDK_TOOLCHAIN}/sysroot)
|
||||
set(CLR_CMAKE_PLATFORM_ANDROID "Android")
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
|
||||
## Specify the toolchain
|
||||
set(TOOLCHAIN "arm-linux-androideabi")
|
||||
set(CMAKE_PREFIX_PATH ${CROSS_NDK_TOOLCHAIN})
|
||||
set(TOOLCHAIN_PREFIX ${TOOLCHAIN}-)
|
||||
|
||||
find_program(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||
find_program(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}clang++)
|
||||
find_program(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||
find_program(CMAKE_AR ${TOOLCHAIN_PREFIX}ar)
|
||||
find_program(CMAKE_LD ${TOOLCHAIN_PREFIX}ar)
|
||||
find_program(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy)
|
||||
find_program(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump)
|
||||
|
||||
add_compile_options(--sysroot=${CROSS_ROOTFS})
|
||||
add_compile_options(-fPIE)
|
||||
add_compile_options(-mfloat-abi=soft)
|
||||
include_directories(SYSTEM ${CROSS_NDK_TOOLCHAIN}/include/c++/4.9.x/)
|
||||
include_directories(SYSTEM ${CROSS_NDK_TOOLCHAIN}/include/c++/4.9.x/arm-linux-androideabi/)
|
||||
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B ${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}")
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}")
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -fPIE -pie")
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
set(CROSS_NDK_TOOLCHAIN $ENV{ROOTFS_DIR}/../)
|
||||
set(CROSS_ROOTFS ${CROSS_NDK_TOOLCHAIN}/sysroot)
|
||||
set(CLR_CMAKE_PLATFORM_ANDROID "Android")
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
|
||||
## Specify the toolchain
|
||||
set(TOOLCHAIN "aarch64-linux-android")
|
||||
set(CMAKE_PREFIX_PATH ${CROSS_NDK_TOOLCHAIN})
|
||||
set(TOOLCHAIN_PREFIX ${TOOLCHAIN}-)
|
||||
|
||||
find_program(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||
find_program(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}clang++)
|
||||
find_program(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}clang)
|
||||
find_program(CMAKE_AR ${TOOLCHAIN_PREFIX}ar)
|
||||
find_program(CMAKE_LD ${TOOLCHAIN_PREFIX}ar)
|
||||
find_program(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy)
|
||||
find_program(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump)
|
||||
|
||||
add_compile_options(--sysroot=${CROSS_ROOTFS})
|
||||
add_compile_options(-fPIE)
|
||||
|
||||
## Needed for Android or bionic specific conditionals
|
||||
add_compile_options(-D__ANDROID__)
|
||||
add_compile_options(-D__BIONIC__)
|
||||
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B ${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}")
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}")
|
||||
set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -fPIE -pie")
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
__TIZEN_CROSSDIR="$__CrossDir/tizen"
|
||||
|
||||
if [[ -z "$ROOTFS_DIR" ]]; then
|
||||
echo "ROOTFS_DIR is not defined."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
TIZEN_TMP_DIR=$ROOTFS_DIR/tizen_tmp
|
||||
mkdir -p $TIZEN_TMP_DIR
|
||||
|
||||
# Download files
|
||||
echo ">>Start downloading files"
|
||||
VERBOSE=1 $__CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR
|
||||
echo "<<Finish downloading files"
|
||||
|
||||
echo ">>Start constructing Tizen rootfs"
|
||||
TIZEN_RPM_FILES=`ls $TIZEN_TMP_DIR/*.rpm`
|
||||
cd $ROOTFS_DIR
|
||||
for f in $TIZEN_RPM_FILES; do
|
||||
rpm2cpio $f | cpio -idm --quiet
|
||||
done
|
||||
echo "<<Finish constructing Tizen rootfs"
|
||||
|
||||
# Cleanup tmp
|
||||
rm -rf $TIZEN_TMP_DIR
|
||||
|
||||
# Configure Tizen rootfs
|
||||
echo ">>Start configuring Tizen rootfs"
|
||||
ln -sfn asm-arm64 ./usr/include/asm
|
||||
patch -p1 < $__TIZEN_CROSSDIR/tizen.patch
|
||||
echo "<<Finish configuring Tizen rootfs"
|
||||
|
|
@ -0,0 +1,170 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [[ -z "${VERBOSE// }" ]] || [ "$VERBOSE" -ne "$VERBOSE" ] 2>/dev/null; then
|
||||
VERBOSE=0
|
||||
fi
|
||||
|
||||
Log()
|
||||
{
|
||||
if [ $VERBOSE -ge $1 ]; then
|
||||
echo ${@:2}
|
||||
fi
|
||||
}
|
||||
|
||||
Inform()
|
||||
{
|
||||
Log 1 -e "\x1B[0;34m$@\x1B[m"
|
||||
}
|
||||
|
||||
Debug()
|
||||
{
|
||||
Log 2 -e "\x1B[0;32m$@\x1B[m"
|
||||
}
|
||||
|
||||
Error()
|
||||
{
|
||||
>&2 Log 0 -e "\x1B[0;31m$@\x1B[m"
|
||||
}
|
||||
|
||||
Fetch()
|
||||
{
|
||||
URL=$1
|
||||
FILE=$2
|
||||
PROGRESS=$3
|
||||
if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then
|
||||
CURL_OPT="--progress-bar"
|
||||
else
|
||||
CURL_OPT="--silent"
|
||||
fi
|
||||
curl $CURL_OPT $URL > $FILE
|
||||
}
|
||||
|
||||
hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; }
|
||||
hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; }
|
||||
hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; }
|
||||
|
||||
TMPDIR=$1
|
||||
if [ ! -d $TMPDIR ]; then
|
||||
TMPDIR=./tizen_tmp
|
||||
Debug "Create temporary directory : $TMPDIR"
|
||||
mkdir -p $TMPDIR
|
||||
fi
|
||||
|
||||
TIZEN_URL=http://download.tizen.org/snapshots/tizen/
|
||||
BUILD_XML=build.xml
|
||||
REPOMD_XML=repomd.xml
|
||||
PRIMARY_XML=primary.xml
|
||||
TARGET_URL="http://__not_initialized"
|
||||
|
||||
Xpath_get()
|
||||
{
|
||||
XPATH_RESULT=''
|
||||
XPATH=$1
|
||||
XML_FILE=$2
|
||||
RESULT=$(xmllint --xpath $XPATH $XML_FILE)
|
||||
if [[ -z ${RESULT// } ]]; then
|
||||
Error "Can not find target from $XML_FILE"
|
||||
Debug "Xpath = $XPATH"
|
||||
exit 1
|
||||
fi
|
||||
XPATH_RESULT=$RESULT
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs_init()
|
||||
{
|
||||
TARGET=$1
|
||||
PROFILE=$2
|
||||
Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE"
|
||||
|
||||
TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs
|
||||
if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi
|
||||
mkdir -p $TMP_PKG_DIR
|
||||
|
||||
PKG_URL=$TIZEN_URL/$PROFILE/latest
|
||||
|
||||
BUILD_XML_URL=$PKG_URL/$BUILD_XML
|
||||
TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML
|
||||
TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML
|
||||
TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML
|
||||
TMP_PRIMARYGZ=${TMP_PRIMARY}.gz
|
||||
|
||||
Fetch $BUILD_XML_URL $TMP_BUILD
|
||||
|
||||
Debug "fetch $BUILD_XML_URL to $TMP_BUILD"
|
||||
|
||||
TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()"
|
||||
Xpath_get $TARGET_XPATH $TMP_BUILD
|
||||
TARGET_PATH=$XPATH_RESULT
|
||||
TARGET_URL=$PKG_URL/$TARGET_PATH
|
||||
|
||||
REPOMD_URL=$TARGET_URL/repodata/repomd.xml
|
||||
PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)'
|
||||
|
||||
Fetch $REPOMD_URL $TMP_REPOMD
|
||||
|
||||
Debug "fetch $REPOMD_URL to $TMP_REPOMD"
|
||||
|
||||
Xpath_get $PRIMARY_XPATH $TMP_REPOMD
|
||||
PRIMARY_XML_PATH=$XPATH_RESULT
|
||||
PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH
|
||||
|
||||
Fetch $PRIMARY_URL $TMP_PRIMARYGZ
|
||||
|
||||
Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ"
|
||||
|
||||
gunzip $TMP_PRIMARYGZ
|
||||
|
||||
Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY"
|
||||
}
|
||||
|
||||
fetch_tizen_pkgs()
|
||||
{
|
||||
ARCH=$1
|
||||
PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="location"]/@href)'
|
||||
|
||||
PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]][*[local-name()="arch"][text()="_ARCH_"]]/*[local-name()="checksum"]/text())'
|
||||
|
||||
for pkg in ${@:2}
|
||||
do
|
||||
Inform "Fetching... $pkg"
|
||||
XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
PKG_PATH=$XPATH_RESULT
|
||||
|
||||
XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg}
|
||||
XPATH=${XPATH/_ARCH_/$ARCH}
|
||||
Xpath_get $XPATH $TMP_PRIMARY
|
||||
CHECKSUM=$XPATH_RESULT
|
||||
|
||||
PKG_URL=$TARGET_URL/$PKG_PATH
|
||||
PKG_FILE=$(basename $PKG_PATH)
|
||||
PKG_PATH=$TMPDIR/$PKG_FILE
|
||||
|
||||
Debug "Download $PKG_URL to $PKG_PATH"
|
||||
Fetch $PKG_URL $PKG_PATH true
|
||||
|
||||
echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
Error "Fail to fetch $PKG_URL to $PKG_PATH"
|
||||
Debug "Checksum = $CHECKSUM"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
Inform "Initialize arm base"
|
||||
fetch_tizen_pkgs_init standard base
|
||||
Inform "fetch common packages"
|
||||
fetch_tizen_pkgs aarch64 gcc glibc glibc-devel libicu libicu-devel libatomic linux-glibc-devel
|
||||
Inform "fetch coreclr packages"
|
||||
fetch_tizen_pkgs aarch64 lldb lldb-devel libgcc libstdc++ libstdc++-devel libunwind libunwind-devel lttng-ust-devel lttng-ust userspace-rcu-devel userspace-rcu
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs aarch64 libcom_err libcom_err-devel zlib zlib-devel libopenssl libopenssl1.1-devel krb5 krb5-devel
|
||||
|
||||
Inform "Initialize standard unified"
|
||||
fetch_tizen_pkgs_init standard unified
|
||||
Inform "fetch corefx packages"
|
||||
fetch_tizen_pkgs aarch64 gssdp gssdp-devel tizen-release
|
||||
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so
|
||||
--- a/usr/lib64/libc.so 2016-12-30 23:00:08.284951863 +0900
|
||||
+++ b/usr/lib64/libc.so 2016-12-30 23:00:32.140951815 +0900
|
||||
@@ -2,4 +2,4 @@
|
||||
Use the shared library, but some functions are only in
|
||||
the static library, so try that secondarily. */
|
||||
OUTPUT_FORMAT(elf64-littleaarch64)
|
||||
-GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) )
|
||||
+GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux-aarch64.so.1 ) )
|
||||
|
|
@ -9,13 +9,6 @@ if [[ -z "$ROOTFS_DIR" ]]; then
|
|||
exit 1;
|
||||
fi
|
||||
|
||||
# Clean-up (TODO-Cleanup: We may already delete $ROOTFS_DIR at ./cross/build-rootfs.sh.)
|
||||
# hk0110
|
||||
if [ -d "$ROOTFS_DIR" ]; then
|
||||
umount $ROOTFS_DIR/*
|
||||
rm -rf $ROOTFS_DIR
|
||||
fi
|
||||
|
||||
TIZEN_TMP_DIR=$ROOTFS_DIR/tizen_tmp
|
||||
mkdir -p $TIZEN_TMP_DIR
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
__NDK_Version=r14
|
||||
__NDK_Version=r21
|
||||
|
||||
usage()
|
||||
{
|
||||
|
|
@ -16,11 +16,11 @@ usage()
|
|||
echo.
|
||||
echo "By default, the NDK will be downloaded into the cross/android-rootfs/android-ndk-$__NDK_Version directory. If you already have an NDK installation,"
|
||||
echo "you can set the NDK_DIR environment variable to have this script use that installation of the NDK."
|
||||
echo "By default, this script will generate a file, android_platform, in the root of the ROOTFS_DIR directory that contains the RID for the supported and tested Android build: android.21-arm64. This file is to replace '/etc/os-release', which is not available for Android."
|
||||
echo "By default, this script will generate a file, android_platform, in the root of the ROOTFS_DIR directory that contains the RID for the supported and tested Android build: android.28-arm64. This file is to replace '/etc/os-release', which is not available for Android."
|
||||
exit 1
|
||||
}
|
||||
|
||||
__ApiLevel=21 # The minimum platform for arm64 is API level 21
|
||||
__ApiLevel=28 # The minimum platform for arm64 is API level 21 but the minimum version that support glob(3) is 28. See $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/glob.h
|
||||
__BuildArch=arm64
|
||||
__AndroidArch=aarch64
|
||||
__AndroidToolchain=aarch64-linux-android
|
||||
|
|
@ -53,13 +53,20 @@ for i in "$@"
|
|||
done
|
||||
|
||||
# Obtain the location of the bash script to figure out where the root of the repo is.
|
||||
__CrossDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
__ScriptBaseDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
__Android_Cross_Dir="$__CrossDir/android-rootfs"
|
||||
__NDK_Dir="$__Android_Cross_Dir/android-ndk-$__NDK_Version"
|
||||
__libunwind_Dir="$__Android_Cross_Dir/libunwind"
|
||||
__lldb_Dir="$__Android_Cross_Dir/lldb"
|
||||
__ToolchainDir="$__Android_Cross_Dir/toolchain/$__BuildArch"
|
||||
__CrossDir="$__ScriptBaseDir/../../../.tools/android-rootfs"
|
||||
|
||||
if [[ ! -f "$__CrossDir" ]]; then
|
||||
mkdir -p "$__CrossDir"
|
||||
fi
|
||||
|
||||
# Resolve absolute path to avoid `../` in build logs
|
||||
__CrossDir="$( cd "$__CrossDir" && pwd )"
|
||||
|
||||
__NDK_Dir="$__CrossDir/android-ndk-$__NDK_Version"
|
||||
__lldb_Dir="$__CrossDir/lldb"
|
||||
__ToolchainDir="$__CrossDir/android-ndk-$__NDK_Version"
|
||||
|
||||
if [[ -n "$TOOLCHAIN_DIR" ]]; then
|
||||
__ToolchainDir=$TOOLCHAIN_DIR
|
||||
|
|
@ -78,60 +85,47 @@ echo "Target Toolchain location: $__ToolchainDir"
|
|||
if [ ! -d $__NDK_Dir ]; then
|
||||
echo Downloading the NDK into $__NDK_Dir
|
||||
mkdir -p $__NDK_Dir
|
||||
wget -nv -nc --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__Android_Cross_Dir/android-ndk-$__NDK_Version-linux-x86_64.zip
|
||||
unzip -q $__Android_Cross_Dir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__Android_Cross_Dir
|
||||
wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/android-ndk-$__NDK_Version-linux-x86_64.zip -O $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip
|
||||
unzip -q $__CrossDir/android-ndk-$__NDK_Version-linux-x86_64.zip -d $__CrossDir
|
||||
fi
|
||||
|
||||
if [ ! -d $__lldb_Dir ]; then
|
||||
mkdir -p $__lldb_Dir
|
||||
echo Downloading LLDB into $__lldb_Dir
|
||||
wget -nv -nc --show-progress https://dl.google.com/android/repository/lldb-2.3.3614996-linux-x86_64.zip -O $__Android_Cross_Dir/lldb-2.3.3614996-linux-x86_64.zip
|
||||
unzip -q $__Android_Cross_Dir/lldb-2.3.3614996-linux-x86_64.zip -d $__lldb_Dir
|
||||
wget -q --progress=bar:force:noscroll --show-progress https://dl.google.com/android/repository/lldb-2.3.3614996-linux-x86_64.zip -O $__CrossDir/lldb-2.3.3614996-linux-x86_64.zip
|
||||
unzip -q $__CrossDir/lldb-2.3.3614996-linux-x86_64.zip -d $__lldb_Dir
|
||||
fi
|
||||
|
||||
# Create the RootFS for both arm64 as well as aarch
|
||||
rm -rf $__Android_Cross_Dir/toolchain
|
||||
echo "Download dependencies..."
|
||||
__TmpDir=$__CrossDir/tmp/$__BuildArch/
|
||||
mkdir -p "$__TmpDir"
|
||||
|
||||
echo Generating the $__BuildArch toolchain
|
||||
$__NDK_Dir/build/tools/make_standalone_toolchain.py --arch $__BuildArch --api $__ApiLevel --install-dir $__ToolchainDir
|
||||
# combined dependencies for coreclr, installer and libraries
|
||||
__AndroidPackages="libicu"
|
||||
__AndroidPackages+=" libandroid-glob"
|
||||
__AndroidPackages+=" liblzma"
|
||||
__AndroidPackages+=" krb5"
|
||||
__AndroidPackages+=" openssl"
|
||||
|
||||
# Install the required packages into the toolchain
|
||||
# TODO: Add logic to get latest pkg version instead of specific version number
|
||||
rm -rf $__Android_Cross_Dir/deb/
|
||||
rm -rf $__Android_Cross_Dir/tmp
|
||||
for path in $(wget -qO- http://termux.net/dists/stable/main/binary-$__AndroidArch/Packages |\
|
||||
grep -A15 "Package: \(${__AndroidPackages// /\\|}\)" | grep -v "static\|tool" | grep Filename); do
|
||||
|
||||
mkdir -p $__Android_Cross_Dir/deb/
|
||||
mkdir -p $__Android_Cross_Dir/tmp/$arch/
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libicu_60.2_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libicu_60.2_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libicu-dev_60.2_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libicu-dev_60.2_$__AndroidArch.deb
|
||||
if [[ "$path" != "Filename:" ]]; then
|
||||
echo "Working on: $path"
|
||||
wget -qO- http://termux.net/$path | dpkg -x - "$__TmpDir"
|
||||
fi
|
||||
done
|
||||
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-glob-dev_0.4_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-glob-dev_0.4_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-glob_0.4_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-glob_0.4_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-support-dev_22_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-support-dev_22_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-support_22_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-support_22_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/liblzma-dev_5.2.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/liblzma-dev_5.2.3_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/liblzma_5.2.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/liblzma_5.2.3_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libunwind-dev_1.2.20170304_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libunwind-dev_1.2.20170304_$__AndroidArch.deb
|
||||
wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libunwind_1.2.20170304_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libunwind_1.2.20170304_$__AndroidArch.deb
|
||||
|
||||
echo Unpacking Termux packages
|
||||
dpkg -x $__Android_Cross_Dir/deb/libicu_60.2_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/libicu-dev_60.2_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/libandroid-glob-dev_0.4_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/libandroid-glob_0.4_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/libandroid-support-dev_22_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/libandroid-support_22_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/liblzma-dev_5.2.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/liblzma_5.2.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/libunwind-dev_1.2.20170304_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
dpkg -x $__Android_Cross_Dir/deb/libunwind_1.2.20170304_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/
|
||||
|
||||
cp -R $__Android_Cross_Dir/tmp/$__AndroidArch/data/data/com.termux/files/usr/* $__ToolchainDir/sysroot/usr/
|
||||
cp -R "$__TmpDir/data/data/com.termux/files/usr/"* "$__ToolchainDir/sysroot/usr/"
|
||||
|
||||
# Generate platform file for build.sh script to assign to __DistroRid
|
||||
echo "Generating platform file..."
|
||||
echo "RID=android.${__ApiLevel}-${__BuildArch}" > $__ToolchainDir/sysroot/android_platform
|
||||
|
||||
echo "RID=android.21-arm64" > $__ToolchainDir/sysroot/android_platform
|
||||
echo Now run:
|
||||
echo CONFIG_DIR=\`realpath cross/android/$__BuildArch\` ROOTFS_DIR=\`realpath $__ToolchainDir/sysroot\` ./build.sh cross $__BuildArch skipgenerateversion skipnuget cmakeargs -DENABLE_LLDBPLUGIN=0
|
||||
|
||||
echo "Now to build coreclr, libraries and installers; run:"
|
||||
echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \
|
||||
--subsetCategory coreclr
|
||||
echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \
|
||||
--subsetCategory libraries
|
||||
echo ROOTFS_DIR=\$\(realpath $__ToolchainDir/sysroot\) ./build.sh --cross --arch $__BuildArch \
|
||||
--subsetCategory installer
|
||||
|
|
|
|||
|
|
@ -1,19 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount] --rootfsdir <directory>]"
|
||||
echo "Usage: $0 [BuildArch] [CodeName] [lldbx.y] [--skipunmount] --rootfsdir <directory>]"
|
||||
echo "BuildArch can be: arm(default), armel, arm64, x86"
|
||||
echo "LinuxCodeName - optional, Code name for Linux, can be: trusty, xenial(default), zesty, bionic, alpine. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
|
||||
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine"
|
||||
echo "CodeName - optional, Code name for Linux, can be: trusty, xenial(default), zesty, bionic, alpine. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
|
||||
echo " for FreeBSD can be: freebsd11 or freebsd12."
|
||||
echo " for illumos can be: illumos."
|
||||
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FReeBSD"
|
||||
echo "--skipunmount - optional, will skip the unmount of rootfs folder."
|
||||
echo "--use-mirror - optional, use mirror URL to fetch resources, when available."
|
||||
exit 1
|
||||
}
|
||||
|
||||
__LinuxCodeName=xenial
|
||||
__CodeName=xenial
|
||||
__CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
__InitialDir=$PWD
|
||||
__BuildArch=arm
|
||||
__AlpineArch=armv7
|
||||
__QEMUArch=arm
|
||||
__UbuntuArch=armhf
|
||||
__UbuntuRepo="http://ports.ubuntu.com/"
|
||||
__LLDB_Package="liblldb-3.9-dev"
|
||||
|
|
@ -25,8 +32,10 @@ __UbuntuPackages="build-essential"
|
|||
__AlpinePackages="alpine-base"
|
||||
__AlpinePackages+=" build-base"
|
||||
__AlpinePackages+=" linux-headers"
|
||||
__AlpinePackages+=" lldb-dev"
|
||||
__AlpinePackages+=" llvm-dev"
|
||||
__AlpinePackagesEdgeCommunity=" lldb-dev"
|
||||
__AlpinePackagesEdgeMain=" llvm10-libs"
|
||||
__AlpinePackagesEdgeMain+=" python3"
|
||||
__AlpinePackagesEdgeMain+=" libedit"
|
||||
|
||||
# symlinks fixer
|
||||
__UbuntuPackages+=" symlinks"
|
||||
|
|
@ -52,6 +61,21 @@ __AlpinePackages+=" krb5-dev"
|
|||
__AlpinePackages+=" openssl-dev"
|
||||
__AlpinePackages+=" zlib-dev"
|
||||
|
||||
__FreeBSDBase="12.1-RELEASE"
|
||||
__FreeBSDPkg="1.12.0"
|
||||
__FreeBSDPackages="libunwind"
|
||||
__FreeBSDPackages+=" icu"
|
||||
__FreeBSDPackages+=" libinotify"
|
||||
__FreeBSDPackages+=" lttng-ust"
|
||||
__FreeBSDPackages+=" krb5"
|
||||
|
||||
__IllumosPackages="icu-64.2nb2"
|
||||
__IllumosPackages+=" mit-krb5-1.16.2nb4"
|
||||
__IllumosPackages+=" openssl-1.1.1e"
|
||||
__IllumosPackages+=" zlib-1.2.11"
|
||||
|
||||
__UseMirror=0
|
||||
|
||||
__UnprocessedBuildArgs=
|
||||
while :; do
|
||||
if [ $# -le 0 ]; then
|
||||
|
|
@ -67,7 +91,7 @@ while :; do
|
|||
arm)
|
||||
__BuildArch=arm
|
||||
__UbuntuArch=armhf
|
||||
__AlpineArch=armhf
|
||||
__AlpineArch=armv7
|
||||
__QEMUArch=arm
|
||||
;;
|
||||
arm64)
|
||||
|
|
@ -80,7 +104,7 @@ while :; do
|
|||
__BuildArch=armel
|
||||
__UbuntuArch=armel
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__LinuxCodeName=jessie
|
||||
__CodeName=jessie
|
||||
;;
|
||||
x86)
|
||||
__BuildArch=x86
|
||||
|
|
@ -109,53 +133,66 @@ while :; do
|
|||
unset __LLDB_Package
|
||||
;;
|
||||
trusty) # Ubuntu 14.04
|
||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||
__LinuxCodeName=trusty
|
||||
if [ "$__CodeName" != "jessie" ]; then
|
||||
__CodeName=trusty
|
||||
fi
|
||||
;;
|
||||
xenial) # Ubuntu 16.04
|
||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||
__LinuxCodeName=xenial
|
||||
if [ "$__CodeName" != "jessie" ]; then
|
||||
__CodeName=xenial
|
||||
fi
|
||||
;;
|
||||
zesty) # Ubuntu 17.04
|
||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||
__LinuxCodeName=zesty
|
||||
if [ "$__CodeName" != "jessie" ]; then
|
||||
__CodeName=zesty
|
||||
fi
|
||||
;;
|
||||
bionic) # Ubuntu 18.04
|
||||
if [ "$__LinuxCodeName" != "jessie" ]; then
|
||||
__LinuxCodeName=bionic
|
||||
if [ "$__CodeName" != "jessie" ]; then
|
||||
__CodeName=bionic
|
||||
fi
|
||||
;;
|
||||
jessie) # Debian 8
|
||||
__LinuxCodeName=jessie
|
||||
__CodeName=jessie
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
;;
|
||||
stretch) # Debian 9
|
||||
__LinuxCodeName=stretch
|
||||
__CodeName=stretch
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
;;
|
||||
buster) # Debian 10
|
||||
__LinuxCodeName=buster
|
||||
__CodeName=buster
|
||||
__UbuntuRepo="http://ftp.debian.org/debian/"
|
||||
__LLDB_Package="liblldb-6.0-dev"
|
||||
;;
|
||||
tizen)
|
||||
if [ "$__BuildArch" != "armel" ]; then
|
||||
echo "Tizen is available only for armel."
|
||||
if [ "$__BuildArch" != "armel" ] && [ "$__BuildArch" != "arm64" ]; then
|
||||
echo "Tizen is available only for armel and arm64."
|
||||
usage;
|
||||
exit 1;
|
||||
fi
|
||||
__LinuxCodeName=
|
||||
__CodeName=
|
||||
__UbuntuRepo=
|
||||
__Tizen=tizen
|
||||
;;
|
||||
alpine)
|
||||
__LinuxCodeName=alpine
|
||||
__CodeName=alpine
|
||||
__UbuntuRepo=
|
||||
;;
|
||||
freebsd11)
|
||||
__FreeBSDBase="11.3-RELEASE"
|
||||
;&
|
||||
freebsd12)
|
||||
__CodeName=freebsd
|
||||
__BuildArch=x64
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
illumos)
|
||||
__CodeName=illumos
|
||||
__BuildArch=x64
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
--skipunmount)
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
|
|
@ -163,6 +200,9 @@ while :; do
|
|||
shift
|
||||
__RootfsDir=$1
|
||||
;;
|
||||
--use-mirror)
|
||||
__UseMirror=1
|
||||
;;
|
||||
*)
|
||||
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
|
||||
;;
|
||||
|
|
@ -186,46 +226,121 @@ fi
|
|||
|
||||
if [ -d "$__RootfsDir" ]; then
|
||||
if [ $__SkipUnmount == 0 ]; then
|
||||
umount $__RootfsDir/*
|
||||
umount $__RootfsDir/* || true
|
||||
fi
|
||||
rm -rf $__RootfsDir
|
||||
fi
|
||||
|
||||
if [[ "$__LinuxCodeName" == "alpine" ]]; then
|
||||
mkdir -p $__RootfsDir
|
||||
__RootfsDir="$( cd "$__RootfsDir" && pwd )"
|
||||
|
||||
if [[ "$__CodeName" == "alpine" ]]; then
|
||||
__ApkToolsVersion=2.9.1
|
||||
__AlpineVersion=3.7
|
||||
__AlpineVersion=3.9
|
||||
__ApkToolsDir=$(mktemp -d)
|
||||
wget https://github.com/alpinelinux/apk-tools/releases/download/v$__ApkToolsVersion/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -P $__ApkToolsDir
|
||||
tar -xf $__ApkToolsDir/apk-tools-$__ApkToolsVersion-x86_64-linux.tar.gz -C $__ApkToolsDir
|
||||
mkdir -p $__RootfsDir/usr/bin
|
||||
cp -v /usr/bin/qemu-$__QEMUArch-static $__RootfsDir/usr/bin
|
||||
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/main \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/v$__AlpineVersion/community \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/testing \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/main \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackages
|
||||
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/main \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackagesEdgeMain
|
||||
|
||||
$__ApkToolsDir/apk-tools-$__ApkToolsVersion/apk \
|
||||
-X http://dl-cdn.alpinelinux.org/alpine/edge/community \
|
||||
-U --allow-untrusted --root $__RootfsDir --arch $__AlpineArch --initdb \
|
||||
add $__AlpinePackagesEdgeCommunity
|
||||
|
||||
rm -r $__ApkToolsDir
|
||||
elif [[ -n $__LinuxCodeName ]]; then
|
||||
qemu-debootstrap --arch $__UbuntuArch $__LinuxCodeName $__RootfsDir $__UbuntuRepo
|
||||
cp $__CrossDir/$__BuildArch/sources.list.$__LinuxCodeName $__RootfsDir/etc/apt/sources.list
|
||||
elif [[ "$__CodeName" == "freebsd" ]]; then
|
||||
mkdir -p $__RootfsDir/usr/local/etc
|
||||
wget -O - https://download.freebsd.org/ftp/releases/amd64/${__FreeBSDBase}/base.txz | tar -C $__RootfsDir -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
|
||||
# For now, ask for 11 ABI even on 12. This can be revisited later.
|
||||
echo "ABI = \"FreeBSD:11:amd64\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > ${__RootfsDir}/usr/local/etc/pkg.conf
|
||||
echo "FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > ${__RootfsDir}/etc/pkg/FreeBSD.conf
|
||||
mkdir -p $__RootfsDir/tmp
|
||||
# get and build package manager
|
||||
wget -O - https://github.com/freebsd/pkg/archive/${__FreeBSDPkg}.tar.gz | tar -C $__RootfsDir/tmp -zxf -
|
||||
cd $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
|
||||
# needed for install to succeed
|
||||
mkdir -p $__RootfsDir/host/etc
|
||||
./autogen.sh && ./configure --prefix=$__RootfsDir/host && make && make install
|
||||
rm -rf $__RootfsDir/tmp/pkg-${__FreeBSDPkg}
|
||||
# install packages we need.
|
||||
INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf update
|
||||
INSTALL_AS_USER=$(whoami) $__RootfsDir/host/sbin/pkg -r $__RootfsDir -C $__RootfsDir/usr/local/etc/pkg.conf install --yes $__FreeBSDPackages
|
||||
elif [[ "$__CodeName" == "illumos" ]]; then
|
||||
mkdir "$__RootfsDir/tmp"
|
||||
pushd "$__RootfsDir/tmp"
|
||||
JOBS="$(getconf _NPROCESSORS_ONLN)"
|
||||
echo "Downloading sysroot."
|
||||
wget -O - https://github.com/illumos/sysroot/releases/download/20181213-de6af22ae73b-v1/illumos-sysroot-i386-20181213-de6af22ae73b-v1.tar.gz | tar -C "$__RootfsDir" -xzf -
|
||||
echo "Building binutils. Please wait.."
|
||||
wget -O - https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.bz2 | tar -xjf -
|
||||
mkdir build-binutils && cd build-binutils
|
||||
../binutils-2.33.1/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir"
|
||||
make -j "$JOBS" && make install && cd ..
|
||||
echo "Building gcc. Please wait.."
|
||||
wget -O - https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xz | tar -xJf -
|
||||
CFLAGS="-fPIC"
|
||||
CXXFLAGS="-fPIC"
|
||||
CXXFLAGS_FOR_TARGET="-fPIC"
|
||||
CFLAGS_FOR_TARGET="-fPIC"
|
||||
export CFLAGS CXXFLAGS CXXFLAGS_FOR_TARGET CFLAGS_FOR_TARGET
|
||||
mkdir build-gcc && cd build-gcc
|
||||
../gcc-8.4.0/configure --prefix="$__RootfsDir" --target="x86_64-sun-solaris2.10" --program-prefix="x86_64-illumos-" --with-sysroot="$__RootfsDir" --with-gnu-as \
|
||||
--with-gnu-ld --disable-nls --disable-libgomp --disable-libquadmath --disable-libssp --disable-libvtv --disable-libcilkrts --disable-libada --disable-libsanitizer \
|
||||
--disable-libquadmath-support --disable-shared --enable-tls
|
||||
make -j "$JOBS" && make install && cd ..
|
||||
BaseUrl=https://pkgsrc.joyent.com
|
||||
if [[ "$__UseMirror" == 1 ]]; then
|
||||
BaseUrl=http://pkgsrc.smartos.skylime.net
|
||||
fi
|
||||
BaseUrl="$BaseUrl"/packages/SmartOS/2020Q1/x86_64/All
|
||||
echo "Downloading dependencies."
|
||||
read -ra array <<<"$__IllumosPackages"
|
||||
for package in "${array[@]}"; do
|
||||
echo "Installing $package..."
|
||||
wget "$BaseUrl"/"$package".tgz
|
||||
ar -x "$package".tgz
|
||||
tar --skip-old-files -xzf "$package".tmp.tgz -C "$__RootfsDir" 2>/dev/null
|
||||
done
|
||||
echo "Cleaning up temporary files."
|
||||
popd
|
||||
rm -rf "$__RootfsDir"/{tmp,+*}
|
||||
mkdir -p "$__RootfsDir"/usr/include/net
|
||||
mkdir -p "$__RootfsDir"/usr/include/netpacket
|
||||
wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/bpf.h
|
||||
wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
|
||||
wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
|
||||
wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
|
||||
elif [[ -n $__CodeName ]]; then
|
||||
qemu-debootstrap --arch $__UbuntuArch $__CodeName $__RootfsDir $__UbuntuRepo
|
||||
cp $__CrossDir/$__BuildArch/sources.list.$__CodeName $__RootfsDir/etc/apt/sources.list
|
||||
chroot $__RootfsDir apt-get update
|
||||
chroot $__RootfsDir apt-get -f -y install
|
||||
chroot $__RootfsDir apt-get -y install $__UbuntuPackages
|
||||
chroot $__RootfsDir symlinks -cr /usr
|
||||
|
||||
if [ $__SkipUnmount == 0 ]; then
|
||||
umount $__RootfsDir/*
|
||||
umount $__RootfsDir/* || true
|
||||
fi
|
||||
|
||||
if [[ "$__BuildArch" == "arm" && "$__LinuxCodeName" == "trusty" ]]; then
|
||||
if [[ "$__BuildArch" == "arm" && "$__CodeName" == "trusty" ]]; then
|
||||
pushd $__RootfsDir
|
||||
patch -p1 < $__CrossDir/$__BuildArch/trusty.patch
|
||||
patch -p1 < $__CrossDir/$__BuildArch/trusty-lttng-2.4.patch
|
||||
popd
|
||||
fi
|
||||
elif [ "$__Tizen" == "tizen" ]; then
|
||||
elif [[ "$__Tizen" == "tizen" ]]; then
|
||||
ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh
|
||||
else
|
||||
echo "Unsupported target platform."
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
set(CROSS_ROOTFS $ENV{ROOTFS_DIR})
|
||||
|
||||
set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH})
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
|
||||
set(CMAKE_SYSTEM_NAME FreeBSD)
|
||||
elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc)
|
||||
set(CMAKE_SYSTEM_NAME SunOS)
|
||||
set(ILLUMOS 1)
|
||||
else()
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
endif()
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
|
|
@ -24,65 +31,130 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
|||
else()
|
||||
set(TOOLCHAIN "aarch64-linux-gnu")
|
||||
endif()
|
||||
if("$ENV{__DistroRid}" MATCHES "tizen.*")
|
||||
set(TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
set(CMAKE_SYSTEM_PROCESSOR i686)
|
||||
set(TOOLCHAIN "i686-linux-gnu")
|
||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
set(triple "x86_64-unknown-freebsd11")
|
||||
elseif (ILLUMOS)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
set(TOOLCHAIN "x86_64-illumos")
|
||||
else()
|
||||
message(FATAL_ERROR "Arch is ${TARGET_ARCH_NAME}. Only armel, arm, arm64 and x86 are supported!")
|
||||
endif()
|
||||
|
||||
if(DEFINED ENV{TOOLCHAIN})
|
||||
set(TOOLCHAIN $ENV{TOOLCHAIN})
|
||||
endif()
|
||||
|
||||
# Specify include paths
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
if(DEFINED TIZEN_TOOLCHAIN)
|
||||
if(DEFINED TIZEN_TOOLCHAIN)
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}/include/c++/armv7l-tizen-linux-gnueabi)
|
||||
endif()
|
||||
if(TARGET_ARCH_NAME STREQUAL "arm64")
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/)
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}/include/c++/aarch64-tizen-linux-gnu)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# add_compile_param - adds only new options without duplicates.
|
||||
# arg0 - list with result options, arg1 - list with new options.
|
||||
# arg2 - optional argument, quick summary string for optional using CACHE FORCE mode.
|
||||
macro(add_compile_param)
|
||||
if(NOT ${ARGC} MATCHES "^(2|3)$")
|
||||
message(FATAL_ERROR "Wrong using add_compile_param! Two or three parameters must be given! See add_compile_param description.")
|
||||
endif()
|
||||
foreach(OPTION ${ARGV1})
|
||||
if(NOT ${ARGV0} MATCHES "${OPTION}($| )")
|
||||
set(${ARGV0} "${${ARGV0}} ${OPTION}")
|
||||
if(${ARGC} EQUAL "3") # CACHE FORCE mode
|
||||
set(${ARGV0} "${${ARGV0}}" CACHE STRING "${ARGV2}" FORCE)
|
||||
endif()
|
||||
if("$ENV{__DistroRid}" MATCHES "android.*")
|
||||
if(TARGET_ARCH_NAME STREQUAL "arm")
|
||||
set(ANDROID_ABI armeabi-v7a)
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
||||
set(ANDROID_ABI arm64-v8a)
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
# extract platform number required by the NDK's toolchain
|
||||
string(REGEX REPLACE ".*\\.([0-9]+)-.*" "\\1" ANDROID_PLATFORM "$ENV{__DistroRid}")
|
||||
|
||||
set(ANDROID_TOOLCHAIN clang)
|
||||
set(FEATURE_EVENT_TRACE 0) # disable event trace as there is no lttng-ust package in termux repository
|
||||
set(CMAKE_SYSTEM_LIBRARY_PATH "${CROSS_ROOTFS}/usr/lib")
|
||||
set(CMAKE_SYSTEM_INCLUDE_PATH "${CROSS_ROOTFS}/usr/include")
|
||||
|
||||
# include official NDK toolchain script
|
||||
include(${CROSS_ROOTFS}/../build/cmake/android.toolchain.cmake)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
# we cross-compile by instructing clang
|
||||
set(CMAKE_C_COMPILER_TARGET ${triple})
|
||||
set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
||||
set(CMAKE_ASM_COMPILER_TARGET ${triple})
|
||||
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||
elseif(ILLUMOS)
|
||||
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||
|
||||
include_directories(SYSTEM ${CROSS_ROOTFS}/include)
|
||||
|
||||
set(TOOLSET_PREFIX ${TOOLCHAIN}-)
|
||||
function(locate_toolchain_exec exec var)
|
||||
string(TOUPPER ${exec} EXEC_UPPERCASE)
|
||||
if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "")
|
||||
set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
find_program(EXEC_LOCATION_${exec}
|
||||
NAMES
|
||||
"${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}"
|
||||
"${TOOLSET_PREFIX}${exec}")
|
||||
|
||||
if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND")
|
||||
message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.")
|
||||
endif()
|
||||
set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}")
|
||||
|
||||
locate_toolchain_exec(gcc CMAKE_C_COMPILER)
|
||||
locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
|
||||
|
||||
set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
|
||||
else()
|
||||
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
|
||||
|
||||
set(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
|
||||
set(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
|
||||
set(CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN "${CROSS_ROOTFS}/usr")
|
||||
endif()
|
||||
|
||||
# Specify link flags
|
||||
add_compile_param(CROSS_LINK_FLAGS "--sysroot=${CROSS_ROOTFS}")
|
||||
add_compile_param(CROSS_LINK_FLAGS "--gcc-toolchain=${CROSS_ROOTFS}/usr")
|
||||
add_compile_param(CROSS_LINK_FLAGS "--target=${TOOLCHAIN}")
|
||||
add_compile_param(CROSS_LINK_FLAGS "-fuse-ld=gold")
|
||||
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
|
||||
add_compile_param(CROSS_LINK_FLAGS "-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/lib")
|
||||
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib")
|
||||
add_compile_param(CROSS_LINK_FLAGS "-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
add_link_options("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
add_link_options("-L${CROSS_ROOTFS}/lib")
|
||||
add_link_options("-L${CROSS_ROOTFS}/usr/lib")
|
||||
add_link_options("-L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "arm64")
|
||||
if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
|
||||
add_link_options("-B${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
|
||||
add_link_options("-L${CROSS_ROOTFS}/lib64")
|
||||
add_link_options("-L${CROSS_ROOTFS}/usr/lib64")
|
||||
add_link_options("-L${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
|
||||
|
||||
add_link_options("-Wl,--rpath-link=${CROSS_ROOTFS}/lib64")
|
||||
add_link_options("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64")
|
||||
add_link_options("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
add_compile_param(CROSS_LINK_FLAGS "-m32")
|
||||
add_link_options(-m32)
|
||||
elseif(ILLUMOS)
|
||||
add_link_options("-L${CROSS_ROOTFS}/lib/amd64")
|
||||
add_link_options("-L${CROSS_ROOTFS}/usr/amd64/lib")
|
||||
endif()
|
||||
|
||||
add_compile_param(CMAKE_EXE_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
||||
add_compile_param(CMAKE_SHARED_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
||||
add_compile_param(CMAKE_MODULE_LINKER_FLAGS "${CROSS_LINK_FLAGS}" "TOOLCHAIN_EXE_LINKER_FLAGS")
|
||||
|
||||
# Specify compile options
|
||||
add_compile_options("--sysroot=${CROSS_ROOTFS}")
|
||||
add_compile_options("--target=${TOOLCHAIN}")
|
||||
add_compile_options("--gcc-toolchain=${CROSS_ROOTFS}/usr")
|
||||
|
||||
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$")
|
||||
if((TARGET_ARCH_NAME MATCHES "^(arm|armel|arm64)$" AND NOT "$ENV{__DistroRid}" MATCHES "android.*") OR ILLUMOS)
|
||||
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
|
||||
set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
|
||||
set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})
|
||||
|
|
@ -90,20 +162,33 @@ endif()
|
|||
|
||||
if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
|
||||
add_compile_options(-mthumb)
|
||||
add_compile_options(-mfpu=vfpv3)
|
||||
if (NOT DEFINED CLR_ARM_FPU_TYPE)
|
||||
set (CLR_ARM_FPU_TYPE vfpv3)
|
||||
endif (NOT DEFINED CLR_ARM_FPU_TYPE)
|
||||
|
||||
add_compile_options (-mfpu=${CLR_ARM_FPU_TYPE})
|
||||
if (NOT DEFINED CLR_ARM_FPU_CAPABILITY)
|
||||
set (CLR_ARM_FPU_CAPABILITY 0x7)
|
||||
endif (NOT DEFINED CLR_ARM_FPU_CAPABILITY)
|
||||
|
||||
add_definitions (-DCLR_ARM_FPU_CAPABILITY=${CLR_ARM_FPU_CAPABILITY})
|
||||
|
||||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
add_compile_options(-mfloat-abi=softfp)
|
||||
if(DEFINED TIZEN_TOOLCHAIN)
|
||||
add_compile_options(-Wno-deprecated-declarations) # compile-time option
|
||||
add_compile_options(-D__extern_always_inline=inline) # compile-time option
|
||||
endif()
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
add_compile_options(-m32)
|
||||
add_compile_options(-Wno-error=unused-command-line-argument)
|
||||
endif()
|
||||
|
||||
# Set LLDB include and library paths
|
||||
if(DEFINED TIZEN_TOOLCHAIN)
|
||||
if(TARGET_ARCH_NAME MATCHES "^(armel|arm64)$")
|
||||
add_compile_options(-Wno-deprecated-declarations) # compile-time option
|
||||
add_compile_options(-D__extern_always_inline=inline) # compile-time option
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Set LLDB include and library paths for builds that need lldb.
|
||||
if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
|
||||
if(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
set(LLVM_CROSS_DIR "$ENV{LLVM_CROSS_HOME}")
|
||||
|
|
@ -131,7 +216,6 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$")
|
|||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}")
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
param (
|
||||
$darcVersion = $null,
|
||||
$versionEndpoint = "https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16",
|
||||
$verbosity = "m"
|
||||
$versionEndpoint = 'https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16',
|
||||
$verbosity = 'minimal',
|
||||
$toolpath = $null
|
||||
)
|
||||
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
function InstallDarcCli ($darcVersion) {
|
||||
$darcCliPackageName = "microsoft.dotnet.darc"
|
||||
function InstallDarcCli ($darcVersion, $toolpath) {
|
||||
$darcCliPackageName = 'microsoft.dotnet.darc'
|
||||
|
||||
$dotnetRoot = InitializeDotNetCli -install:$true
|
||||
$dotnet = "$dotnetRoot\dotnet.exe"
|
||||
|
|
@ -23,11 +24,24 @@ function InstallDarcCli ($darcVersion) {
|
|||
$darcVersion = $(Invoke-WebRequest -Uri $versionEndpoint -UseBasicParsing).Content
|
||||
}
|
||||
|
||||
$arcadeServicesSource = 'https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json'
|
||||
$arcadeServicesSource = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json'
|
||||
|
||||
Write-Host "Installing Darc CLI version $darcVersion..."
|
||||
Write-Host "You may need to restart your command window if this is the first dotnet tool you have installed."
|
||||
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g --framework netcoreapp2.1
|
||||
Write-Host 'You may need to restart your command window if this is the first dotnet tool you have installed.'
|
||||
if (-not $toolpath) {
|
||||
Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity -g"
|
||||
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g
|
||||
}else {
|
||||
Write-Host "'$dotnet' tool install $darcCliPackageName --version $darcVersion --add-source '$arcadeServicesSource' -v $verbosity --tool-path '$toolpath'"
|
||||
& "$dotnet" tool install $darcCliPackageName --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath"
|
||||
}
|
||||
}
|
||||
|
||||
InstallDarcCli $darcVersion
|
||||
try {
|
||||
InstallDarcCli $darcVersion $toolpath
|
||||
}
|
||||
catch {
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'Darc' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
darcVersion=''
|
||||
versionEndpoint="https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16"
|
||||
verbosity=m
|
||||
versionEndpoint='https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16'
|
||||
verbosity='minimal'
|
||||
|
||||
while [[ $# > 0 ]]; do
|
||||
opt="$(echo "$1" | awk '{print tolower($0)}')"
|
||||
|
|
@ -20,6 +20,10 @@ while [[ $# > 0 ]]; do
|
|||
verbosity=$2
|
||||
shift
|
||||
;;
|
||||
--toolpath)
|
||||
toolpath=$2
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Invalid argument: $1"
|
||||
usage
|
||||
|
|
@ -52,17 +56,27 @@ function InstallDarcCli {
|
|||
InitializeDotNetCli
|
||||
local dotnet_root=$_InitializeDotNetCli
|
||||
|
||||
local uninstall_command=`$dotnet_root/dotnet tool uninstall $darc_cli_package_name -g`
|
||||
local tool_list=$($dotnet_root/dotnet tool list -g)
|
||||
if [[ $tool_list = *$darc_cli_package_name* ]]; then
|
||||
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
|
||||
if [ -z "$toolpath" ]; then
|
||||
local tool_list=$($dotnet_root/dotnet tool list -g)
|
||||
if [[ $tool_list = *$darc_cli_package_name* ]]; then
|
||||
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name -g)
|
||||
fi
|
||||
else
|
||||
local tool_list=$($dotnet_root/dotnet tool list --tool-path "$toolpath")
|
||||
if [[ $tool_list = *$darc_cli_package_name* ]]; then
|
||||
echo $($dotnet_root/dotnet tool uninstall $darc_cli_package_name --tool-path "$toolpath")
|
||||
fi
|
||||
fi
|
||||
|
||||
local arcadeServicesSource="https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json"
|
||||
local arcadeServicesSource="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json"
|
||||
|
||||
echo "Installing Darc CLI version $darcVersion..."
|
||||
echo "You may need to restart your command shell if this is the first dotnet tool you have installed."
|
||||
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
|
||||
if [ -z "$toolpath" ]; then
|
||||
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity -g)
|
||||
else
|
||||
echo $($dotnet_root/dotnet tool install $darc_cli_package_name --version $darcVersion --add-source "$arcadeServicesSource" -v $verbosity --tool-path "$toolpath")
|
||||
fi
|
||||
}
|
||||
|
||||
InstallDarcCli
|
||||
|
|
|
|||
|
|
@ -1,28 +1,27 @@
|
|||
[CmdletBinding(PositionalBinding=$false)]
|
||||
Param(
|
||||
[string] $verbosity = "minimal",
|
||||
[string] $architecture = "",
|
||||
[string] $version = "Latest",
|
||||
[string] $runtime = "dotnet",
|
||||
[string] $RuntimeSourceFeed = "",
|
||||
[string] $RuntimeSourceFeedKey = ""
|
||||
[string] $verbosity = 'minimal',
|
||||
[string] $architecture = '',
|
||||
[string] $version = 'Latest',
|
||||
[string] $runtime = 'dotnet',
|
||||
[string] $RuntimeSourceFeed = '',
|
||||
[string] $RuntimeSourceFeedKey = ''
|
||||
)
|
||||
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
$dotnetRoot = Join-Path $RepoRoot ".dotnet"
|
||||
$dotnetRoot = Join-Path $RepoRoot '.dotnet'
|
||||
|
||||
$installdir = $dotnetRoot
|
||||
try {
|
||||
if ($architecture -and $architecture.Trim() -eq "x86") {
|
||||
$installdir = Join-Path $installdir "x86"
|
||||
if ($architecture -and $architecture.Trim() -eq 'x86') {
|
||||
$installdir = Join-Path $installdir 'x86'
|
||||
}
|
||||
InstallDotNet $installdir $version $architecture $runtime $true -RuntimeSourceFeed $RuntimeSourceFeed -RuntimeSourceFeedKey $RuntimeSourceFeedKey
|
||||
}
|
||||
InstallDotNet $installdir $version $architecture $runtime $true -RuntimeSourceFeed $RuntimeSourceFeed -RuntimeSourceFeedKey $RuntimeSourceFeedKey
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-Host $_.Exception
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ while [[ -h "$source" ]]; do
|
|||
done
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
|
||||
. "$scriptroot/tools.sh"
|
||||
|
||||
version='Latest'
|
||||
architecture=''
|
||||
runtime='dotnet'
|
||||
|
|
@ -40,18 +42,47 @@ while [[ $# > 0 ]]; do
|
|||
runtimeSourceFeedKey="$1"
|
||||
;;
|
||||
*)
|
||||
echo "Invalid argument: $1"
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message "Invalid argument: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
. "$scriptroot/tools.sh"
|
||||
# Use uname to determine what the CPU is.
|
||||
cpuname=$(uname -p)
|
||||
# Some Linux platforms report unknown for platform, but the arch for machine.
|
||||
if [[ "$cpuname" == "unknown" ]]; then
|
||||
cpuname=$(uname -m)
|
||||
fi
|
||||
|
||||
case $cpuname in
|
||||
aarch64)
|
||||
buildarch=arm64
|
||||
;;
|
||||
amd64|x86_64)
|
||||
buildarch=x64
|
||||
;;
|
||||
armv*l)
|
||||
buildarch=arm
|
||||
;;
|
||||
i686)
|
||||
buildarch=x86
|
||||
;;
|
||||
*)
|
||||
echo "Unknown CPU $cpuname detected, treating it as x64"
|
||||
buildarch=x64
|
||||
;;
|
||||
esac
|
||||
|
||||
dotnetRoot="$repo_root/.dotnet"
|
||||
if [[ $architecture != "" ]] && [[ $architecture != $buildarch ]]; then
|
||||
dotnetRoot="$dotnetRoot/$architecture"
|
||||
fi
|
||||
|
||||
InstallDotNet $dotnetRoot $version "$architecture" $runtime true $runtimeSourceFeed $runtimeSourceFeedKey || {
|
||||
local exit_code=$?
|
||||
echo "dotnet-install.sh failed (exit code '$exit_code')." >&2
|
||||
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2
|
||||
ExitWithExitCode $exit_code
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,5 +2,12 @@ param(
|
|||
[string] $token
|
||||
)
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=VSS_NUGET_ACCESSTOKEN]$token"
|
||||
Write-Host "##vso[task.setvariable variable=VSS_NUGET_URI_PREFIXES]https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/"
|
||||
|
||||
. $PSScriptRoot\pipeline-logging-functions.ps1
|
||||
|
||||
# Write-PipelineSetVariable will no-op if a variable named $ci is not defined
|
||||
# Since this script is only ever called in AzDO builds, just universally set it
|
||||
$ci = $true
|
||||
|
||||
Write-PipelineSetVariable -Name 'VSS_NUGET_ACCESSTOKEN' -Value $token -IsMultiJobVariable $false
|
||||
Write-PipelineSetVariable -Name 'VSS_NUGET_URI_PREFIXES' -Value 'https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/' -IsMultiJobVariable $false
|
||||
|
|
|
|||
|
|
@ -3,39 +3,39 @@ Param(
|
|||
[Parameter(Mandatory=$true)][string] $gitHubPat, # GitHub personal access token from https://github.com/settings/tokens (no auth scopes needed)
|
||||
[Parameter(Mandatory=$true)][string] $azdoPat, # Azure Dev Ops tokens from https://dev.azure.com/dnceng/_details/security/tokens (code read scope needed)
|
||||
[Parameter(Mandatory=$true)][string] $outputFolder, # Where the graphviz.txt file will be created
|
||||
[string] $darcVersion = '1.1.0-beta.19175.6', # darc's version
|
||||
[string] $darcVersion, # darc's version
|
||||
[string] $graphvizVersion = '2.38', # GraphViz version
|
||||
[switch] $includeToolset # Whether the graph should include toolset dependencies or not. i.e. arcade, optimization. For more about
|
||||
# toolset dependencies see https://github.com/dotnet/arcade/blob/master/Documentation/Darc.md#toolset-vs-product-dependencies
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
Import-Module -Name (Join-Path $PSScriptRoot "native\CommonLibrary.psm1")
|
||||
|
||||
function CheckExitCode ([string]$stage)
|
||||
{
|
||||
$exitCode = $LASTEXITCODE
|
||||
if ($exitCode -ne 0) {
|
||||
Write-Host "Something failed in stage: '$stage'. Check for errors above. Exiting now..."
|
||||
Write-PipelineTelemetryError -Category 'Arcade' -Message "Something failed in stage: '$stage'. Check for errors above. Exiting now..."
|
||||
ExitWithExitCode $exitCode
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$ErrorActionPreference = 'Stop'
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
|
||||
|
||||
Push-Location $PSScriptRoot
|
||||
|
||||
Write-Host "Installing darc..."
|
||||
Write-Host 'Installing darc...'
|
||||
. .\darc-init.ps1 -darcVersion $darcVersion
|
||||
CheckExitCode "Running darc-init"
|
||||
CheckExitCode 'Running darc-init'
|
||||
|
||||
$engCommonBaseDir = Join-Path $PSScriptRoot "native\"
|
||||
$engCommonBaseDir = Join-Path $PSScriptRoot 'native\'
|
||||
$graphvizInstallDir = CommonLibrary\Get-NativeInstallDirectory
|
||||
$nativeToolBaseUri = "https://netcorenativeassets.blob.core.windows.net/resource-packages/external"
|
||||
$installBin = Join-Path $graphvizInstallDir "bin"
|
||||
$nativeToolBaseUri = 'https://netcorenativeassets.blob.core.windows.net/resource-packages/external'
|
||||
$installBin = Join-Path $graphvizInstallDir 'bin'
|
||||
|
||||
Write-Host "Installing dot..."
|
||||
Write-Host 'Installing dot...'
|
||||
.\native\install-tool.ps1 -ToolName graphviz -InstallPath $installBin -BaseUri $nativeToolBaseUri -CommonLibraryDirectory $engCommonBaseDir -Version $graphvizVersion -Verbose
|
||||
|
||||
$darcExe = "$env:USERPROFILE\.dotnet\tools"
|
||||
|
|
@ -51,37 +51,36 @@ try {
|
|||
$graphVizImageFilePath = "$outputFolder\graph.png"
|
||||
$normalGraphFilePath = "$outputFolder\graph-full.txt"
|
||||
$flatGraphFilePath = "$outputFolder\graph-flat.txt"
|
||||
$baseOptions = @( "--github-pat", "$gitHubPat", "--azdev-pat", "$azdoPat", "--password", "$barToken" )
|
||||
$baseOptions = @( '--github-pat', "$gitHubPat", '--azdev-pat', "$azdoPat", '--password', "$barToken" )
|
||||
|
||||
if ($includeToolset) {
|
||||
Write-Host "Toolsets will be included in the graph..."
|
||||
$baseOptions += @( "--include-toolset" )
|
||||
Write-Host 'Toolsets will be included in the graph...'
|
||||
$baseOptions += @( '--include-toolset' )
|
||||
}
|
||||
|
||||
Write-Host "Generating standard dependency graph..."
|
||||
Write-Host 'Generating standard dependency graph...'
|
||||
& "$darcExe" get-dependency-graph @baseOptions --output-file $normalGraphFilePath
|
||||
CheckExitCode "Generating normal dependency graph"
|
||||
CheckExitCode 'Generating normal dependency graph'
|
||||
|
||||
Write-Host "Generating flat dependency graph and graphviz file..."
|
||||
Write-Host 'Generating flat dependency graph and graphviz file...'
|
||||
& "$darcExe" get-dependency-graph @baseOptions --flat --coherency --graphviz $graphVizFilePath --output-file $flatGraphFilePath
|
||||
CheckExitCode "Generating flat and graphviz dependency graph"
|
||||
CheckExitCode 'Generating flat and graphviz dependency graph'
|
||||
|
||||
Write-Host "Generating graph image $graphVizFilePath"
|
||||
$dotFilePath = Join-Path $installBin "graphviz\$graphvizVersion\release\bin\dot.exe"
|
||||
& "$dotFilePath" -Tpng -o"$graphVizImageFilePath" "$graphVizFilePath"
|
||||
CheckExitCode "Generating graphviz image"
|
||||
CheckExitCode 'Generating graphviz image'
|
||||
|
||||
Write-Host "'$graphVizFilePath', '$flatGraphFilePath', '$normalGraphFilePath' and '$graphVizImageFilePath' created!"
|
||||
}
|
||||
catch {
|
||||
if (!$includeToolset) {
|
||||
Write-Host "This might be a toolset repo which includes only toolset dependencies. " -NoNewline -ForegroundColor Yellow
|
||||
Write-Host "Since -includeToolset is not set there is no graph to create. Include -includeToolset and try again..." -ForegroundColor Yellow
|
||||
Write-Host 'This might be a toolset repo which includes only toolset dependencies. ' -NoNewline -ForegroundColor Yellow
|
||||
Write-Host 'Since -includeToolset is not set there is no graph to create. Include -includeToolset and try again...' -ForegroundColor Yellow
|
||||
}
|
||||
Write-Host $_
|
||||
Write-Host $_.Exception
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'Arcade' -Message $_
|
||||
ExitWithExitCode 1
|
||||
} finally {
|
||||
Pop-Location
|
||||
Pop-Location
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ File path to global.json file
|
|||
#>
|
||||
[CmdletBinding(PositionalBinding=$false)]
|
||||
Param (
|
||||
[string] $BaseUri = "https://netcorenativeassets.blob.core.windows.net/resource-packages/external",
|
||||
[string] $BaseUri = 'https://netcorenativeassets.blob.core.windows.net/resource-packages/external',
|
||||
[string] $InstallDirectory,
|
||||
[switch] $Clean = $False,
|
||||
[switch] $Force = $False,
|
||||
|
|
@ -45,26 +45,27 @@ Param (
|
|||
)
|
||||
|
||||
if (!$GlobalJsonFile) {
|
||||
$GlobalJsonFile = Join-Path (Get-Item $PSScriptRoot).Parent.Parent.FullName "global.json"
|
||||
$GlobalJsonFile = Join-Path (Get-Item $PSScriptRoot).Parent.Parent.FullName 'global.json'
|
||||
}
|
||||
|
||||
Set-StrictMode -version 2.0
|
||||
$ErrorActionPreference="Stop"
|
||||
$ErrorActionPreference='Stop'
|
||||
|
||||
Import-Module -Name (Join-Path $PSScriptRoot "native\CommonLibrary.psm1")
|
||||
. $PSScriptRoot\pipeline-logging-functions.ps1
|
||||
Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
|
||||
|
||||
try {
|
||||
# Define verbose switch if undefined
|
||||
$Verbose = $VerbosePreference -Eq "Continue"
|
||||
$Verbose = $VerbosePreference -Eq 'Continue'
|
||||
|
||||
$EngCommonBaseDir = Join-Path $PSScriptRoot "native\"
|
||||
$EngCommonBaseDir = Join-Path $PSScriptRoot 'native\'
|
||||
$NativeBaseDir = $InstallDirectory
|
||||
if (!$NativeBaseDir) {
|
||||
$NativeBaseDir = CommonLibrary\Get-NativeInstallDirectory
|
||||
}
|
||||
$Env:CommonLibrary_NativeInstallDir = $NativeBaseDir
|
||||
$InstallBin = Join-Path $NativeBaseDir "bin"
|
||||
$InstallerPath = Join-Path $EngCommonBaseDir "install-tool.ps1"
|
||||
$InstallBin = Join-Path $NativeBaseDir 'bin'
|
||||
$InstallerPath = Join-Path $EngCommonBaseDir 'install-tool.ps1'
|
||||
|
||||
# Process tools list
|
||||
Write-Host "Processing $GlobalJsonFile"
|
||||
|
|
@ -74,7 +75,7 @@ try {
|
|||
}
|
||||
$NativeTools = Get-Content($GlobalJsonFile) -Raw |
|
||||
ConvertFrom-Json |
|
||||
Select-Object -Expand "native-tools" -ErrorAction SilentlyContinue
|
||||
Select-Object -Expand 'native-tools' -ErrorAction SilentlyContinue
|
||||
if ($NativeTools) {
|
||||
$NativeTools.PSObject.Properties | ForEach-Object {
|
||||
$ToolName = $_.Name
|
||||
|
|
@ -112,18 +113,21 @@ try {
|
|||
}
|
||||
$toolInstallationFailure = $true
|
||||
} else {
|
||||
Write-Error $errMsg
|
||||
# We cannot change this to Write-PipelineTelemetryError because of https://github.com/dotnet/arcade/issues/4482
|
||||
Write-Host $errMsg
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((Get-Variable 'toolInstallationFailure' -ErrorAction 'SilentlyContinue') -and $toolInstallationFailure) {
|
||||
# We cannot change this to Write-PipelineTelemetryError because of https://github.com/dotnet/arcade/issues/4482
|
||||
Write-Host 'Native tools bootstrap failed'
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
else {
|
||||
Write-Host "No native tools defined in global.json"
|
||||
Write-Host 'No native tools defined in global.json'
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
|
@ -131,17 +135,18 @@ try {
|
|||
exit 0
|
||||
}
|
||||
if (Test-Path $InstallBin) {
|
||||
Write-Host "Native tools are available from" (Convert-Path -Path $InstallBin)
|
||||
Write-Host 'Native tools are available from ' (Convert-Path -Path $InstallBin)
|
||||
Write-Host "##vso[task.prependpath]$(Convert-Path -Path $InstallBin)"
|
||||
return $InstallBin
|
||||
}
|
||||
else {
|
||||
Write-Error "Native tools install directory does not exist, installation failed"
|
||||
Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message 'Native tools install directory does not exist, installation failed'
|
||||
exit 1
|
||||
}
|
||||
exit 0
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-Host $_.Exception
|
||||
exit 1
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'NativeToolsBootstrap' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ retry_wait_time_seconds=30
|
|||
global_json_file="$(dirname "$(dirname "${scriptroot}")")/global.json"
|
||||
declare -A native_assets
|
||||
|
||||
. $scriptroot/pipeline-logging-functions.sh
|
||||
. $scriptroot/native/common-library.sh
|
||||
|
||||
while (($# > 0)); do
|
||||
|
|
@ -33,6 +34,14 @@ while (($# > 0)); do
|
|||
force=true
|
||||
shift 1
|
||||
;;
|
||||
--donotabortonfailure)
|
||||
donotabortonfailure=true
|
||||
shift 1
|
||||
;;
|
||||
--donotdisplaywarnings)
|
||||
donotdisplaywarnings=true
|
||||
shift 1
|
||||
;;
|
||||
--downloadretries)
|
||||
download_retries=$2
|
||||
shift 2
|
||||
|
|
@ -51,6 +60,8 @@ while (($# > 0)); do
|
|||
echo " - (default) %USERPROFILE%/.netcoreeng/native"
|
||||
echo ""
|
||||
echo " --clean Switch specifying not to install anything, but cleanup native asset folders"
|
||||
echo " --donotabortonfailure Switch specifiying whether to abort native tools installation on failure"
|
||||
echo " --donotdisplaywarnings Switch specifiying whether to display warnings during native tools installation on failure"
|
||||
echo " --force Clean and then install tools"
|
||||
echo " --help Print help and exit"
|
||||
echo ""
|
||||
|
|
@ -91,6 +102,7 @@ if [[ -z $install_directory ]]; then
|
|||
fi
|
||||
|
||||
install_bin="${native_base_dir}/bin"
|
||||
installed_any=false
|
||||
|
||||
ReadGlobalJsonNativeTools
|
||||
|
||||
|
|
@ -102,8 +114,8 @@ else
|
|||
for tool in "${!native_assets[@]}"
|
||||
do
|
||||
tool_version=${native_assets[$tool]}
|
||||
installer_name="install-$tool.sh"
|
||||
installer_command="$native_installer_dir/$installer_name"
|
||||
installer_path="$native_installer_dir/install-$tool.sh"
|
||||
installer_command="$installer_path"
|
||||
installer_command+=" --baseuri $base_uri"
|
||||
installer_command+=" --installpath $install_bin"
|
||||
installer_command+=" --version $tool_version"
|
||||
|
|
@ -117,11 +129,29 @@ else
|
|||
installer_command+=" --clean"
|
||||
fi
|
||||
|
||||
$installer_command
|
||||
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Execution Failed" >&2
|
||||
exit 1
|
||||
if [[ -a $installer_path ]]; then
|
||||
$installer_command
|
||||
if [[ $? != 0 ]]; then
|
||||
if [[ $donotabortonfailure = true ]]; then
|
||||
if [[ $donotdisplaywarnings != true ]]; then
|
||||
Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed"
|
||||
fi
|
||||
else
|
||||
Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
$installed_any = true
|
||||
fi
|
||||
else
|
||||
if [[ $donotabortonfailure == true ]]; then
|
||||
if [[ $donotdisplaywarnings != true ]]; then
|
||||
Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed: no install script"
|
||||
fi
|
||||
else
|
||||
Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Execution Failed: no install script"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
|
@ -134,8 +164,10 @@ if [[ -d $install_bin ]]; then
|
|||
echo "Native tools are available from $install_bin"
|
||||
echo "##vso[task.prependpath]$install_bin"
|
||||
else
|
||||
echo "Native tools install directory does not exist, installation failed" >&2
|
||||
exit 1
|
||||
if [[ $installed_any = true ]]; then
|
||||
Write-PipelineTelemetryError -category 'NativeToolsBootstrap' "Native tools install directory does not exist, installation failed"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -6,9 +6,8 @@ param(
|
|||
[switch] $IsFeedPrivate
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-StrictMode -Version 2.0
|
||||
|
||||
. $PSScriptRoot\tools.ps1
|
||||
|
||||
# Sets VSS_NUGET_EXTERNAL_FEED_ENDPOINTS based on the "darc-int-*" feeds defined in NuGet.config. This is needed
|
||||
|
|
@ -21,7 +20,7 @@ function SetupCredProvider {
|
|||
)
|
||||
|
||||
# Install the Cred Provider NuGet plugin
|
||||
Write-Host "Setting up Cred Provider NuGet plugin in the agent..."
|
||||
Write-Host 'Setting up Cred Provider NuGet plugin in the agent...'
|
||||
Write-Host "Getting 'installcredprovider.ps1' from 'https://github.com/microsoft/artifacts-credprovider'..."
|
||||
|
||||
$url = 'https://raw.githubusercontent.com/microsoft/artifacts-credprovider/master/helpers/installcredprovider.ps1'
|
||||
|
|
@ -29,18 +28,18 @@ function SetupCredProvider {
|
|||
Write-Host "Writing the contents of 'installcredprovider.ps1' locally..."
|
||||
Invoke-WebRequest $url -OutFile installcredprovider.ps1
|
||||
|
||||
Write-Host "Installing plugin..."
|
||||
Write-Host 'Installing plugin...'
|
||||
.\installcredprovider.ps1 -Force
|
||||
|
||||
Write-Host "Deleting local copy of 'installcredprovider.ps1'..."
|
||||
Remove-Item .\installcredprovider.ps1
|
||||
|
||||
if (-Not("$env:USERPROFILE\.nuget\plugins\netcore")) {
|
||||
Write-Host "CredProvider plugin was not installed correctly!"
|
||||
Write-PipelineTelemetryError -Category 'Arcade' -Message 'CredProvider plugin was not installed correctly!'
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
else {
|
||||
Write-Host "CredProvider plugin was installed correctly!"
|
||||
Write-Host 'CredProvider plugin was installed correctly!'
|
||||
}
|
||||
|
||||
# Then, we set the 'VSS_NUGET_EXTERNAL_FEED_ENDPOINTS' environment variable to restore from the stable
|
||||
|
|
@ -49,7 +48,7 @@ function SetupCredProvider {
|
|||
$nugetConfigPath = "$RepoRoot\NuGet.config"
|
||||
|
||||
if (-Not (Test-Path -Path $nugetConfigPath)) {
|
||||
Write-Host "NuGet.config file not found in repo's root!"
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message 'NuGet.config file not found in repo root!'
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
@ -64,6 +63,7 @@ function SetupCredProvider {
|
|||
}
|
||||
|
||||
if (($endpoints | Measure-Object).Count -gt 0) {
|
||||
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Endpoint code example with no real credentials.")]
|
||||
# Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}'
|
||||
$endpointCredentials = @{endpointCredentials=$endpoints} | ConvertTo-Json -Compress
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ function SetupCredProvider {
|
|||
}
|
||||
else
|
||||
{
|
||||
Write-Host "No internal endpoints found in NuGet.config"
|
||||
Write-Host 'No internal endpoints found in NuGet.config'
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ function InstallDotNetSdkAndRestoreArcade {
|
|||
|
||||
& $dotnet restore $restoreProjPath
|
||||
|
||||
Write-Host "Arcade SDK restored!"
|
||||
Write-Host 'Arcade SDK restored!'
|
||||
|
||||
if (Test-Path -Path $restoreProjPath) {
|
||||
Remove-Item $restoreProjPath
|
||||
|
|
@ -113,23 +113,22 @@ function InstallDotNetSdkAndRestoreArcade {
|
|||
try {
|
||||
Push-Location $PSScriptRoot
|
||||
|
||||
if ($Operation -like "setup") {
|
||||
if ($Operation -like 'setup') {
|
||||
SetupCredProvider $AuthToken
|
||||
}
|
||||
elseif ($Operation -like "install-restore") {
|
||||
elseif ($Operation -like 'install-restore') {
|
||||
InstallDotNetSdkAndRestoreArcade
|
||||
}
|
||||
else {
|
||||
Write-Host "Unknown operation '$Operation'!"
|
||||
Write-PipelineTelemetryError -Category 'Arcade' -Message "Unknown operation '$Operation'!"
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-Host $_.Exception
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'Arcade' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
finally {
|
||||
Pop-Location
|
||||
Pop-Location
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ function SetupCredProvider {
|
|||
rm installcredprovider.sh
|
||||
|
||||
if [ ! -d "$HOME/.nuget/plugins" ]; then
|
||||
echo "CredProvider plugin was not installed correctly!"
|
||||
Write-PipelineTelemetryError -category 'Build' 'CredProvider plugin was not installed correctly!'
|
||||
ExitWithExitCode 1
|
||||
else
|
||||
echo "CredProvider plugin was installed correctly!"
|
||||
|
|
@ -42,7 +42,7 @@ function SetupCredProvider {
|
|||
local nugetConfigPath="$repo_root/NuGet.config"
|
||||
|
||||
if [ ! "$nugetConfigPath" ]; then
|
||||
echo "NuGet.config file not found in repo's root!"
|
||||
Write-PipelineTelemetryError -category 'Build' "NuGet.config file not found in repo's root!"
|
||||
ExitWithExitCode 1
|
||||
fi
|
||||
|
||||
|
|
@ -62,6 +62,7 @@ function SetupCredProvider {
|
|||
endpoints+=']'
|
||||
|
||||
if [ ${#endpoints} -gt 2 ]; then
|
||||
# [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Endpoint code example with no real credentials.")]
|
||||
# Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}'
|
||||
local endpointCredentials="{\"endpointCredentials\": "$endpoints"}"
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
|
||||
<AutomaticallyUseReferenceAssemblyPackages>false</AutomaticallyUseReferenceAssemblyPackages>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<!-- Clear references, the SDK may add some depending on UsuingToolXxx settings, but we only want to restore the following -->
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[CmdletBinding(PositionalBinding=$false)]
|
||||
Param(
|
||||
[string] $verbosity = "minimal",
|
||||
[string] $verbosity = 'minimal',
|
||||
[bool] $warnAsError = $true,
|
||||
[bool] $nodeReuse = $true,
|
||||
[switch] $ci,
|
||||
|
|
@ -18,9 +18,8 @@ try {
|
|||
MSBuild @extraArgs
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-Host $_.Exception
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue