Compare commits
1 commit
master
...
TravisEz13
Author | SHA1 | Date | |
---|---|---|---|
2d9bc81fee |
|
@ -44,9 +44,6 @@ indent_size = 2
|
|||
[*.{props,targets,config,nuspec}]
|
||||
indent_size = 2
|
||||
|
||||
[*.tsv]
|
||||
indent_style = tab
|
||||
|
||||
# Dotnet code style settings:
|
||||
[*.cs]
|
||||
# Sort using and Import directives with System.* appearing first
|
||||
|
|
10
.github/ISSUE_TEMPLATE/Bug_Report.yaml
vendored
10
.github/ISSUE_TEMPLATE/Bug_Report.yaml
vendored
|
@ -6,7 +6,7 @@ body:
|
|||
attributes:
|
||||
value: >
|
||||
For Windows PowerShell 5.1 issues, suggestions, or feature requests please use the
|
||||
[Feedback Hub app](https://support.microsoft.com/windows/send-feedback-to-microsoft-with-the-feedback-hub-app-f59187f8-8739-22d6-ba93-f66612949332)
|
||||
[Windows PowerShell UserVoice](https://windowsserver.uservoice.com/forums/301869-powershell)
|
||||
|
||||
This repository is **ONLY** for PowerShell Core 6 and PowerShell 7+ issues.
|
||||
- type: checkboxes
|
||||
|
@ -21,7 +21,7 @@ body:
|
|||
required: true
|
||||
- label: Refer to the [FAQ](https://github.com/PowerShell/PowerShell/blob/master/docs/FAQ.md).
|
||||
required: true
|
||||
- label: Refer to [Differences between Windows PowerShell 5.1 and PowerShell](https://docs.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell).
|
||||
- label: Refer to the [known issues](https://docs.microsoft.com/powershell/scripting/whats-new/known-issues-ps6).
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
|
@ -52,12 +52,6 @@ body:
|
|||
5
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Error details
|
||||
description: Paste verbatim output from `Get-Error` if PowerShell return an error.
|
||||
render: console
|
||||
placeholder: PS> Get-Error
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Environment data
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
name: Microsoft Update issue report 🐛
|
||||
description: Report issue installing a PowerShell 7 Update or fresh install through Microsoft Update 🤔
|
||||
labels: Needs-Triage
|
||||
assignees:
|
||||
- TravisEz13
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
For Windows PowerShell 5.1 issues, suggestions, or feature requests please use the
|
||||
[Feedback Hub app](https://support.microsoft.com/windows/send-feedback-to-microsoft-with-the-feedback-hub-app-f59187f8-8739-22d6-ba93-f66612949332)
|
||||
|
||||
This repository is **ONLY** for PowerShell Core 6 and PowerShell 7+ issues.
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Prerequisites
|
||||
options:
|
||||
- label: Write a descriptive title.
|
||||
required: true
|
||||
- label: Make sure you are able to repro it on the [latest released version](https://github.com/PowerShell/PowerShell/releases)
|
||||
required: true
|
||||
- label: Search the existing issues.
|
||||
required: true
|
||||
- label: Refer to the [FAQ](https://github.com/PowerShell/PowerShell/blob/master/docs/FAQ.md).
|
||||
required: true
|
||||
- label: Refer to [Differences between Windows PowerShell 5.1 and PowerShell](https://docs.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell).
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: >
|
||||
List of steps, sample code, failing test or link to a project that reproduces the behavior.
|
||||
Make sure you place a stack trace inside a code (```) block to avoid linking unrelated issues.
|
||||
placeholder: >
|
||||
I am experiencing a problem with X.
|
||||
I think Y should be happening but Z is actually happening.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
render: console
|
||||
placeholder: |
|
||||
PS> 2 + 2
|
||||
4
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual behavior
|
||||
render: console
|
||||
placeholder: |
|
||||
PS> 2 + 2
|
||||
5
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Environment data
|
||||
description: Paste verbatim output from `$PSVersionTable` below.
|
||||
render: powershell
|
||||
placeholder: PS> $PSVersionTable
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: OS Data
|
||||
description: Paste verbatim output from `(Get-CimInstance Win32_OperatingSystem) | Select-Object -Property Version, Caption` below.
|
||||
render: powershell
|
||||
placeholder: PS> (Get-CimInstance Win32_OperatingSystem) | Select-Object -Property Version, Caption
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Windows update log
|
||||
description: Please run `Get-WindowsUpdateLog` and upload the resulting file to this issue.
|
||||
render: markdown
|
||||
placeholder: PS> Get-WindowsUpdateLog
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Visuals
|
||||
description: >
|
||||
Please upload images or animations that can be used to reproduce issues in the area below.
|
||||
Try the [Steps Recorder](https://support.microsoft.com/en-us/windows/record-steps-to-reproduce-a-problem-46582a9b-620f-2e36-00c9-04e25d784e47)
|
||||
on Windows or [Screenshot](https://support.apple.com/en-us/HT208721) on macOS.
|
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -1,7 +1,7 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Windows PowerShell
|
||||
url: https://support.microsoft.com/windows/send-feedback-to-microsoft-with-the-feedback-hub-app-f59187f8-8739-22d6-ba93-f66612949332
|
||||
url: https://windowsserver.uservoice.com/forums/301869-powershell
|
||||
about: Windows PowerShell issues or suggestions.
|
||||
- name: Support
|
||||
url: https://github.com/PowerShell/PowerShell/blob/master/.github/SUPPORT.md
|
||||
|
|
2
.github/SUPPORT.md
vendored
2
.github/SUPPORT.md
vendored
|
@ -8,6 +8,6 @@ If you know how to fix the issue, feel free to send a pull request our way. (The
|
|||
[Official Support Policy]: https://docs.microsoft.com/powershell/scripting/powershell-support-lifecycle
|
||||
[FAQ]: https://github.com/PowerShell/PowerShell/tree/master/docs/FAQ.md
|
||||
[Contribution Guides]: https://github.com/PowerShell/PowerShell/tree/master/.github/CONTRIBUTING.md
|
||||
[known issues]: https://docs.microsoft.com/powershell/scripting/whats-new/differences-from-windows-powershell
|
||||
[known issues]: https://docs.microsoft.com/powershell/scripting/whats-new/known-issues-ps6
|
||||
[GitHub issues]: https://github.com/PowerShell/PowerShell/issues
|
||||
[new issue]: https://github.com/PowerShell/PowerShell/issues/new/choose
|
||||
|
|
11
.github/prquantifier.yaml
vendored
11
.github/prquantifier.yaml
vendored
|
@ -1,11 +0,0 @@
|
|||
# https://github.com/microsoft/PullRequestQuantifier/blob/main/docs/prquantifier-yaml.md
|
||||
Excluded:
|
||||
# defaults
|
||||
- '*.csproj'
|
||||
- prquantifier.yaml
|
||||
- package-lock.json
|
||||
- '*.md'
|
||||
- '*.sln'
|
||||
# autogenerated files
|
||||
- cgmanifest.json
|
||||
- assets/wix/files.wxs
|
|
@ -1,27 +0,0 @@
|
|||
# Copyright (c) Microsoft Corporation.
|
||||
# Licensed under the MIT License.
|
||||
|
||||
function Set-GWVariable {
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Name,
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Value
|
||||
)
|
||||
|
||||
Write-Verbose "Setting CI variable $Name to $Value" -Verbose
|
||||
|
||||
if ($env:GITHUB_ENV) {
|
||||
"$Name=$Value" | Out-File $env:GITHUB_ENV -Append
|
||||
}
|
||||
}
|
||||
|
||||
function Get-GWTempPath {
|
||||
$temp = [System.IO.Path]::GetTempPath()
|
||||
if ($env:RUNNER_TEMP) {
|
||||
$temp = $env:RUNNER_TEMP
|
||||
}
|
||||
|
||||
Write-Verbose "Get CI Temp path: $temp" -Verbose
|
||||
return $temp
|
||||
}
|
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
|
@ -17,7 +17,7 @@ env:
|
|||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-16.04
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
|
62
.github/workflows/daily.yml
vendored
62
.github/workflows/daily.yml
vendored
|
@ -30,25 +30,21 @@ jobs:
|
|||
git fetch --prune --unshallow --tags
|
||||
- name: Execute Update .NET script
|
||||
run: |
|
||||
Import-Module ./.github/workflows/GHWorkflowHelper
|
||||
$currentVersion = (Get-Content .\global.json | ConvertFrom-Json).sdk.version
|
||||
Set-GWVariable -Name OLD_VERSION -Value $currentVersion
|
||||
Write-Verbose "OLD_VERSION=$currentVersion" -Verbose
|
||||
"OLD_VERSION=$currentVersion" | Out-File $env:GITHUB_ENV -Append
|
||||
|
||||
./tools/UpdateDotnetRuntime.ps1 -UpdateMSIPackaging -UseInternalFeed
|
||||
./tools/UpdateDotnetRuntime.ps1 -UpdateMSIPackaging
|
||||
$newVersion = (Get-Content .\global.json | ConvertFrom-Json).sdk.version
|
||||
Set-GWVariable -Name NEW_VERSION -Value $newVersion
|
||||
Write-Verbose "NEW_VERSION=$newVersion" -Verbose
|
||||
"NEW_VERSION=$newVersion" | Out-File $env:GITHUB_ENV -Append
|
||||
|
||||
if ($currentVersion -ne $newVersion) {
|
||||
Set-GWVariable -Name CREATE_PR -Value 'true'
|
||||
Write-Verbose "CREATE_PR=true" -Verbose
|
||||
"CREATE_PR=true" | Out-File $env:GITHUB_ENV -Append
|
||||
}
|
||||
- name: Microsoft Teams Notifier
|
||||
uses: skitionek/notify-microsoft-teams@master
|
||||
if: failure()
|
||||
with:
|
||||
webhook_url: ${{ secrets.PS_BUILD_TEAMS_CHANNEL }}
|
||||
overwrite: "{title: `Failure in updating .NET build. Look at ${workflow_link}`}"
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
uses: peter-evans/create-pull-request@v2
|
||||
id: cpr
|
||||
if: env.CREATE_PR == 'true'
|
||||
with:
|
||||
|
@ -56,43 +52,5 @@ jobs:
|
|||
title: "Update .NET SDK version from `${{ env.OLD_VERSION }}` to `${{ env.NEW_VERSION }}`"
|
||||
base: master
|
||||
branch: dotnet_update
|
||||
update-tpn:
|
||||
name: Update Notices File
|
||||
timeout-minutes: 15
|
||||
runs-on: windows-latest
|
||||
if: github.repository == 'PowerShell/PowerShell'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Update Notices file
|
||||
run: |
|
||||
Invoke-WebRequest -Uri https://aka.ms/pwsh-daily-tpn -OutFile ./ThirdPartyNotices.txt
|
||||
- name: Capture Git Status
|
||||
run: |
|
||||
git status --short
|
||||
- name: Check if we need to create a PR
|
||||
run: |
|
||||
$ErrorActionPreference = 'continue'
|
||||
git diff --quiet ThirdPartyNotices.txt
|
||||
$exitCode = $LASTEXITCODE
|
||||
Write-Verbose -Message "Exit code: $exitCode" -Verbose
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Import-Module ./.github/workflows/GHWorkflowHelper
|
||||
Set-GWVariable -Name CREATE_PR -Value 'true'
|
||||
} else {
|
||||
Write-Verbose "No difference found. Not creating a PR." -Verbose
|
||||
}
|
||||
exit 0
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
id: cprtpn
|
||||
if: env.CREATE_PR == 'true'
|
||||
with:
|
||||
commit-message: "Update to the latest notice file"
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
|
||||
title: "Update to the latest notice file"
|
||||
reviewers: travisez13
|
||||
base: master
|
||||
draft: false
|
||||
branch: update-cgmanifest
|
||||
|
||||
|
||||
|
|
21
.github/workflows/rebase.yml
vendored
21
.github/workflows/rebase.yml
vendored
|
@ -1,21 +0,0 @@
|
|||
# This cannot rebase workflow changes into a PR
|
||||
# It also only works if the GITHUB_TOKEN has permission to push to the branch
|
||||
# see: https://github.com/cirrus-actions/rebase/issues/12#issuecomment-632594995
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
name: Automatic Rebase
|
||||
jobs:
|
||||
rebase:
|
||||
name: Rebase
|
||||
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the latest code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Automatic Rebase
|
||||
uses: cirrus-actions/rebase@1.4
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
57
.github/workflows/update-cgmanifest.yml
vendored
57
.github/workflows/update-cgmanifest.yml
vendored
|
@ -1,57 +0,0 @@
|
|||
# Copyright (c) Microsoft Corporation.
|
||||
# Licensed under the MIT license.
|
||||
|
||||
name: Update cgmanifest
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
|
||||
env:
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
||||
POWERSHELL_TELEMETRY_OPTOUT: 1
|
||||
CGMANIFEST_PATH: ''
|
||||
NUGET_PACKAGES: ${{ github.workspace }}\.nuget\packages
|
||||
|
||||
jobs:
|
||||
update-cgmanifest:
|
||||
name: Update cgmanifest
|
||||
timeout-minutes: 15
|
||||
runs-on: windows-latest
|
||||
if: github.repository == 'PowerShell/PowerShell'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Cache DotNet
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~\AppData\Local\Microsoft\dotnet
|
||||
${{ github.workspace }}\.nuget\packages
|
||||
key: ${{ runner.os }}-${{ hashFiles('**\DotnetRuntimeMetadata.json') }}-${{ hashFiles('**\nuget.config') }}
|
||||
- name: Sync tags
|
||||
run: |
|
||||
git fetch --prune --unshallow --tags
|
||||
- name: Install Ships provider to deal with project.assets.json
|
||||
run: |
|
||||
Install-Module -Name dotnet.project.assets -force
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
Import-Module ./build.psm1
|
||||
Start-PSBootStrap
|
||||
- name: Verify cgmanifest is up to date
|
||||
run: |
|
||||
Import-Module ./build.psm1
|
||||
Find-Dotnet
|
||||
./tools/findMissingNotices.ps1
|
||||
- name: Upload cgmanifest
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always() && env.CGMANIFEST_PATH != ''
|
||||
with:
|
||||
name: cgmanifest
|
||||
path: ${{ env.CGMANIFEST_PATH }}
|
|
@ -25,12 +25,10 @@ dotnet_diagnostic.CA1005.severity = none
|
|||
# CA1008: Enums should have zero value
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1008
|
||||
dotnet_diagnostic.CA1008.severity = none
|
||||
dotnet_code_quality.CA1008.api_surface = public
|
||||
|
||||
# CA1010: Generic interface should also be implemented
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1010
|
||||
dotnet_diagnostic.CA1010.severity = silent
|
||||
dotnet_code_quality.CA1010.api_surface = public
|
||||
|
||||
# CA1012: Abstract types should not have public constructors
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1012
|
||||
|
@ -64,22 +62,18 @@ dotnet_diagnostic.CA1021.severity = none
|
|||
# CA1024: Use properties where appropriate
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1024
|
||||
dotnet_diagnostic.CA1024.severity = none
|
||||
dotnet_code_quality.CA1024.api_surface = public
|
||||
|
||||
# CA1027: Mark enums with FlagsAttribute
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1027
|
||||
dotnet_diagnostic.CA1027.severity = none
|
||||
dotnet_code_quality.CA1027.api_surface = public
|
||||
|
||||
# CA1028: Enum Storage should be Int32
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1028
|
||||
dotnet_diagnostic.CA1028.severity = none
|
||||
dotnet_code_quality.CA1028.api_surface = public
|
||||
|
||||
# CA1030: Use events where appropriate
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1030
|
||||
dotnet_diagnostic.CA1030.severity = none
|
||||
dotnet_code_quality.CA1030.api_surface = public
|
||||
|
||||
# CA1031: Do not catch general exception types
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1031
|
||||
|
@ -100,27 +94,23 @@ dotnet_diagnostic.CA1034.severity = none
|
|||
# CA1036: Override methods on comparable types
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1036
|
||||
dotnet_diagnostic.CA1036.severity = silent
|
||||
dotnet_code_quality.CA1036.api_surface = public
|
||||
|
||||
# CA1040: Avoid empty interfaces
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1040
|
||||
dotnet_diagnostic.CA1040.severity = none
|
||||
dotnet_code_quality.CA1040.api_surface = public
|
||||
|
||||
# CA1041: Provide ObsoleteAttribute message
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1041
|
||||
dotnet_diagnostic.CA1041.severity = warning
|
||||
dotnet_code_quality.CA1041.api_surface = public
|
||||
|
||||
# CA1043: Use Integral Or String Argument For Indexers
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1043
|
||||
dotnet_diagnostic.CA1043.severity = warning
|
||||
dotnet_code_quality.CA1043.api_surface = all
|
||||
dotnet_code_quality.ca1043.api_surface = all
|
||||
|
||||
# CA1044: Properties should not be write only
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1044
|
||||
dotnet_diagnostic.CA1044.severity = none
|
||||
dotnet_code_quality.CA1044.api_surface = public
|
||||
|
||||
# CA1045: Do not pass types by reference
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1045
|
||||
|
@ -141,32 +131,27 @@ dotnet_diagnostic.CA1050.severity = warning
|
|||
# CA1051: Do not declare visible instance fields
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051
|
||||
dotnet_diagnostic.CA1051.severity = silent
|
||||
dotnet_code_quality.CA1051.api_surface = public
|
||||
|
||||
# CA1052: Static holder types should be Static or NotInheritable
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1052
|
||||
dotnet_diagnostic.CA1052.severity = warning
|
||||
dotnet_code_quality.CA1052.api_surface = all
|
||||
dotnet_code_quality.CA1052.api_surface = private, internal
|
||||
|
||||
# CA1054: URI-like parameters should not be strings
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1054
|
||||
dotnet_diagnostic.CA1054.severity = none
|
||||
dotnet_code_quality.CA1054.api_surface = public
|
||||
|
||||
# CA1055: URI-like return values should not be strings
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1055
|
||||
dotnet_diagnostic.CA1055.severity = none
|
||||
dotnet_code_quality.CA1055.api_surface = public
|
||||
|
||||
# CA1056: URI-like properties should not be strings
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1056
|
||||
dotnet_diagnostic.CA1056.severity = none
|
||||
dotnet_code_quality.CA1056.api_surface = public
|
||||
|
||||
# CA1058: Types should not extend certain base types
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1058
|
||||
dotnet_diagnostic.CA1058.severity = none
|
||||
dotnet_code_quality.CA1058.api_surface = public
|
||||
|
||||
# CA1060: Move pinvokes to native methods class
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1060
|
||||
|
@ -183,7 +168,6 @@ dotnet_diagnostic.CA1062.severity = none
|
|||
# CA1063: Implement IDisposable Correctly
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1063
|
||||
dotnet_diagnostic.CA1063.severity = none
|
||||
dotnet_code_quality.CA1063.api_surface = public
|
||||
|
||||
# CA1064: Exceptions should be public
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1064
|
||||
|
@ -198,8 +182,8 @@ dotnet_diagnostic.CA1065.severity = warning
|
|||
dotnet_diagnostic.CA1066.severity = none
|
||||
|
||||
# CA1067: Override Object.Equals(object) when implementing IEquatable<T>
|
||||
# # https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1067
|
||||
dotnet_diagnostic.CA1067.severity = warning
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1067
|
||||
dotnet_diagnostic.CA1067.severity = suggestion
|
||||
|
||||
# CA1068: CancellationToken parameters must come last
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1068
|
||||
|
@ -300,17 +284,14 @@ dotnet_diagnostic.CA1707.severity = silent
|
|||
# CA1708: Identifiers should differ by more than case
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1708
|
||||
dotnet_diagnostic.CA1708.severity = silent
|
||||
dotnet_code_quality.CA1708.api_surface = public
|
||||
|
||||
# CA1710: Identifiers should have correct suffix
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1710
|
||||
dotnet_diagnostic.CA1710.severity = silent
|
||||
dotnet_code_quality.CA1710.api_surface = public
|
||||
|
||||
# CA1711: Identifiers should not have incorrect suffix
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711
|
||||
dotnet_diagnostic.CA1711.severity = silent
|
||||
dotnet_code_quality.CA1711.api_surface = public
|
||||
|
||||
# CA1712: Do not prefix enum values with type name
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1712
|
||||
|
@ -323,22 +304,18 @@ dotnet_diagnostic.CA1713.severity = none
|
|||
# CA1715: Identifiers should have correct prefix
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1715
|
||||
dotnet_diagnostic.CA1715.severity = silent
|
||||
dotnet_code_quality.CA1715.api_surface = public
|
||||
|
||||
# CA1716: Identifiers should not match keywords
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716
|
||||
dotnet_diagnostic.CA1716.severity = silent
|
||||
dotnet_code_quality.CA1716.api_surface = public
|
||||
|
||||
# CA1720: Identifier contains type name
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1720
|
||||
dotnet_diagnostic.CA1720.severity = silent
|
||||
dotnet_code_quality.CA1720.api_surface = public
|
||||
|
||||
# CA1721: Property names should not match get methods
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1721
|
||||
dotnet_diagnostic.CA1721.severity = none
|
||||
dotnet_code_quality.CA1721.api_surface = public
|
||||
|
||||
# CA1724: Type names should not match namespaces
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1724
|
||||
|
@ -347,17 +324,14 @@ dotnet_diagnostic.CA1724.severity = none
|
|||
# CA1725: Parameter names should match base declaration
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1725
|
||||
dotnet_diagnostic.CA1725.severity = silent
|
||||
dotnet_code_quality.CA1725.api_surface = public
|
||||
|
||||
# CA1801: Review unused parameters
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1801
|
||||
dotnet_diagnostic.CA1801.severity = none
|
||||
dotnet_code_quality.CA1801.api_surface = all
|
||||
|
||||
# CA1802: Use literals where appropriate
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1802
|
||||
dotnet_diagnostic.CA1802.severity = none
|
||||
dotnet_code_quality.CA1802.api_surface = public
|
||||
|
||||
# CA1805: Do not initialize unnecessarily
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1805
|
||||
|
@ -386,7 +360,6 @@ dotnet_diagnostic.CA1814.severity = none
|
|||
# CA1815: Override equals and operator equals on value types
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1815
|
||||
dotnet_diagnostic.CA1815.severity = none
|
||||
dotnet_code_quality.CA1815.api_surface = public
|
||||
|
||||
# CA1816: Dispose methods should call SuppressFinalize
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1816
|
||||
|
@ -395,7 +368,6 @@ dotnet_diagnostic.CA1816.severity = warning
|
|||
# CA1819: Properties should not return arrays
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1819
|
||||
dotnet_diagnostic.CA1819.severity = none
|
||||
dotnet_code_quality.CA1819.api_surface = public
|
||||
|
||||
# CA1820: Test for empty strings using string length
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1820
|
||||
|
@ -506,10 +478,6 @@ dotnet_diagnostic.CA1845.severity = warning
|
|||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1846
|
||||
dotnet_diagnostic.CA1846.severity = warning
|
||||
|
||||
# CA1847: Use char literal for a single character lookup
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1847
|
||||
dotnet_diagnostic.CA1847.severity = warning
|
||||
|
||||
# CA2000: Dispose objects before losing scope
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2000
|
||||
dotnet_diagnostic.CA2000.severity = none
|
||||
|
@ -589,7 +557,6 @@ dotnet_diagnostic.CA2207.severity = warning
|
|||
# CA2208: Instantiate argument exceptions correctly
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2208
|
||||
dotnet_diagnostic.CA2208.severity = suggestion
|
||||
dotnet_code_quality.CA2208.api_surface = all
|
||||
|
||||
# CA2211: Non-constant fields should not be visible
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2211
|
||||
|
@ -614,7 +581,6 @@ dotnet_diagnostic.CA2216.severity = warning
|
|||
# CA2217: Do not mark enums with FlagsAttribute
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2217
|
||||
dotnet_diagnostic.CA2217.severity = none
|
||||
dotnet_code_quality.CA2217.api_surface = public
|
||||
|
||||
# CA2218: Override GetHashCode on overriding Equals
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2218
|
||||
|
@ -631,12 +597,10 @@ dotnet_diagnostic.CA2224.severity = suggestion
|
|||
# CA2225: Operator overloads have named alternates
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2225
|
||||
dotnet_diagnostic.CA2225.severity = none
|
||||
dotnet_code_quality.CA2225.api_surface = public
|
||||
|
||||
# CA2226: Operators should have symmetrical overloads
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2226
|
||||
dotnet_diagnostic.CA2226.severity = none
|
||||
dotnet_code_quality.CA2226.api_surface = public
|
||||
|
||||
# CA2227: Collection properties should be read only
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2227
|
||||
|
@ -649,12 +613,10 @@ dotnet_diagnostic.CA2229.severity = silent
|
|||
# CA2231: Overload operator equals on overriding value type Equals
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2231
|
||||
dotnet_diagnostic.CA2231.severity = suggestion
|
||||
dotnet_code_quality.CA2231.api_surface = public
|
||||
|
||||
# CA2234: Pass system uri objects instead of strings
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2234
|
||||
dotnet_diagnostic.CA2234.severity = none
|
||||
dotnet_code_quality.CA2234.api_surface = public
|
||||
|
||||
# CA2235: Mark all non-serializable fields
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2235
|
||||
|
@ -708,10 +670,6 @@ dotnet_diagnostic.CA2250.severity = warning
|
|||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2251
|
||||
dotnet_diagnostic.CA2251.severity = warning
|
||||
|
||||
# CA2252: This API requires opting into preview features
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2252
|
||||
dotnet_diagnostic.CA2251.severity = none
|
||||
|
||||
# CA2300: Do not use insecure deserializer BinaryFormatter
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2300
|
||||
dotnet_diagnostic.CA2300.severity = none
|
||||
|
@ -1242,11 +1200,11 @@ dotnet_diagnostic.IDE0028.severity = silent
|
|||
|
||||
# IDE0029: UseCoalesceExpression
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0029
|
||||
dotnet_diagnostic.IDE0029.severity = warning
|
||||
dotnet_diagnostic.IDE0029.severity = silent
|
||||
|
||||
# IDE0030: UseCoalesceExpressionForNullable
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0030
|
||||
dotnet_diagnostic.IDE0030.severity = warning
|
||||
dotnet_diagnostic.IDE0030.severity = silent
|
||||
|
||||
# IDE0031: UseNullPropagation
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0031
|
||||
|
@ -1302,7 +1260,7 @@ dotnet_diagnostic.IDE0043.severity = silent
|
|||
|
||||
# IDE0044: MakeFieldReadonly
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0044
|
||||
dotnet_diagnostic.IDE0044.severity = warning
|
||||
dotnet_diagnostic.IDE0044.severity = silent
|
||||
|
||||
# IDE0045: UseConditionalExpressionForAssignment
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0045
|
||||
|
@ -1322,7 +1280,7 @@ dotnet_diagnostic.IDE0048.severity = suggestion
|
|||
|
||||
# IDE0049: PreferBuiltInOrFrameworkType
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0049
|
||||
dotnet_diagnostic.IDE0049.severity = warning
|
||||
dotnet_diagnostic.IDE0049.severity = silent
|
||||
|
||||
# IDE0050: ConvertAnonymousTypeToTuple
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0050
|
||||
|
@ -1392,9 +1350,21 @@ dotnet_diagnostic.IDE0065.severity = silent
|
|||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0066
|
||||
dotnet_diagnostic.IDE0066.severity = silent
|
||||
|
||||
# IDE0067: DisposeObjectsBeforeLosingScope
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0067
|
||||
dotnet_diagnostic.IDE0067.severity = silent
|
||||
|
||||
# IDE0068: UseRecommendedDisposePattern
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0068
|
||||
dotnet_diagnostic.IDE0068.severity = silent
|
||||
|
||||
# IDE0069: DisposableFieldsShouldBeDisposed
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0069
|
||||
dotnet_diagnostic.IDE0069.severity = silent
|
||||
|
||||
# IDE0070: UseSystemHashCode
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0070
|
||||
dotnet_diagnostic.IDE0070.severity = warning
|
||||
dotnet_diagnostic.IDE0070.severity = silent
|
||||
|
||||
# IDE0071: SimplifyInterpolation
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0071
|
||||
|
@ -1470,7 +1440,7 @@ dotnet_diagnostic.IDE0120.severity = warning
|
|||
|
||||
# IDE0130: NamespaceDoesNotMatchFolderStructure
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0130
|
||||
dotnet_diagnostic.IDE0130.severity = silent
|
||||
dotnet_diagnostic.IDE0130.severity = suggestion
|
||||
|
||||
# IDE1001: AnalyzerChanged
|
||||
# https://docs.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide1001
|
||||
|
|
57
.spelling
57
.spelling
|
@ -15,7 +15,6 @@
|
|||
about_
|
||||
about_debuggers
|
||||
about_jobs
|
||||
about_Telemetry
|
||||
acl
|
||||
adamdriscoll
|
||||
add-localgroupmember
|
||||
|
@ -133,7 +132,6 @@ CodeFormatter
|
|||
codeowner
|
||||
codepage
|
||||
commanddiscovery
|
||||
CommandInvocationIntrinsics
|
||||
commandsearch
|
||||
CommandSearcher
|
||||
comobject
|
||||
|
@ -178,7 +176,6 @@ ctrl
|
|||
CurrentCulture
|
||||
CustomShellCommands.cs
|
||||
DamirAinullin
|
||||
DarylGraves
|
||||
darquewarrior
|
||||
darwinjs
|
||||
DateTime
|
||||
|
@ -287,7 +284,6 @@ folderName
|
|||
foreach
|
||||
formatfileloading
|
||||
formatviewbinding
|
||||
FormatWideCommand
|
||||
Francisco-Gamino
|
||||
frontload
|
||||
fullclr
|
||||
|
@ -359,7 +355,6 @@ helpproviderwithfullcache
|
|||
helpsystem
|
||||
hemant
|
||||
hemantmahawar
|
||||
Higinbotham
|
||||
himura2la
|
||||
hololens
|
||||
homebrew
|
||||
|
@ -489,7 +484,6 @@ miaromero
|
|||
microsoft
|
||||
Microsoft.ApplicationInsights
|
||||
Microsoft.CodeAnalysis.CSharp
|
||||
Microsoft.CodeAnalysis.NetAnalyzers
|
||||
microsoft.com
|
||||
microsoft.management.infrastructure.cimcmdlets
|
||||
microsoft.management.infrastructure.native
|
||||
|
@ -655,7 +649,6 @@ preview.5.20268.9
|
|||
preview.5.20272.6
|
||||
preview.6
|
||||
preview.6.20318.15
|
||||
preview.6.21355.2
|
||||
preview.7
|
||||
preview.7.20356.2
|
||||
preview.7.20358.6
|
||||
|
@ -664,7 +657,6 @@ preview.7.20366.2
|
|||
preview.7.20366.15
|
||||
preview.4.20258.7
|
||||
preview.4.20229.10
|
||||
preview.8
|
||||
preview1-24530-04
|
||||
preview7
|
||||
productversion
|
||||
|
@ -706,8 +698,6 @@ RandomNoun7
|
|||
raspbian
|
||||
rc
|
||||
rc.1
|
||||
rc.1.21455.2
|
||||
rc.1.21458.32
|
||||
rc.2
|
||||
rc.3
|
||||
rc2-24027
|
||||
|
@ -925,7 +915,6 @@ unregister-pssessionconfiguration
|
|||
unregistering
|
||||
untracked
|
||||
unvalidated
|
||||
UpdateDotnetRuntime.ps1
|
||||
update-formatdata
|
||||
update-modulemanifest
|
||||
update-scriptfileinfo
|
||||
|
@ -1113,20 +1102,6 @@ DotnetMetadataRuntime.json
|
|||
deps.json
|
||||
Jaykul
|
||||
eltociear
|
||||
consolehost.proto
|
||||
IDisposable
|
||||
ConvertToJsonCommand
|
||||
CommandPathSearch
|
||||
UseCoalesceExpression
|
||||
UseSystemHashCode
|
||||
UseCoalesceExpressionForNullable
|
||||
substring
|
||||
RemoveAll
|
||||
MakeFieldReadonly
|
||||
Microsoft.Management.UI.Internal
|
||||
StringComparison
|
||||
osx-arm64
|
||||
crossgen2
|
||||
- CHANGELOG.md
|
||||
aavdberg
|
||||
asrosent
|
||||
|
@ -1269,8 +1244,7 @@ ini
|
|||
package.json
|
||||
jcotton42
|
||||
RPMs
|
||||
PSDesiredStateConfiguration
|
||||
- CHANGELOG/7.2.md
|
||||
- CHANGELOG/preview.md
|
||||
Gimly
|
||||
jborean93
|
||||
mkswd
|
||||
|
@ -1376,40 +1350,11 @@ adamsitnik
|
|||
msixbundle
|
||||
PowerShell-Native#70
|
||||
AppxManifest.xml
|
||||
preview.9
|
||||
preview.10
|
||||
ArmaanMcleod
|
||||
entrypoint
|
||||
lselden
|
||||
SethFalco
|
||||
CodeQL
|
||||
slowy07
|
||||
rc.2.21505.57
|
||||
ThirdPartyNotices.txt
|
||||
cgmanifest.json
|
||||
buildinfo
|
||||
tar.gz
|
||||
psoptions.json
|
||||
manifest.spdx.json
|
||||
vPack
|
||||
kondratyev-nv
|
||||
v7.2.0
|
||||
cgmanifest.json
|
||||
pwsh.exe
|
||||
6.0.100-rtm.21527.11
|
||||
6.0.100-rc.2.21505.57
|
||||
ThirdPartyNotices.txt
|
||||
rtm.21527.11
|
||||
- CHANGELOG/7.0.md
|
||||
codesign
|
||||
release-BuildJson
|
||||
yml
|
||||
centos-7
|
||||
PSDesiredStateConfiguration
|
||||
NoLanguage
|
||||
createdump
|
||||
vPack
|
||||
PkgES
|
||||
- test/perf/benchmarks/README.md
|
||||
benchmarked
|
||||
BenchmarkDotNet
|
||||
|
|
|
@ -47,7 +47,7 @@ stages:
|
|||
jobs:
|
||||
- template: templates/ci-build.yml
|
||||
parameters:
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
jobName: linux_build
|
||||
displayName: linux Build
|
||||
|
||||
|
@ -56,7 +56,7 @@ stages:
|
|||
jobs:
|
||||
- job: linux_test
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-16.04
|
||||
displayName: Linux Test
|
||||
|
||||
steps:
|
||||
|
@ -149,7 +149,7 @@ stages:
|
|||
- job: CodeCovTestPackage
|
||||
displayName: CodeCoverage and Test Packages
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- pwsh: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
|
|
|
@ -11,9 +11,9 @@ trigger:
|
|||
include:
|
||||
- '*'
|
||||
exclude:
|
||||
- .vsts-ci/misc-analysis.yml
|
||||
- .github/ISSUE_TEMPLATE/*
|
||||
- .dependabot/config.yml
|
||||
- /.vsts-ci/misc-analysis.yml
|
||||
- /.github/ISSUE_TEMPLATE/*
|
||||
- /.dependabot/config.yml
|
||||
- test/perf/*
|
||||
pr:
|
||||
branches:
|
||||
|
@ -30,14 +30,10 @@ pr:
|
|||
- .vsts-ci/misc-analysis.yml
|
||||
- .vsts-ci/windows.yml
|
||||
- .vsts-ci/windows/*
|
||||
- cgmanifest.json
|
||||
- LICENSE.txt
|
||||
- test/common/markdown/*
|
||||
- test/perf/*
|
||||
- tools/releaseBuild/*
|
||||
- tools/releaseBuild/azureDevOps/templates/*
|
||||
- README.md
|
||||
- .spelling
|
||||
|
||||
variables:
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
||||
|
@ -56,7 +52,7 @@ stages:
|
|||
jobs:
|
||||
- template: templates/ci-build.yml
|
||||
parameters:
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
jobName: linux_build
|
||||
displayName: linux Build
|
||||
|
||||
|
@ -66,34 +62,34 @@ stages:
|
|||
- template: templates/nix-test.yml
|
||||
parameters:
|
||||
name: Linux
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
purpose: UnelevatedPesterTests
|
||||
tagSet: CI
|
||||
|
||||
- template: templates/nix-test.yml
|
||||
parameters:
|
||||
name: Linux
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
purpose: ElevatedPesterTests
|
||||
tagSet: CI
|
||||
|
||||
- template: templates/nix-test.yml
|
||||
parameters:
|
||||
name: Linux
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
purpose: UnelevatedPesterTests
|
||||
tagSet: Others
|
||||
|
||||
- template: templates/nix-test.yml
|
||||
parameters:
|
||||
name: Linux
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
purpose: ElevatedPesterTests
|
||||
tagSet: Others
|
||||
|
||||
- template: templates/verify-xunit.yml
|
||||
parameters:
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
|
||||
- stage: PackageLinux
|
||||
displayName: Package Linux
|
||||
|
@ -101,7 +97,7 @@ stages:
|
|||
jobs:
|
||||
- template: linux/templates/packaging.yml
|
||||
parameters:
|
||||
pool: ubuntu-20.04
|
||||
pool: ubuntu-16.04
|
||||
|
||||
- stage: CodeCovTestPackage
|
||||
displayName: CodeCoverage and Test Packages
|
||||
|
@ -110,7 +106,7 @@ stages:
|
|||
- job: CodeCovTestPackage
|
||||
displayName: CodeCoverage and Test Packages
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- pwsh: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
parameters:
|
||||
pool: 'ubuntu-20.04'
|
||||
pool: 'ubuntu-16.04'
|
||||
parentJobs: []
|
||||
name: 'Linux'
|
||||
|
||||
|
|
|
@ -11,10 +11,10 @@ trigger:
|
|||
include:
|
||||
- '*'
|
||||
exclude:
|
||||
- tools/releaseBuild/**/*
|
||||
- .vsts-ci/misc-analysis.yml
|
||||
- .github/ISSUE_TEMPLATE/*
|
||||
- .dependabot/config.yml
|
||||
- /tools/releaseBuild/**/*
|
||||
- /.vsts-ci/misc-analysis.yml
|
||||
- /.github/ISSUE_TEMPLATE/*
|
||||
- /.dependabot/config.yml
|
||||
- test/perf/*
|
||||
pr:
|
||||
branches:
|
||||
|
@ -29,17 +29,13 @@ pr:
|
|||
- .dependabot/config.yml
|
||||
- .github/ISSUE_TEMPLATE/*
|
||||
- .vsts-ci/misc-analysis.yml
|
||||
- .vsts-ci/windows.yml
|
||||
- .vsts-ci/windows/*
|
||||
- cgmanifest.json
|
||||
- LICENSE.txt
|
||||
- /.vsts-ci/windows.yml
|
||||
- /.vsts-ci/windows/*
|
||||
- test/common/markdown/*
|
||||
- test/perf/*
|
||||
- tools/packaging/*
|
||||
- tools/releaseBuild/*
|
||||
- tools/releaseBuild/azureDevOps/templates/*
|
||||
- README.md
|
||||
- .spelling
|
||||
|
||||
variables:
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: 1
|
||||
|
@ -101,6 +97,10 @@ stages:
|
|||
vmImage: macOS-latest
|
||||
steps:
|
||||
- pwsh: |
|
||||
# Remove old .NET SDKs
|
||||
if (Test-Path -Path $HOME/.dotnet) {
|
||||
Remove-Item $HOME/.dotnet -Recurse -Force
|
||||
}
|
||||
Import-Module .\tools\ci.psm1
|
||||
New-CodeCoverageAndTestPackage
|
||||
displayName: CodeCoverage and Test Package
|
||||
|
|
|
@ -27,41 +27,83 @@ variables:
|
|||
- name: repoFolder
|
||||
value: PowerShell
|
||||
|
||||
stages:
|
||||
- stage: Compliance
|
||||
jobs:
|
||||
- job: CI_Compliance
|
||||
displayName: CI Compliance
|
||||
jobs:
|
||||
- job: CI_Compliance
|
||||
displayName: CI Compliance
|
||||
|
||||
pool:
|
||||
vmImage: windows-latest
|
||||
pool:
|
||||
vmImage: windows-latest
|
||||
|
||||
variables:
|
||||
- name: repoPath
|
||||
value: $(Agent.BuildDirectory)\$(repoFolder)
|
||||
variables:
|
||||
- name: repoPath
|
||||
value: $(Agent.BuildDirectory)\$(repoFolder)
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: $(repoFolder)
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: $(repoFolder)
|
||||
|
||||
- checkout: ComplianceRepo
|
||||
- checkout: ComplianceRepo
|
||||
|
||||
- template: ci-compliance.yml@ComplianceRepo
|
||||
- stage: markdown_spelling_lint
|
||||
displayName: Markdown Spelling and Lint
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: ./misc-analysis/mdSpell.yml
|
||||
- stage: markdown_link
|
||||
displayName: Markdown Link
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: ./misc-analysis/generateMarkdownMatrix.yml
|
||||
- template: ci-compliance.yml@ComplianceRepo
|
||||
|
||||
- job: Linux_CI
|
||||
displayName: Markdown and Common Tests
|
||||
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
|
||||
variables:
|
||||
- name: repoPath
|
||||
value: $(Agent.BuildDirectory)/$(repoFolder)
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: $(repoFolder)
|
||||
|
||||
- checkout: ComplianceRepo
|
||||
|
||||
- powershell: |
|
||||
Get-ChildItem -Path env:
|
||||
displayName: Capture Environment
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- powershell: |
|
||||
Install-module Pester -Scope CurrentUser -Force -MaximumVersion 4.99
|
||||
displayName: Install Pester
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- bash: |
|
||||
curl -o- --progress-bar -L https://yarnpkg.com/install.sh | bash
|
||||
displayName: Bootstrap Yarn
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- bash: |
|
||||
sudo yarn global add markdown-spellcheck@0.11.0
|
||||
displayName: Install mdspell
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- bash: |
|
||||
mdspell '**/*.md' '!**/Pester/**/*.md' '!**/dotnet-tools/**/*.md' --ignore-numbers --ignore-acronyms --report --en-us;
|
||||
displayName: Test Spelling in Markdown
|
||||
condition: succeededOrFailed()
|
||||
workingDirectory: '$(repoPath)'
|
||||
|
||||
- ${{ if not(contains(variables['SYSTEM.COLLECTIONURI'],'mscodehub')) }}:
|
||||
- pwsh: |
|
||||
Import-module ./build.psm1
|
||||
$path = Join-Path -Path $pwd -ChildPath './commonTestResults.xml'
|
||||
$results = invoke-pester -Script ./test/common -OutputFile $path -OutputFormat NUnitXml -PassThru
|
||||
Write-Host "##vso[results.publish type=NUnit;mergeResults=true;runTitle=Common Tests;publishRunAttachments=true;resultFiles=$path;]"
|
||||
if($results.TotalCount -eq 0 -or $results.FailedCount -gt 0)
|
||||
{
|
||||
throw "Markdown tests failed"
|
||||
}
|
||||
displayName: Run Common Tests
|
||||
condition: succeededOrFailed()
|
||||
workingDirectory: '$(repoPath)'
|
||||
|
||||
- template: dailyBuildCompliance.yml@ComplianceRepo
|
||||
parameters:
|
||||
jobName: generateMatrix
|
||||
taskName: matrixTask
|
||||
- template: ./misc-analysis/markdown.yml
|
||||
parameters:
|
||||
matrix: $[ dependencies.generateMatrix.outputs['matrixTask.matrix'] ]
|
||||
dependsOn: generateMatrix
|
||||
sourceScanPath: '$(repoPath)'
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
parameters:
|
||||
- name: jobName
|
||||
- name: taskName
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.jobName }}
|
||||
displayName: Generate Markdown Matrix
|
||||
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
|
||||
variables:
|
||||
- name: repoPath
|
||||
value: $(Agent.BuildDirectory)/$(repoFolder)
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: $(repoFolder)
|
||||
|
||||
- powershell: |
|
||||
$matrix = @{}
|
||||
$matrix += @{
|
||||
'root' = @{
|
||||
markdown_folder = "$(repoPath)"
|
||||
markdown_recurse = $false
|
||||
}
|
||||
}
|
||||
Get-ChildItem -path '$(repoPath)' -Directory | Foreach-Object {
|
||||
$folder = $_
|
||||
$matrix += @{
|
||||
$_.Name = @{
|
||||
markdown_folder = $_.fullName
|
||||
markdown_recurse = $true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$matrixJson = $matrix | ConvertTo-Json -Compress
|
||||
$variableName = "matrix"
|
||||
$command = "vso[task.setvariable variable=$variableName;isoutput=true]$($matrixJson)"
|
||||
Write-Verbose "sending command: '$command'"
|
||||
Write-Host "##$command"
|
||||
displayName: Create Matrix
|
||||
condition: succeededOrFailed()
|
||||
name: ${{ parameters.taskName }}
|
|
@ -1,63 +0,0 @@
|
|||
parameters:
|
||||
- name: matrix
|
||||
- name: dependsOn
|
||||
|
||||
jobs:
|
||||
- job: markdown
|
||||
strategy:
|
||||
matrix: ${{ parameters.matrix }}
|
||||
maxParallel: 5
|
||||
|
||||
displayName: Markdown Link Verification
|
||||
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
|
||||
variables:
|
||||
- name: repoPath
|
||||
value: $(Agent.BuildDirectory)/$(repoFolder)
|
||||
- name: YARN_CACHE_FOLDER
|
||||
value: $(Pipeline.Workspace)/.yarn
|
||||
- name: YARN_GLOBAL_CACHE_FOLDER
|
||||
value: $(Pipeline.Workspace)/.yarn-global
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: $(repoFolder)
|
||||
|
||||
- checkout: ComplianceRepo
|
||||
|
||||
- task: Cache@2
|
||||
inputs:
|
||||
key: '"markdown-link-check" | "$(Agent.OS)" | $(repoPath)/test/common/markdown-link/markdown-link.tests.ps1'
|
||||
path: $(YARN_GLOBAL_CACHE_FOLDER)
|
||||
displayName: Cache Yarn packages
|
||||
|
||||
- powershell: |
|
||||
Install-module Pester -Scope CurrentUser -Force -MaximumVersion 4.99
|
||||
displayName: Install Pester
|
||||
|
||||
- bash: |
|
||||
curl -o- --progress-bar -L https://yarnpkg.com/install.sh | bash
|
||||
displayName: Bootstrap Yarn
|
||||
|
||||
- bash: |
|
||||
yarn config set global-folder "$(YARN_GLOBAL_CACHE_FOLDER)"
|
||||
displayName: Set Yarn global cache folder
|
||||
|
||||
- ${{ if not(contains(variables['SYSTEM.COLLECTIONURI'],'mscodehub')) }}:
|
||||
- pwsh: |
|
||||
Import-module ./build.psm1
|
||||
$path = Join-Path -Path $pwd -ChildPath './commonTestResults.xml'
|
||||
$results = invoke-pester -Script ./test/common/markdown-link -OutputFile $path -OutputFormat NUnitXml -PassThru
|
||||
Write-Host "##vso[results.publish type=NUnit;mergeResults=true;runTitle=Markdown Link;publishRunAttachments=true;resultFiles=$path;]"
|
||||
if($results.TotalCount -eq 0 -or $results.FailedCount -gt 0)
|
||||
{
|
||||
throw "Markdown tests failed"
|
||||
}
|
||||
displayName: Run Markdown Link Tests
|
||||
condition: succeededOrFailed()
|
||||
workingDirectory: '$(repoPath)'
|
|
@ -1,56 +0,0 @@
|
|||
jobs:
|
||||
- job: markdown
|
||||
displayName: Markdown Spelling
|
||||
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
|
||||
variables:
|
||||
- name: repoPath
|
||||
value: $(Agent.BuildDirectory)/$(repoFolder)
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: $(repoFolder)
|
||||
|
||||
- checkout: ComplianceRepo
|
||||
|
||||
- powershell: |
|
||||
Get-ChildItem -Path env:
|
||||
displayName: Capture Environment
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- bash: |
|
||||
curl -o- --progress-bar -L https://yarnpkg.com/install.sh | bash
|
||||
displayName: Bootstrap Yarn
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- bash: |
|
||||
sudo yarn global add markdown-spellcheck@0.11.0
|
||||
displayName: Install mdspell
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- bash: |
|
||||
mdspell '**/*.md' '!**/Pester/**/*.md' '!**/dotnet-tools/**/*.md' --ignore-numbers --ignore-acronyms --report --en-us;
|
||||
displayName: Test Spelling in Markdown
|
||||
condition: succeededOrFailed()
|
||||
workingDirectory: '$(repoPath)'
|
||||
|
||||
- ${{ if not(contains(variables['SYSTEM.COLLECTIONURI'],'mscodehub')) }}:
|
||||
- pwsh: |
|
||||
Import-module ./build.psm1
|
||||
$path = Join-Path -Path $pwd -ChildPath './commonTestResults.xml'
|
||||
$results = invoke-pester -Script ./test/common/markdown-lint -OutputFile $path -OutputFormat NUnitXml -PassThru
|
||||
Write-Host "##vso[results.publish type=NUnit;mergeResults=true;runTitle=Markdown Lint;publishRunAttachments=true;resultFiles=$path;]"
|
||||
if($results.TotalCount -eq 0 -or $results.FailedCount -gt 0)
|
||||
{
|
||||
throw "Markdown tests failed"
|
||||
}
|
||||
displayName: Run Markdown Lint Tests
|
||||
condition: succeededOrFailed()
|
||||
workingDirectory: '$(repoPath)'
|
||||
|
||||
- template: dailyBuildCompliance.yml@ComplianceRepo
|
||||
parameters:
|
||||
sourceScanPath: '$(repoPath)'
|
|
@ -34,8 +34,6 @@ resources:
|
|||
clean: true
|
||||
jobs:
|
||||
- job: SSHRemotingTests
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
container: mcr.microsoft.com/powershell/test-deps:ubuntu-18.04
|
||||
displayName: SSH Remoting Tests
|
||||
|
||||
|
|
|
@ -11,31 +11,38 @@ jobs:
|
|||
displayName: ${{ parameters.displayName }}
|
||||
|
||||
steps:
|
||||
- pwsh: |
|
||||
- powershell: |
|
||||
Get-ChildItem -Path env:
|
||||
displayName: Capture Environment
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- pwsh: Write-Host "##vso[build.updatebuildnumber]$env:BUILD_SOURCEBRANCHNAME-$env:BUILD_SOURCEVERSION-$((get-date).ToString("yyyyMMddhhmmss"))"
|
||||
- powershell: Write-Host "##vso[build.updatebuildnumber]$env:BUILD_SOURCEBRANCHNAME-$env:BUILD_SOURCEVERSION-$((get-date).ToString("yyyyMMddhhmmss"))"
|
||||
displayName: Set Build Name for Non-PR
|
||||
condition: ne(variables['Build.Reason'], 'PullRequest')
|
||||
|
||||
- ${{ if ne(variables['AzDevOpsFeed'], '') }}:
|
||||
- template: /tools/releaseBuild/azureDevOps/templates/insert-nuget-config-azfeed.yml
|
||||
|
||||
- pwsh: |
|
||||
if (Test-Path -Path $HOME/.dotnet) {
|
||||
Remove-Item $HOME/.dotnet -Recurse -Force
|
||||
}
|
||||
displayName: Remove Old .NET SDKs
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
Invoke-CIInstall -SkipUser
|
||||
displayName: Bootstrap
|
||||
condition: succeeded()
|
||||
|
||||
- pwsh: |
|
||||
- powershell: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
Invoke-CIBuild
|
||||
displayName: Build
|
||||
condition: succeeded()
|
||||
|
||||
- pwsh: |
|
||||
- powershell: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
Restore-PSOptions
|
||||
Invoke-CIxUnit -SkipFailing
|
||||
|
|
|
@ -33,6 +33,13 @@ jobs:
|
|||
displayName: 'Capture Artifacts Directory'
|
||||
continueOnError: true
|
||||
|
||||
- pwsh: |
|
||||
if (Test-Path -Path $HOME/.dotnet) {
|
||||
Remove-Item $HOME/.dotnet -Recurse -Force
|
||||
}
|
||||
displayName: Remove Old .NET SDKs
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
Invoke-CIInstall -SkipUser
|
||||
|
|
|
@ -51,8 +51,6 @@ jobs:
|
|||
displayName: Bootstrap
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\build.psm1 -force
|
||||
Start-PSBootstrap
|
||||
Import-Module .\tools\ci.psm1
|
||||
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
||||
$options = (Get-PSOptions)
|
||||
|
|
|
@ -132,8 +132,6 @@ stages:
|
|||
condition: succeeded()
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\build.psm1
|
||||
Start-PSBootstrap
|
||||
Import-Module .\tools\ci.psm1
|
||||
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
||||
Invoke-CITest -Purpose UnelevatedPesterTests -TagSet CI
|
||||
|
@ -141,8 +139,6 @@ stages:
|
|||
condition: succeeded()
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\build.psm1
|
||||
Start-PSBootstrap
|
||||
Import-Module .\tools\ci.psm1
|
||||
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
||||
Invoke-CITest -Purpose ElevatedPesterTests -TagSet CI
|
||||
|
@ -150,8 +146,6 @@ stages:
|
|||
condition: succeededOrFailed()
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\build.psm1
|
||||
Start-PSBootstrap
|
||||
Import-Module .\tools\ci.psm1
|
||||
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
||||
Invoke-CITest -Purpose UnelevatedPesterTests -TagSet Others
|
||||
|
@ -159,8 +153,6 @@ stages:
|
|||
condition: succeededOrFailed()
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\build.psm1
|
||||
Start-PSBootstrap
|
||||
Import-Module .\tools\ci.psm1
|
||||
Restore-PSOptions -PSOptionsPath '$(System.ArtifactsDirectory)\build\psoptions.json'
|
||||
Invoke-CITest -Purpose ElevatedPesterTests -TagSet Others
|
||||
|
|
|
@ -11,9 +11,9 @@ trigger:
|
|||
include:
|
||||
- '*'
|
||||
exclude:
|
||||
- .vsts-ci/misc-analysis.yml
|
||||
- .github/ISSUE_TEMPLATE/*
|
||||
- .dependabot/config.yml
|
||||
- /.vsts-ci/misc-analysis.yml
|
||||
- /.github/ISSUE_TEMPLATE/*
|
||||
- /.dependabot/config.yml
|
||||
- test/perf/*
|
||||
pr:
|
||||
branches:
|
||||
|
@ -28,15 +28,11 @@ pr:
|
|||
- .dependabot/config.yml
|
||||
- .github/ISSUE_TEMPLATE/*
|
||||
- .vsts-ci/misc-analysis.yml
|
||||
- cgmanifest.json
|
||||
- LICENSE.txt
|
||||
- test/common/markdown/*
|
||||
- test/perf/*
|
||||
- tools/packaging/*
|
||||
- tools/releaseBuild/*
|
||||
- tools/releaseBuild/azureDevOps/templates/*
|
||||
- README.md
|
||||
- .spelling
|
||||
|
||||
variables:
|
||||
GIT_CONFIG_PARAMETERS: "'core.autocrlf=false'"
|
||||
|
|
|
@ -1,53 +1,25 @@
|
|||
parameters:
|
||||
- name: pool
|
||||
default: 'Hosted VS2017'
|
||||
- name: jobName
|
||||
default: 'win_packaging'
|
||||
- name: runtimePrefix
|
||||
default: 'win7'
|
||||
- name: architecture
|
||||
default: 'x64'
|
||||
- name: channel
|
||||
default: 'preview'
|
||||
pool: 'Hosted VS2017'
|
||||
jobName: 'win_packaging'
|
||||
architecture: 'x64'
|
||||
channel: 'preview'
|
||||
parentJobs: []
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.jobName }}_${{ parameters.channel }}_${{ parameters.architecture }}
|
||||
|
||||
variables:
|
||||
- name: repoFolder
|
||||
value: PowerShell
|
||||
- name: repoPath
|
||||
value: $(Agent.BuildDirectory)\$(repoFolder)
|
||||
- name: complianceRepoFolder
|
||||
value: compliance
|
||||
- name: complianceRepoPath
|
||||
value: $(Agent.BuildDirectory)\$(complianceRepoFolder)
|
||||
|
||||
dependsOn:
|
||||
${{ parameters.parentJobs }}
|
||||
pool:
|
||||
name: ${{ parameters.pool }}
|
||||
|
||||
displayName: Windows Packaging - ${{ parameters.architecture }} - ${{ parameters.channel }}
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
path: $(repoFolder)
|
||||
|
||||
- checkout: ComplianceRepo
|
||||
clean: true
|
||||
path: $(complianceRepoFolder)
|
||||
|
||||
- powershell: |
|
||||
Get-ChildItem -Path env:
|
||||
displayName: Capture environment
|
||||
condition: succeededOrFailed()
|
||||
|
||||
- pwsh: |
|
||||
$PSVersionTable
|
||||
displayName: Capture PowerShell Version Table
|
||||
condition: succeededOrFailed()
|
||||
|
||||
|
||||
- template: /tools/releaseBuild/azureDevOps/templates/insert-nuget-config-azfeed.yml
|
||||
|
||||
- pwsh: |
|
||||
|
@ -55,24 +27,9 @@ jobs:
|
|||
Invoke-CIInstall -SkipUser
|
||||
displayName: Bootstrap
|
||||
condition: succeeded()
|
||||
workingDirectory: $(repoPath)
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
New-CodeCoverageAndTestPackage
|
||||
Invoke-CIFinish -Runtime ${{ parameters.runtimePrefix }}-${{ parameters.architecture }} -channel ${{ parameters.channel }} -Stage Build
|
||||
displayName: Build
|
||||
workingDirectory: $(repoPath)
|
||||
|
||||
- template: Sbom.yml@ComplianceRepo
|
||||
parameters:
|
||||
BuildDropPath: '$(System.ArtifactsDirectory)/mainBuild'
|
||||
Build_Repository_Uri: $(build.repository.uri)
|
||||
displayName: SBOM
|
||||
|
||||
- pwsh: |
|
||||
Import-Module .\tools\ci.psm1
|
||||
New-CodeCoverageAndTestPackage
|
||||
Invoke-CIFinish -Runtime ${{ parameters.runtimePrefix }}-${{ parameters.architecture }} -channel ${{ parameters.channel }} -Stage Package
|
||||
displayName: Package and Test
|
||||
workingDirectory: $(repoPath)
|
||||
Invoke-CIFinish -Runtime win7-${{ parameters.architecture }} -channel ${{ parameters.channel }}
|
||||
displayName: Build and Test Package
|
||||
|
|
|
@ -67,17 +67,10 @@ variables:
|
|||
- name: __SuppressAnsiEscapeSequences
|
||||
value: 1
|
||||
- group: fakeNugetKey
|
||||
- name: SBOMGenerator_Formats
|
||||
value: spdx:2.2
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
- repository: ComplianceRepo
|
||||
type: github
|
||||
endpoint: PowerShell
|
||||
name: PowerShell/compliance
|
||||
ref: master
|
||||
|
||||
- repo: self
|
||||
clean: true
|
||||
stages:
|
||||
- stage: PackagingWin
|
||||
displayName: Packaging for Windows
|
||||
|
@ -93,13 +86,3 @@ stages:
|
|||
parameters:
|
||||
channel: preview
|
||||
architecture: x86
|
||||
- template: templates/windows-packaging.yml
|
||||
parameters:
|
||||
channel: preview
|
||||
architecture: arm
|
||||
runtimePrefix: win
|
||||
- template: templates/windows-packaging.yml
|
||||
parameters:
|
||||
channel: preview
|
||||
architecture: arm64
|
||||
runtimePrefix: win
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<Project>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DotNetAnalyzers.DocumentationAnalyzers" Version="1.0.0-beta.59" PrivateAssets="all" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="6.0.0" PrivateAssets="all" />
|
||||
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.354" PrivateAssets="all" />
|
||||
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.312" PrivateAssets="all" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
work is required for Microsoft to continue to sign and release packages from the project as official Microsoft packages.
|
||||
|
||||
- Remove `PerformWSManPluginReportCompletion`, which was not used, from `pwrshplugin.dll` (#5498) (Thanks @bergmeister!)
|
||||
- Remove exclusion for unresponsive condition and add context exception for remaining instances (#5595)
|
||||
- Remove exclusion for hang and add context exception for remaining instances (#5595)
|
||||
- Replace `strlen` with `strnlen` in native code (#5510)
|
||||
|
||||
## [6.0.0-rc] - 2017-11-16
|
||||
|
@ -781,7 +781,7 @@ Many modules and cmdlets that didn't work in the past may now work on .NET Core,
|
|||
|
||||
If you want to opt-out of this telemetry, simply delete `$PSHome\DELETE_ME_TO_DISABLE_CONSOLEHOST_TELEMETRY`.
|
||||
Even before the first run of Powershell, deleting this file will bypass all telemetry.
|
||||
In the future, we plan on also enabling a configuration value for whatever is approved as part of [RFC0015](https://github.com/PowerShell/PowerShell-RFC/blob/master/Archive/Rejected/RFC0015-PowerShell-StartupConfig.md).
|
||||
In the future, we plan on also enabling a configuration value for whatever is approved as part of [RFC0015](https://github.com/PowerShell/PowerShell-RFC/blob/master/X-Rejected/RFC0015-PowerShell-StartupConfig.md).
|
||||
We also plan on exposing this telemetry data (as well as whatever insights we leverage from the telemetry) in [our community dashboard](https://devblogs.microsoft.com/powershell/powershell-open-source-community-dashboard/).
|
||||
|
||||
If you have any questions or comments about our telemetry, please file an issue.
|
||||
|
|
|
@ -428,7 +428,7 @@
|
|||
- Fix crash when terminal is reset (#6777)
|
||||
- Fix a module-loading regression that caused an infinite loop (#6843)
|
||||
- Further improve `PSMethod` to `Delegate` conversion (#6851)
|
||||
- Block list `System.Windows.Forms` from loading to prevent a crash (#6822)
|
||||
- Blacklist `System.Windows.Forms` from loading to prevent a crash (#6822)
|
||||
- Fix `Format-Table` where rows were being trimmed unnecessarily if there's only one row of headers (#6772)
|
||||
- Fix `SetDate` function in `libpsl-native` to avoid corrupting memory during `P/Invoke` (#6881)
|
||||
- Fix tab completions for hash table (#6839) (Thanks @iSazonov!)
|
||||
|
|
|
@ -844,7 +844,7 @@
|
|||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Replace ambiguous term (#7902, #7931) (Thanks @iSazonov!)
|
||||
- Replace ambiguous `hang` term (#7902, #7931) (Thanks @iSazonov!)
|
||||
- Updating incorrect example of `PowerShell.Create()` (#7926) (Thanks @1RedOne!)
|
||||
- Update `governance.md` (#7927) (Thanks @tommymaynard!)
|
||||
- Add `cURL` to the Bash users list in `README.md` (#7948) (Thanks @vmsilvamolina!)
|
||||
|
|
|
@ -1,64 +1,5 @@
|
|||
# 7.0 Changelog
|
||||
|
||||
## [7.0.8] - 2021-10-14
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Handle error from unauthorized access when removing `AppLocker` test files (#15881)
|
||||
- Handle error when the telemetry mutex cannot be created (#15574) (Thanks @gukoff!)
|
||||
- Configure `ApplicationInsights` to not send cloud role name (Internal 17099)
|
||||
- Disallow `Add-Type` in NoLanguage mode on a locked down machine (Internal 17521)
|
||||
|
||||
### Tools
|
||||
|
||||
- Add `.stylecop` to `filetypexml` and format it (#16025)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
<p>Bump .NET SDK to 3.1.414</p>
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Update the nuget.config file used for building NuGet packages (Internal 17547)</li>
|
||||
<li>Sign the .NET <code>createdump</code> executable (#16229)</li>
|
||||
<li>Upgrade <code>set-value</code> package for markdown test (#16196)</li>
|
||||
<li>Move vPack build to 1ES Pool (#16169)</li>
|
||||
<li>Update to .NET SDK 3.1.414 (Internal 17532)</li>
|
||||
<li>Fix the macOS build by updating the pool image name (#16010)</li>
|
||||
<li>Move from PkgES hosted agents to 1ES hosted agents (#16023)</li>
|
||||
<li>Use Alpine 3.12 for building PowerShell for Alpine Linux (#16008)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Fix example nuget.config (#14349)
|
||||
|
||||
[7.0.8]: https://github.com/PowerShell/PowerShell/compare/v7.0.7...v7.0.8
|
||||
|
||||
## [7.0.7] - 2021-08-12
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
Bump .NET SDK to 3.1.412
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Remove cat file from <code>PSDesiredStateConfiguration</code> module (Internal 16722)</li>
|
||||
<li>Update .NET SDK to <code>3.1.412</code> (Internal 16717)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
[7.0.7]: https://github.com/PowerShell/PowerShell/compare/v7.0.6...v7.0.7
|
||||
|
||||
## [7.0.6] - 2021-03-11
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
@ -367,7 +308,7 @@ Move to .NET Core 3.1.202 SDK and update packages.
|
|||
- Skip null data in output data received handler to fix a `NullReferenceException` (#11448) (Thanks @iSazonov!)
|
||||
- Add `ssh` parameter sets for the parameter `-JobName` in `Invoke-Command` (#11444)
|
||||
- Adding `PowerShell Editor Services` and `PSScriptAnalyzer` to tracked modules (#11514)
|
||||
- Fix condition when key exchange stops responding with `SecureString` for the `OutOfProc` transports (#11380, #11406)
|
||||
- Fix key exchange hang with `SecureString` for the `OutOfProc` transports (#11380, #11406)
|
||||
- Add setting to disable the implicit `WinPS` module loading (#11332)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
|
|
@ -1,64 +1,5 @@
|
|||
# 7.1 Changelog
|
||||
|
||||
## [7.1.5] - 2021-10-14
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Handle error from unauthorized access when removing `AppLocker` test files (#15881)
|
||||
- Test more thoroughly whether a command is `Out-Default` for transcription scenarios (#15653)
|
||||
- Handle error when the telemetry mutex cannot be created (#15574) (Thanks @gukoff!)
|
||||
- Configure `ApplicationInsights` to not send cloud role name (Internal 17100)
|
||||
- Disallow `Add-Type` in NoLanguage mode on a locked down machine (Internal 17522)
|
||||
|
||||
### Tools
|
||||
|
||||
- Add `.stylecop` to `filetypexml` and format it (#16025)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
<p>Bump .NET SDK to 5.0.402</p>
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Upgrade <code>set-value</code> package for markdown test (#16196)</li>
|
||||
<li>Sign the .NET <code>createdump</code> executable (#16229)</li>
|
||||
<li>Move vPack build to 1ES Pool (#16169)</li>
|
||||
<li>Update to .NET SDK 5.0.402 (Internal 17537)</li>
|
||||
<li>Move from PkgES hosted agents to 1ES hosted agents (#16023)</li>
|
||||
<li>Fix the macOS build by updating the pool image name (#16010)</li>
|
||||
<li>Use Alpine 3.12 for building PowerShell for Alpine Linux (#16008)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Fix example nuget.config (#14349)
|
||||
|
||||
[7.1.5]: https://github.com/PowerShell/PowerShell/compare/v7.1.4...v7.1.5
|
||||
|
||||
## [7.1.4] - 2021-08-12
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
Bump .NET SDK to version 5.0.400
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Remove the cat file from <code>PSDesiredStateConfiguration</code> module (Internal 16723)</li>
|
||||
<li>Update .NET SDK version and other packages (Internal 16715)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
[7.1.4]: https://github.com/PowerShell/PowerShell/compare/v7.1.3...v7.1.4
|
||||
|
||||
## [7.1.3] - 2021-03-11
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
|
1122
CHANGELOG/7.2.md
1122
CHANGELOG/7.2.md
File diff suppressed because it is too large
Load diff
|
@ -1 +1,758 @@
|
|||
# Current preview release
|
||||
|
||||
## [7.2.0-preview.7] - 2021-06-17
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Remove PSDesiredStateConfiguration v2.0.5 module and published it to the PowerShell Gallery (#15536)
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Fix splatting being treated as positional parameter in completions (#14623) (Thanks @MartinGC94!)
|
||||
- Prevent PowerShell from crashing when a telemetry mutex can't be created (#15574) (Thanks @gukoff!)
|
||||
- Ignore all exceptions when disposing an instance of a subsystem implementation (#15511)
|
||||
- Wait for SSH exit when closing remote connection (#14635) (Thanks @dinhngtu!)
|
||||
|
||||
### Performance
|
||||
|
||||
- Retrieve `ProductVersion` using informational version attribute in `AmsiUtils.Init()` (#15527) (Thanks @Fs00!)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Fix retrieving dynamic parameters from provider even if globbed path returns no results (#15525)
|
||||
- Revert "Enhance Remove-Item to work with OneDrive (#15260)" due to long path issue (#15546)
|
||||
|
||||
### Code Cleanup
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@octos4murai, @iSazonov, @Fs00</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Correct parameter name passed to exception in <code>PSCommand</code> constructor (#15580) (Thanks @octos4murai!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.ICommandRuntime</code> (#15566) (Thanks @iSazonov!)</li>
|
||||
<li>Clean up code regarding <code>AppDomain.CreateDomain</code> and <code>AppDomain.Unload</code> (#15554)</li>
|
||||
<li>Replace <code>ProcessModule.FileName</code> with <code>Environment.ProcessPath</code> and remove <code>PSUtils.GetMainModule</code> (#15012) (Thanks @Fs00!)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Tests
|
||||
|
||||
- Fix `Start-Benchmarking` to put `TargetPSVersion` and `TargetFramework` in separate parameter sets (#15508)
|
||||
- Add `win-x86` test package to the build (#15517)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@schuelermine</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Update README.md and metadata.json for version 7.2.0-preview.6 (#15464)</li>
|
||||
<li>Make sure GA revision increases from RC and Preview releases (#15558)</li>
|
||||
<li>Remove <code>SupportsShouldProcess</code> from <code>Start-PSBootstrap</code> in build.psm1 (#15491) (Thanks @schuelermine!)</li>
|
||||
<li>Update <code>DotnetMetadataRuntime.json</code> next channel to take daily build from .NET preview 5 (#15518)</li>
|
||||
<li>Fix <code>deps.json</code> update in the release pipeline (#15486)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Add new members to Engine and Cmdlet Working Groups document (#15560)
|
||||
- Update the `mdspell` command to exclude the folder that should be ignored (#15576)
|
||||
- Replace 'User Voice' with 'Feedback Hub' in `README.md` (#15557)
|
||||
- Update Virtual User Group chat links (#15505) (Thanks @Jaykul!)
|
||||
- Fix typo in `FileSystemProvider.cs` (#15445) (Thanks @eltociear!)
|
||||
- Add `PipelineStoppedException` notes to PowerShell API (#15324)
|
||||
- Updated governance on Working Groups (WGs) (#14603)
|
||||
- Correct and improve XML documentation comments on `PSCommand` (#15568) (Thanks @octos4murai!)
|
||||
|
||||
[7.2.0-preview.7]: https://github.com/PowerShell/PowerShell/compare/v7.2.0-preview.6...v7.2.0-preview.7
|
||||
|
||||
## [7.2.0-preview.6] - 2021-05-27
|
||||
|
||||
### Experimental Features
|
||||
|
||||
- [Breaking Change] Update prediction interface to provide additional feedback to a predictor plugin (#15421)
|
||||
|
||||
### Performance
|
||||
|
||||
- Avoid collecting logs in buffer if a pipeline execution event is not going to be logged (#15350)
|
||||
- Avoid allocation in `LanguagePrimitives.UpdateTypeConvertFromTypeTable` (#15168) (Thanks @xtqqczze!)
|
||||
- Replace `Directory.GetDirectories` with `Directory.EnumerateDirectories` to avoid array allocations (#15167) (Thanks @xtqqczze!)
|
||||
- Use `List.ConvertAll` instead of `LINQ` (#15140) (Thanks @xtqqczze!)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Use `AllocConsole` before initializing CLR to ensure codepage is correct for WinRM remoting (PowerShell/PowerShell-Native#70) (Thanks @jborean93!)
|
||||
- Add completions for `#requires` statements (#14596) (Thanks @MartinGC94!)
|
||||
- Add completions for comment-based help keywords (#15337) (Thanks @MartinGC94!)
|
||||
- Move cross platform DSC code to a PowerShell engine subsystem (#15127)
|
||||
- Fix `Minimal` progress view to handle activity that is longer than console width (#15264)
|
||||
- Handle exception if ConsoleHost tries to set cursor out of bounds because screen buffer changed (#15380)
|
||||
- Fix `NullReferenceException` in DSC `ClearCache()` (#15373)
|
||||
- Update `ControlSequenceLength` to handle colon as a virtual terminal parameter separator (#14942)
|
||||
- Update the summary comment for `StopTranscriptCmdlet.cs` (#15349) (Thanks @dbaileyut!)
|
||||
- Remove the unusable alias `d` for the `-Directory` parameter from `Get-ChildItem` (#15171) (Thanks @kvprasoon!)
|
||||
- Fix tab completion for un-localized `about` topics (#15265) (Thanks @MartinGC94!)
|
||||
- Remove the unneeded SSH stdio handle workaround (#15308)
|
||||
- Add `LoadAssemblyFromNativeMemory` API to load assemblies from memory in a native PowerShell host (#14652) (Thanks @awakecoding!)
|
||||
- Re-implement `Remove-Item` OneDrive support (#15260) (Thanks @iSazonov!)
|
||||
- Kill native processes in pipeline when pipeline is disposed on Unix (#15287)
|
||||
- Default to MTA on Windows platforms where STA is not supported (#15106)
|
||||
|
||||
### Code Cleanup
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@xtqqczze, @powercode, @bcwood</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Enable <code>nullable</code> in some classes (#14185, #14177, #14159, #14191, #14162, #14150, #14156, #14161, #14155, #14163, #14181, #14157, #14151) (Thanks @powercode!)</li>
|
||||
<li>Annotate <code>ThrowTerminatingError</code> with <code>DoesNotReturn</code> attribute (#15352) (Thanks @powercode!)</li>
|
||||
<li>Use <code>GetValueOrDefault()</code> for nullable <code>PSLanguageMode</code> (#13849) (Thanks @bcwood!)</li>
|
||||
<li>Enable <code>SA1008</code>: Opening parenthesis should be spaced correctly (#14242) (Thanks @xtqqczze!)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Tools
|
||||
|
||||
- Add `winget` release script (#15050)
|
||||
|
||||
### Tests
|
||||
|
||||
- Enable cross-runtime benchmarking to compare different .NET runtimes (#15387) (Thanks @adamsitnik!)
|
||||
- Add the performance benchmark project for PowerShell performance testing (#15242)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
Update .NET to version <code>v6.0.0-preview.4</code>
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Suppress prompting when uploading the <code>msixbundle</code> package to blob (#15227)</li>
|
||||
<li>Update to .NET preview 4 SDK (#15452)</li>
|
||||
<li>Update <code>AppxManifest.xml</code> with newer OS version to allow PowerShell installed from Windows Store to make system-level changes (#15375)</li>
|
||||
<li>Ensure the build works when <code>PSDesiredStateConfiguration</code> module is pulled in from PSGallery (#15355)</li>
|
||||
<li>Make sure daily release tag does not change when retrying failures (#15286)</li>
|
||||
<li>Improve messages and behavior when there's a problem in finding zip files (#15284)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Add documentation comments section to coding guidelines (#14316) (Thanks @xtqqczze!)
|
||||
|
||||
[7.2.0-preview.6]: https://github.com/PowerShell/PowerShell/compare/v7.2.0-preview.5...v7.2.0-preview.6
|
||||
|
||||
## [7.2.0-preview.5] - 2021-04-14
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Make PowerShell Linux deb and RPM packages universal (#15109)
|
||||
- Enforce AppLocker Deny configuration before Execution Policy Bypass configuration (#15035)
|
||||
- Disallow mixed dash and slash in command line parameter prefix (#15142) (Thanks @davidBar-On!)
|
||||
|
||||
### Experimental Features
|
||||
|
||||
- `PSNativeCommandArgumentPassing`: Use `ArgumentList` for native executable invocation (breaking change) (#14692)
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Add `IArgumentCompleterFactory` for parameterized `ArgumentCompleters` (#12605) (Thanks @powercode!)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Fix SSH remoting connection never finishing with misconfigured endpoint (#15175)
|
||||
- Respect `TERM` and `NO_COLOR` environment variables for `$PSStyle` rendering (#14969)
|
||||
- Use `ProgressView.Classic` when Virtual Terminal is not supported (#15048)
|
||||
- Fix `Get-Counter` issue with `-Computer` parameter (#15166) (Thanks @krishnayalavarthi!)
|
||||
- Fix redundant iteration while splitting lines (#14851) (Thanks @hez2010!)
|
||||
- Enhance `Remove-Item -Recurse` to work with OneDrive (#14902) (Thanks @iSazonov!)
|
||||
- Change minimum depth to 0 for `ConvertTo-Json` (#14830) (Thanks @kvprasoon!)
|
||||
- Allow `Set-Clipboard` to accept empty string (#14579)
|
||||
- Turn on and off `DECCKM` to modify keyboard mode for Unix native commands to work correctly (#14943)
|
||||
- Fall back to `CopyAndDelete()` when `MoveTo()` fails due to an `IOException` (#15077)
|
||||
|
||||
### Code Cleanup
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@xtqqczze, @iSazonov, @ZhiZe-ZG</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Update .NET to <code>6.0.0-preview.3</code> (#15221)</li>
|
||||
<li>Add space before comma to hosting test to fix error reported by <code>SA1001</code> (#15224)</li>
|
||||
<li>Add <code>SecureStringHelper.FromPlainTextString</code> helper method for efficient secure string creation (#14124) (Thanks @xtqqczze!)</li>
|
||||
<li>Use static lambda keyword (#15154) (Thanks @iSazonov!)</li>
|
||||
<li>Remove unnecessary <code>Array</code> -> <code>List</code> -> <code>Array</code> conversion in <code>ProcessBaseCommand.AllProcesses</code> (#15052) (Thanks @xtqqczze!)</li>
|
||||
<li>Standardize grammar comments in Parser.cs (#15114) (Thanks @ZhiZe-ZG!)</li>
|
||||
<li>Enable <code>SA1001</code>: Commas should be spaced correctly (#14171) (Thanks @xtqqczze!)</li>
|
||||
<li>Refactor <code>MultipleServiceCommandBase.AllServices</code> (#15053) (Thanks @xtqqczze!)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Tools
|
||||
|
||||
- Use Unix line endings for shell scripts (#15180) (Thanks @xtqqczze!)
|
||||
|
||||
### Tests
|
||||
|
||||
- Add the missing tag in Host Utilities tests (#14983)
|
||||
- Update `copy-props` version in `package.json` (#15124)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@JustinGrote</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Fix <code>yarn-lock</code> for <code>copy-props</code> (#15225)</li>
|
||||
<li>Make package validation regex accept universal Linux packages (#15226)</li>
|
||||
<li>Bump NJsonSchema from 10.4.0 to 10.4.1 (#15190)</li>
|
||||
<li>Make MSI and EXE signing always copy to fix daily build (#15191)</li>
|
||||
<li>Sign internals of EXE package so that it works correctly when signed (#15132)</li>
|
||||
<li>Bump Microsoft.NET.Test.Sdk from 16.9.1 to 16.9.4 (#15141)</li>
|
||||
<li>Update daily release tag format to work with new Microsoft Update work (#15164)</li>
|
||||
<li>Feature: Add Ubuntu 20.04 Support to install-powershell.sh (#15095) (Thanks @JustinGrote!)</li>
|
||||
<li>Treat rebuild branches like release branches (#15099)</li>
|
||||
<li>Update WiX to 3.11.2 (#15097)</li>
|
||||
<li>Bump NJsonSchema from 10.3.11 to 10.4.0 (#15092)</li>
|
||||
<li>Allow patching of preview releases (#15074)</li>
|
||||
<li>Bump Newtonsoft.Json from 12.0.3 to 13.0.1 (#15084, #15085)</li>
|
||||
<li>Update the <code>minSize</code> build package filter to be explicit (#15055)</li>
|
||||
<li>Bump NJsonSchema from 10.3.10 to 10.3.11 (#14965)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Merge `7.2.0-preview.4` changes to master (#15056)
|
||||
- Update `README` and `metadata.json` (#15046)
|
||||
- Fix broken links for `dotnet` CLI (#14937)
|
||||
|
||||
[7.2.0-preview.5]: https://github.com/PowerShell/PowerShell/compare/v7.2.0-preview.4...v7.2.0-preview.5
|
||||
|
||||
## [7.2.0-preview.4] - 2021-03-16
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Fix `Get-Date -UFormat` `%G` and `%g` behavior (#14555) (Thanks @brianary!)
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Update engine script signature validation to match `Get-AuthenticodeSignature` logic (#14849)
|
||||
- Avoid array allocations from `GetDirectories` and `GetFiles` (#14327) (Thanks @xtqqczze!)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Add `UseOSCIndicator` setting to enable progress indicator in terminal (#14927)
|
||||
- Re-enable VT mode on Windows after running command in `ConsoleHost` (#14413)
|
||||
- Fix `Move-Item` for `FileSystemProvider` to use copy-delete instead of move for DFS paths (#14913)
|
||||
- Fix `PromptForCredential()` to add `targetName` as domain (#14504)
|
||||
- Update `Concise` `ErrorView` to not show line information for errors from script module functions (#14912)
|
||||
- Remove the 32,767 character limit on the environment block for `Start-Process` (#14111) (Thanks @hbuckle!)
|
||||
- Don't write possible secrets to verbose stream for web cmdlets (#14788)
|
||||
|
||||
### Tools
|
||||
|
||||
- Update `dependabot` configuration to V2 format (#14882)
|
||||
- Add tooling issue slots in PR template (#14697)
|
||||
|
||||
### Tests
|
||||
|
||||
- Move misplaced test file to tests directory (#14908) (Thanks @MarianoAlipi!)
|
||||
- Refactor MSI CI (#14753)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
Update .NET to version <code>6.0.100-preview.2.21155.3</code>
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Update .NET to version <code>6.0.100-preview.2.21155.3</code> (#15007)</li>
|
||||
<li>Bump <code>Microsoft.PowerShell.Native</code> to <code>7.2.0-preview.1</code> (#15030)</li>
|
||||
<li>Create MSIX Bundle package in release pipeline (#14982)</li>
|
||||
<li>Build self-contained minimal size package for Guest Config team (#14976)</li>
|
||||
<li>Bump XunitXml.TestLogger from 3.0.62 to 3.0.66 (#14993) (Thanks @dependabot[bot]!)</li>
|
||||
<li>Enable building PowerShell for Apple M1 runtime (#14923)</li>
|
||||
<li>Fix the variable name in the condition for miscellaneous analysis CI (#14975)</li>
|
||||
<li>Fix the variable usage in CI yaml (#14974)</li>
|
||||
<li>Disable running markdown link verification in release build CI (#14971)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.CSharp from 3.9.0-3.final to 3.9.0 (#14934) (Thanks @dependabot[bot]!)</li>
|
||||
<li>Declare which variable group is used for checking the blob in the release build (#14970)</li>
|
||||
<li>Update metadata and script to enable consuming .NET daily builds (#14940)</li>
|
||||
<li>Bump NJsonSchema from 10.3.9 to 10.3.10 (#14933) (Thanks @dependabot[bot]!)</li>
|
||||
<li>Use template that disables component governance for CI (#14938)</li>
|
||||
<li>Add suppress for nuget multi-feed warning (#14893)</li>
|
||||
<li>Bump NJsonSchema from 10.3.8 to 10.3.9 (#14926) (Thanks @dependabot[bot]!)</li>
|
||||
<li>Add exe wrapper to release (#14881)</li>
|
||||
<li>Bump Microsoft.ApplicationInsights from 2.16.0 to 2.17.0 (#14847)</li>
|
||||
<li>Bump Microsoft.NET.Test.Sdk from 16.8.3 to 16.9.1 (#14895) (Thanks @dependabot[bot]!)</li>
|
||||
<li>Bump NJsonSchema from 10.3.7 to 10.3.8 (#14896) (Thanks @dependabot[bot]!)</li>
|
||||
<li>Disable codesign validation where the file type is not supported (#14885)</li>
|
||||
<li>Fixing broken Experimental Feature list in <code>powershell.config.json</code> (#14858)</li>
|
||||
<li>Bump NJsonSchema from 10.3.6 to 10.3.7 (#14855)</li>
|
||||
<li>Add exe wrapper for Microsoft Update scenarios (#14737)</li>
|
||||
<li>Install wget on <code>CentOS</code> 7 docker image (#14857)</li>
|
||||
<li>Fix install-dotnet download (#14856)</li>
|
||||
<li>Fix Bootstrap step in Windows daily test runs (#14820)</li>
|
||||
<li>Bump NJsonSchema from 10.3.5 to 10.3.6 (#14818)</li>
|
||||
<li>Bump <code>NJsonSchema</code> from <code>10.3.4</code> to <code>10.3.5</code> (#14807)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Update `README.md` and `metadata.json` for upcoming releases (#14755)
|
||||
- Merge 7.1.3 and 7.0.6 Change log to master (#15009)
|
||||
- Update `README` and `metadata.json` for releases (#14997)
|
||||
- Update ChangeLog for `v7.1.2` release (#14783)
|
||||
- Update ChangeLog for `v7.0.5` release (#14782) (Internal 14479)
|
||||
|
||||
[7.2.0-preview.4]: https://github.com/PowerShell/PowerShell/compare/v7.2.0-preview.3...v7.2.0-preview.4
|
||||
|
||||
## [7.2.0-preview.3] - 2021-02-11
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Fix `Get-Date -UFormat %u` behavior to comply with ISO 8601 (#14549) (Thanks @brianary!)
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Together with `PSDesiredStateConfiguration` `v3` module allows `Get-DscResource`, `Invoke-DscResource` and DSC configuration compilation on all platforms, supported by PowerShell (using class-based DSC resources).
|
||||
|
||||
### Performance
|
||||
|
||||
- Avoid array allocations from `Directory.GetDirectories` and `Directory.GetFiles`. (#14326) (Thanks @xtqqczze!)
|
||||
- Avoid `string.ToLowerInvariant()` from `GetEnvironmentVariableAsBool()` to avoid loading libicu at startup (#14323) (Thanks @iSazonov!)
|
||||
- Get PowerShell version in `PSVersionInfo` using assembly attribute instead of `FileVersionInfo` (#14332) (Thanks @Fs00!)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Suppress `Write-Progress` in `ConsoleHost` if output is redirected and fix tests (#14716)
|
||||
- Experimental feature `PSAnsiProgress`: Add minimal progress bar using ANSI rendering (#14414)
|
||||
- Fix web cmdlets to properly construct URI from body when using `-NoProxy` (#14673)
|
||||
- Update the `ICommandPredictor` to provide more feedback and also make feedback easier to be correlated (#14649)
|
||||
- Reset color after writing `Verbose`, `Debug`, and `Warning` messages (#14698)
|
||||
- Fix using variable for nested `ForEach-Object -Parallel` calls (#14548)
|
||||
- When formatting, if collection is modified, don't fail the entire pipeline (#14438)
|
||||
- Improve completion of parameters for attributes (#14525) (Thanks @MartinGC94!)
|
||||
- Write proper error messages for `Get-Command ' '` (#13564) (Thanks @jakekerr!)
|
||||
- Fix typo in the resource string `ProxyURINotSupplied` (#14526) (Thanks @romero126!)
|
||||
- Add support to `$PSStyle` for strikethrough and hyperlinks (#14461)
|
||||
- Fix `$PSStyle` blink codes (#14447) (Thanks @iSazonov!)
|
||||
|
||||
### Code Cleanup
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@xtqqczze, @powercode</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Fix coding style issues: RCS1215, IDE0090, SA1504, SA1119, RCS1139, IDE0032 (#14356, #14341, #14241, #14204, #14442, #14443) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable coding style checks: CA2249, CA1052, IDE0076, IDE0077, SA1205, SA1003, SA1314, SA1216, SA1217, SA1213 (#14395, #14483, #14494, #14495, #14441, #14476, #14470, #14471, #14472) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable nullable in PowerShell codebase (#14160, #14172, #14088, #14154, #14166, #14184, #14178) (Thanks @powercode!)</li>
|
||||
<li>Use <code>string.Split(char)</code> instead of <code>string.Split(string)</code> (#14465) (Thanks @xtqqczze!)</li>
|
||||
<li>Use <code>string.Contains(char)</code> overload (#14368) (Thanks @xtqqczze!)</li>
|
||||
<li>Refactor complex <code>if</code> statements (#14398) (Thanks @xtqqczze!)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Tools
|
||||
|
||||
- Update script to use .NET 6 build resources (#14705)
|
||||
- Fix the daily GitHub action (#14711) (Thanks @imba-tjd!)
|
||||
- GitHub Actions: fix deprecated `::set-env` (#14629) (Thanks @imba-tjd!)
|
||||
- Update markdown test tools (#14325) (Thanks @RDIL!)
|
||||
- Upgrade `StyleCopAnalyzers` to `v1.2.0-beta.312` (#14354) (Thanks @xtqqczze!)
|
||||
|
||||
### Tests
|
||||
|
||||
- Remove packaging from daily Windows build (#14749)
|
||||
- Update link to the Manning book (#14750)
|
||||
- A separate Windows packaging CI (#14670)
|
||||
- Update `ini` component version in test `package.json` (#14454)
|
||||
- Disable `libmi` dependent tests for macOS. (#14446)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<ul>
|
||||
<li>Fix the NuGet feed name and URL for .NET 6</li>
|
||||
<li>Fix third party signing for files in sub-folders (#14751)</li>
|
||||
<li>Make build script variable an <code>ArrayList</code> to enable <code>Add()</code> method (#14748)</li>
|
||||
<li>Remove old .NET SDKs to make <code>dotnet restore</code> work with the latest SDK in CI pipeline (#14746)</li>
|
||||
<li>Remove outdated Linux dependencies (#14688)</li>
|
||||
<li>Bump .NET SDK version to 6.0.0-preview.1 (#14719)</li>
|
||||
<li>Bump <code>NJsonSchema</code> to 10.3.4 (#14714)</li>
|
||||
<li>Update daily GitHub action to allow manual trigger (#14718)</li>
|
||||
<li>Bump <code>XunitXml.TestLogger</code> to 3.0.62 (#14702)</li>
|
||||
<li>Make universal deb package based on the deb package specification (#14681)</li>
|
||||
<li>Add manual release automation steps and improve changelog script (#14445)</li>
|
||||
<li>Fix release build to upload global tool packages to artifacts (#14620)</li>
|
||||
<li>Port changes from the PowerShell v7.0.4 release (#14637)</li>
|
||||
<li>Port changes from the PowerShell v7.1.1 release (#14621)</li>
|
||||
<li>Updated README and <code>metadata.json</code> (#14401, #14606, #14612)</li>
|
||||
<li>Do not push nupkg artifacts to MyGet (#14613)</li>
|
||||
<li>Use one feed in each <code>nuget.config</code> in official builds (#14363)</li>
|
||||
<li>Fix path signed RPMs are uploaded from in release build (#14424)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Update distribution support request template to point to .NET 5.0 support document (#14578)
|
||||
- Remove security GitHub issue template (#14453)
|
||||
- Add intent for using the Discussions feature in repo (#14399)
|
||||
- Fix Universal Dashboard to refer to PowerShell Universal (#14437)
|
||||
- Update document link because of HTTP 301 redirect (#14431) (Thanks @xtqqczze!)
|
||||
|
||||
[7.2.0-preview.3]: https://github.com/PowerShell/PowerShell/compare/v7.2.0-preview.2...v7.2.0-preview.3
|
||||
|
||||
## [7.2.0-preview.2] - 2020-12-15
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Improve detection of mutable value types (#12495) (Thanks @vexx32!)
|
||||
- Ensure `-PipelineVariable` is set for all output from script cmdlets (#12766) (Thanks @vexx32!)
|
||||
|
||||
### Experimental Features
|
||||
|
||||
- `PSAnsiRendering`: Enable ANSI formatting via `$PSStyle` and support suppressing ANSI output (#13758)
|
||||
|
||||
### Performance
|
||||
|
||||
- Optimize `IEnumerable` variant of replace operator (#14221) (Thanks @iSazonov!)
|
||||
- Refactor multiply operation for better performance in two `Microsoft.PowerShell.Commands.Utility` methods (#14148) (Thanks @xtqqczze!)
|
||||
- Use `Environment.TickCount64` instead of `Datetime.Now` as the random seed for AppLocker test file content (#14283) (Thanks @iSazonov!)
|
||||
- Avoid unnecessary array allocations when searching in GAC (#14291) (Thanks @xtqqczze!)
|
||||
- Use `OrdinalIgnoreCase` in `CommandLineParser` (#14303) (Thanks @iSazonov!)
|
||||
- Use `StringComparison.Ordinal` instead of `StringComparison.CurrentCulture` (#14298) (Thanks @iSazonov!)
|
||||
- Avoid creating instances of the generated delegate helper class in `-replace` implementation (#14128)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Write better error message if config file is broken (#13496) (Thanks @iSazonov!)
|
||||
- Make AppLocker Enforce mode take precedence over UMCI Audit mode (#14353)
|
||||
- Add `-SkipLimitCheck` switch to `Import-PowerShellDataFile` (#13672)
|
||||
- Restrict `New-Object` in NoLanguage mode under lock down (#14140) (Thanks @krishnayalavarthi!)
|
||||
- The `-Stream` parameter now works with directories (#13941) (Thanks @kyanha!)
|
||||
- Avoid an exception if file system does not support reparse points (#13634) (Thanks @iSazonov!)
|
||||
- Enable `CA1012`: Abstract types should not have public constructors (#13940) (Thanks @xtqqczze!)
|
||||
- Enable `SA1212`: Property accessors should follow order (#14051) (Thanks @xtqqczze!)
|
||||
|
||||
### Code Cleanup
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@xtqqczze, @matthewjdegarmo, @powercode, @Gimly</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Enable <code>SA1007</code>: Operator keyword should be followed by space (#14130) (Thanks @xtqqczze!)</li>
|
||||
<li>Expand <code>where</code> alias to <code>Where-Object</code> in <code>Reset-PWSHSystemPath.ps1</code> (#14113) (Thanks @matthewjdegarmo!)</li>
|
||||
<li>Fix whitespace issues (#14092) (Thanks @xtqqczze!)</li>
|
||||
<li>Add <code>StyleCop.Analyzers</code> package (#13963) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>IDE0041</code>: <code>UseIsNullCheck</code> (#14041) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>IDE0082</code>: <code>ConvertTypeOfToNameOf</code> (#14042) (Thanks @xtqqczze!)</li>
|
||||
<li>Remove unnecessary usings part 4 (#14023) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>PriorityAttribute</code> name (#14094) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Interpreter.IBoxableInstruction</code> (#14165) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Provider.IDynamicPropertyProvider</code> (#14167) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Language.IScriptExtent</code> (#14179) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Language.ICustomAstVisitor2</code> (#14192) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.LanguagePrimitives.IConversionData</code> (#14187) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Automation.Remoting.Client.IWSManNativeApiFacade</code> (#14186) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Language.ISupportsAssignment</code> (#14180) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.ICommandRuntime2</code> (#14183) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.IOutputProcessingState</code> (#14175) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.IJobDebugger</code> (#14174) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Interpreter.IInstructionProvider</code> (#14173) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.IHasSessionStateEntryVisibility</code> (#14169) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Tracing.IEtwEventCorrelator</code> (#14168) (Thanks @powercode!)</li>
|
||||
<li>Fix syntax error in Windows packaging script (#14377)</li>
|
||||
<li>Remove redundant local assignment in <code>AclCommands</code> (#14358) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Language.IAstPostVisitHandler</code> (#14164) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.IModuleAssemblyInitializer</code> (#14158) (Thanks @powercode!)</li>
|
||||
<li>Use <code>Microsoft.PowerShell.MarkdownRender</code> package from <code>nuget.org</code> (#14090)</li>
|
||||
<li>Replace <code>GetFiles</code> in <code>TestModuleManifestCommand</code> (#14317) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Provider.IContentWriter</code> (#14152) (Thanks @powercode!)</li>
|
||||
<li>Simplify getting Encoding in <code>TranscriptionOption.FlushContentToDisk</code> (#13910) (Thanks @Gimly!)</li>
|
||||
<li>Mark applicable structs as <code>readonly</code> and use <code>in</code>-modifier (#13919) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.IArgumentCompleter</code> (#14182) (Thanks @powercode!)</li>
|
||||
<li>Enable <code>CA1822</code>: Mark <code>private</code> members as <code>static</code> (#13897) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 6 (#14338) (Thanks @xtqqczze!)</li>
|
||||
<li>Avoid array allocations from <code>GetDirectories</code>/<code>GetFiles</code>. (#14328) (Thanks @xtqqczze!)</li>
|
||||
<li>Avoid array allocations from <code>GetDirectories</code>/<code>GetFiles</code>. (#14330) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>RCS1188</code>: Remove redundant auto-property initialization part 2 (#14262) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Host.IHostSupportsInteractiveSession</code> (#14170) (Thanks @powercode!)</li>
|
||||
<li>Enable nullable: <code>System.Management.Automation.Provider.IPropertyCmdletProvider</code> (#14176) (Thanks @powercode!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify new expression part 5 (#14301) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>IDE0075</code>: <code>SimplifyConditionalExpression</code> (#14078) (Thanks @xtqqczze!)</li>
|
||||
<li>Remove unnecessary usings part 9 (#14288) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix StyleCop and MarkdownLint CI failures (#14297) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1000</code>: Keywords should be spaced correctly (#13973) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>RCS1188</code>: Remove redundant auto-property initialization part 1 (#14261) (Thanks @xtqqczze!)</li>
|
||||
<li>Mark <code>private</code> members as <code>static</code> part 10 (#14235) (Thanks @xtqqczze!)</li>
|
||||
<li>Mark <code>private</code> members as <code>static</code> part 9 (#14234) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>SA1642</code> for <code>Microsoft.Management.Infrastructure.CimCmdlets</code> (#14239) (Thanks @xtqqczze!)</li>
|
||||
<li>Use <code>AsSpan</code>/<code>AsMemory</code> slice constructor (#14265) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.6 (#14260) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.5 (#14259) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.3 (#14257) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.2 (#14256) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 2 (#14200) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1643</code>: Destructor summary documentation should begin with standard text (#14236) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify new expression part 4.4 (#14258) (Thanks @xtqqczze!)</li>
|
||||
<li>Use xml documentation child blocks correctly (#14249) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.1 (#14255) (Thanks @xtqqczze!)</li>
|
||||
<li>Use consistent spacing in xml documentation tags (#14231) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>IDE0074</code>: Use coalesce compound assignment (#13396) (Thanks @xtqqczze!)</li>
|
||||
<li>Remove unnecessary finalizers (#14248) (Thanks @xtqqczze!)</li>
|
||||
<li>Mark local variable as <code>const</code> (#13217) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0032</code>: <code>UseAutoProperty</code> part 2 (#14244) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0032</code>: <code>UseAutoProperty</code> part 1 (#14243) (Thanks @xtqqczze!)</li>
|
||||
<li>Mark <code>private</code> members as <code>static</code> part 8 (#14233) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 6 (#14229) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 5 (#14228) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 4 (#14227) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 3 (#14226) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 2 (#14225) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 1 (#14224) (Thanks @xtqqczze!)</li>
|
||||
<li>Use <code>see</code> keyword in documentation (#14220) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>CA2211</code>: Non-constant fields should not be visible (#14073) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>CA1816</code>: <code>Dispose</code> methods should call <code>SuppressFinalize</code> (#14074) (Thanks @xtqqczze!)</li>
|
||||
<li>Remove incorrectly implemented finalizer (#14246) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 7 (#14230) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>SA1122</code>: Use <code>string.Empty</code> for empty strings (#14218) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix various xml documentation issues (#14223) (Thanks @xtqqczze!)</li>
|
||||
<li>Remove unnecessary <code>using</code>s part 8 (#14072) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1006</code>: Preprocessor keywords should not be preceded by space (#14052) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>SA1642</code> for <code>Microsoft.PowerShell.Commands.Utility</code> (#14142) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>CA2216</code>: Disposable types should declare finalizer (#14089) (Thanks @xtqqczze!)</li>
|
||||
<li>Wrap and name <code>LoadBinaryModule</code> arguments (#14193) (Thanks @xtqqczze!)</li>
|
||||
<li>Wrap and name <code>GetListOfFilesFromData</code> arguments (#14194) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1002</code>: Semicolons should be spaced correctly (#14197) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 3 (#14201) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1106</code>: Code should not contain empty statements (#13964) (Thanks @xtqqczze!)</li>
|
||||
<li>Code performance fixes follow-up (#14207) (Thanks @xtqqczze!)</li>
|
||||
<li>Remove uninformative comments (#14199) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 1 (#14027) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1517</code>: Code should not contain blank lines at start of file (#14131) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1131</code>: Use readable conditions (#14132) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1507</code>: Code should not contain multiple blank lines in a row (#14136) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>SA1516</code> Elements should be separated by blank line (#14137) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>IDE0031</code>: Null check can be simplified (#13548) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>CA1065</code>: Do not raise exceptions in unexpected locations (#14117) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable <code>CA1000</code>: Do not declare <code>static</code> members on generic types (#14097) (Thanks @xtqqczze!)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Tools
|
||||
|
||||
- Fixing formatting in `Reset-PWSHSystemPath.ps1` (#13689) (Thanks @dgoldman-msft!)
|
||||
|
||||
### Tests
|
||||
|
||||
- Reinstate `Test-Connection` tests (#13324)
|
||||
- Update markdown test packages with security fixes (#14145)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<ul>
|
||||
<li>Fix a typo in the <code>Get-ChangeLog</code> function (#14129)</li>
|
||||
<li>Update <code>README</code> and <code>metadata.json</code> for <code>7.2.0-preview.1</code> release (#14104)</li>
|
||||
<li>Bump <code>NJsonSchema</code> from <code>10.2.2</code> to <code>10.3.1</code> (#14040)</li>
|
||||
<li>Move windows package signing to use ESRP (#14060)</li>
|
||||
<li>Use one feed in each <code>nuget.config</code> in official builds (#14363)</li>
|
||||
<li>Fix path signed RPMs are uploaded from in release build (#14424)</li>
|
||||
<li>Add <code>Microsoft.PowerShell.MarkdownRender</code> to the package reference list (#14386)</li>
|
||||
<li>Fix issue with unsigned build (#14367)</li>
|
||||
<li>Move macOS and nuget to ESRP signing (#14324)</li>
|
||||
<li>Fix nuget packaging to scrub <code>NullableAttribute</code> (#14344)</li>
|
||||
<li>Bump <code>Microsoft.NET.Test.Sdk</code> from 16.8.0 to 16.8.3 (#14310)</li>
|
||||
<li>Bump <code>Markdig.Signed</code> from 0.22.0 to 0.22.1 (#14305)</li>
|
||||
<li>Bump <code>Microsoft.ApplicationInsights</code> from 2.15.0 to 2.16.0 (#14031)</li>
|
||||
<li>Move Linux to ESRP signing (#14210)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Fix example `nuget.config` (#14349)
|
||||
- Fix a broken link in Code Guidelines doc (#14314) (Thanks @iSazonov!)
|
||||
|
||||
[7.2.0-preview.2]: https://github.com/PowerShell/PowerShell/compare/v7.2.0-preview.1...v7.2.0-preview.2
|
||||
|
||||
## [7.2.0-preview.1] - 2020-11-17
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Change the default fallback encoding for `GetEncoding` in `Start-Transcript` to be `UTF8` without a BOM (#13732) (Thanks @Gimly!)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Update `pwsh -?` output to match docs (#13748)
|
||||
- Fix `NullReferenceException` in `Test-Json` (#12942) (Thanks @iSazonov!)
|
||||
- Make `Dispose` in `TranscriptionOption` idempotent (#13839) (Thanks @krishnayalavarthi!)
|
||||
- Add additional Microsoft PowerShell modules to the tracked modules list (#12183)
|
||||
- Relax further `SSL` verification checks for `WSMan` on non-Windows hosts with verification available (#13786) (Thanks @jborean93!)
|
||||
- Add the `OutputTypeAttribute` to `Get-ExperimentalFeature` (#13738) (Thanks @ThomasNieto!)
|
||||
- Fix blocking wait when starting file associated with a Windows application (#13750)
|
||||
- Emit warning if `ConvertTo-Json` exceeds `-Depth` value (#13692)
|
||||
|
||||
### Code Cleanup
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@xtqqczze, @mkswd, @ThomasNieto, @PatLeong, @paul-cheung, @georgettica</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Fix RCS1049: Simplify boolean comparison (#13994) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable IDE0062: Make local function static (#14044) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA2207: Initialize value type static fields inline (#14068) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1837: Use <code>ProcessId</code> and <code>CurrentManagedThreadId</code> from <code>System.Environment</code> (#14063) (Thanks @xtqqczze and @PatLeong!)</li>
|
||||
<li>Remove unnecessary using directives (#14014, #14017, #14021, #14050, #14065, #14066, #13863, #13860, #13861, #13814) (Thanks @xtqqczze and @ThomasNieto!)</li>
|
||||
<li>Remove unnecessary usage of LINQ <code>Count</code> method (#13545) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix SA1518: The code must not contain extra blank lines at the end of the file (#13574) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1829: Use the <code>Length</code> or <code>Count</code> property instead of <code>Count()</code> (#13925) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1827: Do not use <code>Count()</code> or <code>LongCount()</code> when <code>Any()</code> can be used (#13923) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable or fix nullable usage in a few files (#13793, #13805, #13808, #14018, #13804) (Thanks @mkswd and @georgettica!)</li>
|
||||
<li>Enable IDE0040: Add accessibility modifiers (#13962, #13874) (Thanks @xtqqczze!)</li>
|
||||
<li>Make applicable private Guid fields readonly (#14000) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix CA1003: Use generic event handler instances (#13937) (Thanks @xtqqczze!)</li>
|
||||
<li>Simplify delegate creation (#13578) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix RCS1033: Remove redundant boolean literal (#13454) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix RCS1221: Use pattern matching instead of combination of <code>as</code> operator and null check (#13333) (Thanks @xtqqczze!)</li>
|
||||
<li>Use <code>is not</code> syntax (#13338) (Thanks @xtqqczze!)</li>
|
||||
<li>Replace magic number with constant in PDH (#13536) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix accessor order (#13538) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable IDE0054: Use compound assignment (#13546) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix RCS1098: Constant values should be on right side of comparisons (#13833) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1068: <code>CancellationToken</code> parameters must come last (#13867) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA10XX rules with suggestion severity (#13870, #13928, #13924) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable IDE0064: Make Struct fields writable (#13945) (Thanks @xtqqczze!)</li>
|
||||
<li>Run <code>dotnet-format</code> to improve formatting of source code (#13503) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1825: Avoid zero-length array allocations (#13961) (Thanks @xtqqczze!)</li>
|
||||
<li>Add IDE analyzer rule IDs to comments (#13960) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1830: Prefer strongly-typed <code>Append</code> and <code>Insert</code> method overloads on <code>StringBuilder</code> (#13926) (Thanks @xtqqczze!)</li>
|
||||
<li>Enforce code style in build (#13957) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1836: Prefer <code>IsEmpty</code> over <code>Count</code> when available (#13877) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1834: Consider using <code>StringBuilder.Append(char)</code> when applicable (#13878) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix IDE0044: Make field readonly (#13884, #13885, #13888, #13892, #13889, #13886, #13890, #13891, #13887, #13893, #13969, #13967, #13968, #13970, #13971, #13966, #14012) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable IDE0048: Add required parentheses (#13896) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable IDE1005: Invoke delegate with conditional access (#13911) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable IDE0036: Enable the check on the order of modifiers (#13958, #13881) (Thanks @xtqqczze!)</li>
|
||||
<li>Use span-based <code>String.Concat</code> instead of <code>String.Substring</code> (#13500) (Thanks @xtqqczze!)</li>
|
||||
<li>Enable CA1050: Declare types in namespace (#13872) (Thanks @xtqqczze!)</li>
|
||||
<li>Fix minor keyword typo in C# code comment (#13811) (Thanks @paul-cheung!)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Tools
|
||||
|
||||
- Enable `CodeQL` Security scanning (#13894)
|
||||
- Add global `AnalyzerConfig` with default configuration (#13835) (Thanks @xtqqczze!)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@mkswd, @xtqqczze</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Bump <code>Microsoft.NET.Test.Sdk</code> to <code>16.8.0</code> (#14020)</li>
|
||||
<li>Bump <code>Microsoft.CodeAnalysis.CSharp</code> to <code>3.8.0</code> (#14075)</li>
|
||||
<li>Remove workarounds for .NET 5 RTM builds (#14038)</li>
|
||||
<li>Migrate 3rd party signing to ESRP (#14010)</li>
|
||||
<li>Fixes to release pipeline for GA release (#14034)</li>
|
||||
<li>Don't do a shallow checkout (#13992)</li>
|
||||
<li>Add validation and dependencies for Ubuntu 20.04 distribution to packaging script (#13993)</li>
|
||||
<li>Add .NET install workaround for RTM (#13991)</li>
|
||||
<li>Move to ESRP signing for Windows files (#13988)</li>
|
||||
<li>Update <code>PSReadLine</code> version to <code>2.1.0</code> (#13975)</li>
|
||||
<li>Bump .NET to version <code>5.0.100-rtm.20526.5</code> (#13920)</li>
|
||||
<li>Update script to use .NET RTM feeds (#13927)</li>
|
||||
<li>Add checkout step to release build templates (#13840)</li>
|
||||
<li>Turn on <code>/features:strict</code> for all projects (#13383) (Thanks @xtqqczze!)</li>
|
||||
<li>Bump <code>NJsonSchema</code> to <code>10.2.2</code> (#13722, #13751)</li>
|
||||
<li>Add flag to make Linux script publish to production repo (#13714)</li>
|
||||
<li>Bump <code>Markdig.Signed</code> to <code>0.22.0</code> (#13741)</li>
|
||||
<li>Use new release script for Linux packages (#13705)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Fix links to LTS versions for Windows (#14070)
|
||||
- Fix `crontab` formatting in example doc (#13712) (Thanks @dgoldman-msft!)
|
||||
|
||||
[7.2.0-preview.1]: https://github.com/PowerShell/PowerShell/compare/v7.1.0...v7.2.0-preview.1
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
{
|
||||
"sdk": {
|
||||
"channel": "6.0.1xx",
|
||||
"quality": "signed",
|
||||
"qualityFallback": "daily",
|
||||
"packageVersionPattern": "6.0.0",
|
||||
"channel": "release/6.0.1xx-preview4",
|
||||
"packageVersionPattern": "6.0.0-preview.4",
|
||||
"sdkImageVersion": "6.0.100",
|
||||
"nextChannel": "6.0.1xx",
|
||||
"azureFeed": "",
|
||||
"sdkImageOverride": ""
|
||||
"nextChannel": "6.0.1xx-preview5/daily"
|
||||
},
|
||||
"internalfeed" : {
|
||||
"url": ""
|
||||
"url": null
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,17 +136,15 @@
|
|||
<Copyright>(c) Microsoft Corporation.</Copyright>
|
||||
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<LangVersion>10.0</LangVersion>
|
||||
<LangVersion>9.0</LangVersion>
|
||||
<PublishReadyToRun Condition=" '$(Configuration)' != 'Debug' ">true</PublishReadyToRun>
|
||||
<PublishReadyToRunEmitSymbols>true</PublishReadyToRunEmitSymbols>
|
||||
<PublishReadyToRunUseCrossgen2>false</PublishReadyToRunUseCrossgen2>
|
||||
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
|
||||
<NeutralLanguage>en-US</NeutralLanguage>
|
||||
<DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>
|
||||
<DisableImplicitNamespaceImports_DotNet>true</DisableImplicitNamespaceImports_DotNet>
|
||||
|
||||
<DelaySign>true</DelaySign>
|
||||
<AssemblyOriginatorKeyFile>../signing/visualstudiopublic.snk</AssemblyOriginatorKeyFile>
|
||||
|
|
112
README.md
112
README.md
|
@ -30,19 +30,18 @@ You can download and install a PowerShell package for any of the following platf
|
|||
| -------------------------------------------| ------------------------| ------------------------| ----------------------| ------------------------------|
|
||||
| [Windows (x64)][corefx-win] | [.msi][lts-windows-64] | [.msi][rl-windows-64] | [.msi][pv-windows-64] | [Instructions][in-windows] |
|
||||
| [Windows (x86)][corefx-win] | [.msi][lts-windows-86] | [.msi][rl-windows-86] | [.msi][pv-windows-86] | [Instructions][in-windows] |
|
||||
| [Ubuntu 20.04][corefx-linux] | [.deb][lts-deb] | [.deb][rl-ubuntu20] | [.deb][pv-deb] | [Instructions][in-ubuntu20] |
|
||||
| [Ubuntu 18.04][corefx-linux] | [.deb][lts-deb] | [.deb][rl-ubuntu18] | [.deb][pv-deb] | [Instructions][in-ubuntu18] |
|
||||
| [Ubuntu 16.04][corefx-linux] | [.deb][lts-deb] | [.deb][rl-ubuntu16] | [.deb][pv-deb] | [Instructions][in-ubuntu16] |
|
||||
| [Debian 9][corefx-linux] | [.deb][lts-deb] | [.deb][rl-debian9] | [.deb][pv-deb] | [Instructions][in-deb9] |
|
||||
| [Debian 10][corefx-linux] | [.deb][lts-deb] | [.deb][rl-debian10] | [.deb][pv-deb] | [Instructions][in-deb9] |
|
||||
| [Debian 11][corefx-linux] | [.deb][lts-deb] | [.deb][rl-debian11] | [.deb][pv-deb] | |
|
||||
| [CentOS 7][corefx-linux] | [.rpm][lts-rh] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-centos] |
|
||||
| [CentOS 8][corefx-linux] | [.rpm][lts-rh] | [.rpm][rl-centos8] | [.rpm][pv-rpm] | |
|
||||
| [Red Hat Enterprise Linux 7][corefx-linux] | [.rpm][lts-rh] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-rhel7] |
|
||||
| [openSUSE 42.3][corefx-linux] | [.rpm][lts-rh] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-opensuse] |
|
||||
| [Fedora 30][corefx-linux] | [.rpm][lts-rh] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-fedora] |
|
||||
| [macOS 10.13+ (x64)][corefx-macos] | [.pkg][lts-macos] | [.pkg][rl-macos] | [.pkg][pv-macos] | [Instructions][in-macos] |
|
||||
| [macOS 10.13+ (arm64)][corefx-macos] | [.pkg][lts-macos-arm64] | [.pkg][rl-macos-arm64] | [.pkg][pv-macos-arm64]| [Instructions][in-macos] |
|
||||
| [Ubuntu 20.04][corefx-linux] | | [.deb][rl-ubuntu20] | [.deb][pv-deb] | [Instructions][in-ubuntu20] |
|
||||
| [Ubuntu 18.04][corefx-linux] | [.deb][lts-ubuntu18] | [.deb][rl-ubuntu18] | [.deb][pv-deb] | [Instructions][in-ubuntu18] |
|
||||
| [Ubuntu 16.04][corefx-linux] | [.deb][lts-ubuntu16] | [.deb][rl-ubuntu16] | [.deb][pv-deb] | [Instructions][in-ubuntu16] |
|
||||
| [Debian 9][corefx-linux] | [.deb][lts-debian9] | [.deb][rl-debian9] | [.deb][pv-deb] | [Instructions][in-deb9] |
|
||||
| [Debian 10][corefx-linux] | [.deb][lts-debian10] | [.deb][rl-debian10] | [.deb][pv-deb] | [Instructions][in-deb9] |
|
||||
| [Debian 11][corefx-linux] | | [.deb][rl-debian11] | [.deb][pv-deb] | |
|
||||
| [CentOS 7][corefx-linux] | [.rpm][lts-centos] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-centos] |
|
||||
| [CentOS 8][corefx-linux] | [.rpm][lts-centos8] | [.rpm][rl-centos8] | [.rpm][pv-rpm] | |
|
||||
| [Red Hat Enterprise Linux 7][corefx-linux] | [.rpm][lts-centos] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-rhel7] |
|
||||
| [openSUSE 42.3][corefx-linux] | [.rpm][lts-centos] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-opensuse] |
|
||||
| [Fedora 30][corefx-linux] | [.rpm][lts-centos] | [.rpm][rl-centos] | [.rpm][pv-rpm] | [Instructions][in-fedora] |
|
||||
| [macOS 10.13+][corefx-macos] | [.pkg][lts-macos] | [.pkg][rl-macos] | [.pkg][pv-macos] | [Instructions][in-macos] |
|
||||
| Docker | | | | [Instructions][in-docker] |
|
||||
|
||||
You can download and install a PowerShell package for any of the following platforms, **which are supported by the community.**
|
||||
|
@ -58,55 +57,53 @@ You can also download the PowerShell binary archives for Windows, macOS and Linu
|
|||
| Platform | Downloads (stable) | Downloads (preview) | How to Install |
|
||||
| ---------------| --------------------------------------------------- | ------------------------------------------------| -----------------------------------------------|
|
||||
| Windows | [32-bit][rl-winx86-zip]/[64-bit][rl-winx64-zip] | [32-bit][pv-winx86-zip]/[64-bit][pv-winx64-zip] | [Instructions][in-windows-zip] |
|
||||
| macOS (x64) | [64-bit][rl-macos-tar] | [64-bit][pv-macos-tar] | [Instructions][in-tar-macos] |
|
||||
| macOS (arm64) | [64-bit][rl-macos-tar-arm64] | [64-bit][pv-macos-tar-arm64] | [Instructions][in-tar-macos] |
|
||||
| macOS | [64-bit][rl-macos-tar] | [64-bit][pv-macos-tar] | [Instructions][in-tar-macos] |
|
||||
| Linux | [64-bit][rl-linux-tar] | [64-bit][pv-linux-tar] | [Instructions][in-tar-linux] |
|
||||
| Windows (Arm) | [64-bit][rl-winarm64] (preview) | [64-bit][pv-winarm64] | [Instructions][in-arm] |
|
||||
| Raspbian (Arm) | [32-bit][rl-arm32]/[64-bit][rl-arm64] | [32-bit][pv-arm32]/[64-bit][pv-arm64] | [Instructions][in-raspbian] |
|
||||
|
||||
[lts-windows-86]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x86.msi
|
||||
[lts-windows-64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x64.msi
|
||||
[lts-deb]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-lts_7.2.0-1.deb_amd64.deb
|
||||
[lts-rh]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-lts-7.2.0-1.rh.x86_64.rpm
|
||||
[lts-macos]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-lts-7.2.0-osx-x64.pkg
|
||||
[lts-macos-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-lts-7.2.0-osx-arm64.pkg
|
||||
[lts-windows-86]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/PowerShell-7.0.6-win-x86.msi
|
||||
[lts-windows-64]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/PowerShell-7.0.6-win-x64.msi
|
||||
[lts-ubuntu18]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/powershell-lts_7.0.6-1.ubuntu.18.04_amd64.deb
|
||||
[lts-ubuntu16]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/powershell-lts_7.0.6-1.ubuntu.16.04_amd64.deb
|
||||
[lts-debian9]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/powershell-lts_7.0.6-1.debian.9_amd64.deb
|
||||
[lts-debian10]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/powershell-lts_7.0.6-1.debian.10_amd64.deb
|
||||
[lts-centos]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/powershell-lts-7.0.6-1.rhel.7.x86_64.rpm
|
||||
[lts-centos8]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/powershell-lts-7.0.6-1.centos.8.x86_64.rpm
|
||||
[lts-macos]: https://github.com/PowerShell/PowerShell/releases/download/v7.0.6/powershell-lts-7.0.6-osx-x64.pkg
|
||||
|
||||
[rl-windows-64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x64.msi
|
||||
[rl-windows-86]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x86.msi
|
||||
[rl-ubuntu20]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell_7.2.0-1.deb_amd64.deb
|
||||
[rl-ubuntu18]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell_7.2.0-1.deb_amd64.deb
|
||||
[rl-ubuntu16]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell_7.2.0-1.deb_amd64.deb
|
||||
[rl-debian9]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell_7.2.0-1.deb_amd64.deb
|
||||
[rl-debian10]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell_7.2.0-1.deb_amd64.deb
|
||||
[rl-debian11]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell_7.2.0-1.deb_amd64.deb
|
||||
[rl-centos]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-1.rh.x86_64.rpm
|
||||
[rl-centos8]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-1.rh.x86_64.rpm
|
||||
[rl-macos]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-osx-x64.pkg
|
||||
[rl-macos-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-osx-arm64.pkg
|
||||
[rl-winarm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-arm64.zip
|
||||
[rl-winx86-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x86.zip
|
||||
[rl-winx64-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/PowerShell-7.2.0-win-x64.zip
|
||||
[rl-macos-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-osx-x64.tar.gz
|
||||
[rl-macos-tar-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-osx-arm64.tar.gz
|
||||
[rl-linux-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-linux-x64.tar.gz
|
||||
[rl-arm32]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-linux-arm32.tar.gz
|
||||
[rl-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0/powershell-7.2.0-linux-arm64.tar.gz
|
||||
[rl-windows-64]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/PowerShell-7.1.3-win-x64.msi
|
||||
[rl-windows-86]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/PowerShell-7.1.3-win-x86.msi
|
||||
[rl-ubuntu20]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell_7.1.3-1.ubuntu.20.04_amd64.deb
|
||||
[rl-ubuntu18]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell_7.1.3-1.ubuntu.18.04_amd64.deb
|
||||
[rl-ubuntu16]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell_7.1.3-1.ubuntu.16.04_amd64.deb
|
||||
[rl-debian9]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell_7.1.3-1.debian.9_amd64.deb
|
||||
[rl-debian10]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell_7.1.3-1.debian.10_amd64.deb
|
||||
[rl-debian11]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell_7.1.3-1.debian.11_amd64.deb
|
||||
[rl-centos]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-1.rhel.7.x86_64.rpm
|
||||
[rl-centos8]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-1.centos.8.x86_64.rpm
|
||||
[rl-macos]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-osx-x64.pkg
|
||||
[rl-winarm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/PowerShell-7.1.3-win-arm64.zip
|
||||
[rl-winx86-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/PowerShell-7.1.3-win-x86.zip
|
||||
[rl-winx64-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/PowerShell-7.1.3-win-x64.zip
|
||||
[rl-macos-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-osx-x64.tar.gz
|
||||
[rl-linux-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-linux-x64.tar.gz
|
||||
[rl-arm32]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-linux-arm32.tar.gz
|
||||
[rl-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-linux-arm64.tar.gz
|
||||
[rl-snap]: https://snapcraft.io/powershell
|
||||
|
||||
[pv-windows-64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/PowerShell-7.2.0-rc.1-win-x64.msi
|
||||
[pv-windows-86]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/PowerShell-7.2.0-rc.1-win-x86.msi
|
||||
[pv-deb]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-preview_7.2.0-rc.1-1.deb_amd64.deb
|
||||
[pv-rpm]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-preview-7.2.0_rc.1-1.rh.x86_64.rpm
|
||||
[pv-macos]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-7.2.0-rc.1-osx-x64.pkg
|
||||
[pv-macos-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-7.2.0-rc.1-osx-arm64.pkg
|
||||
[pv-winarm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/PowerShell-7.2.0-rc.1-win-arm64.zip
|
||||
[pv-winx86-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/PowerShell-7.2.0-rc.1-win-x86.zip
|
||||
[pv-winx64-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/PowerShell-7.2.0-rc.1-win-x64.zip
|
||||
[pv-macos-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-7.2.0-rc.1-osx-x64.tar.gz
|
||||
[pv-macos-tar-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-7.2.0-rc.1-osx-arm64.tar.gz
|
||||
[pv-linux-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-7.2.0-rc.1-linux-x64.tar.gz
|
||||
[pv-arm32]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-7.2.0-rc.1-linux-arm32.tar.gz
|
||||
[pv-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-rc.1/powershell-7.2.0-rc.1-linux-arm64.tar.gz
|
||||
[pv-windows-64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/PowerShell-7.2.0-preview.7-win-x64.msi
|
||||
[pv-windows-86]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/PowerShell-7.2.0-preview.7-win-x86.msi
|
||||
[pv-deb]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/powershell-preview_7.2.0-preview.7-1.deb_amd64.deb
|
||||
[pv-rpm]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/powershell-preview-7.2.0_preview.7-1.rh.x86_64.rpm
|
||||
[pv-macos]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/powershell-7.2.0-preview.7-osx-x64.pkg
|
||||
[pv-winarm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/PowerShell-7.2.0-preview.7-win-arm64.zip
|
||||
[pv-winx86-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/PowerShell-7.2.0-preview.7-win-x86.zip
|
||||
[pv-winx64-zip]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/PowerShell-7.2.0-preview.7-win-x64.zip
|
||||
[pv-macos-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/powershell-7.2.0-preview.7-osx-x64.tar.gz
|
||||
[pv-linux-tar]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/powershell-7.2.0-preview.7-linux-x64.tar.gz
|
||||
[pv-arm32]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/powershell-7.2.0-preview.7-linux-arm32.tar.gz
|
||||
[pv-arm64]: https://github.com/PowerShell/PowerShell/releases/download/v7.2.0-preview.7/powershell-7.2.0-preview.7-linux-arm64.tar.gz
|
||||
[pv-snap]: https://snapcraft.io/powershell-preview
|
||||
|
||||
[in-windows]: https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-windows
|
||||
|
@ -239,8 +236,9 @@ License: By requesting and using the Container OS Image for Windows containers,
|
|||
|
||||
### Telemetry
|
||||
|
||||
Please visit our [about_Telemetry](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_telemetry)
|
||||
topic to read details about telemetry gathered by PowerShell.
|
||||
By default, PowerShell collects the OS description and the version of PowerShell (equivalent to `$PSVersionTable.OS` and `$PSVersionTable.GitCommitId`) using [Application Insights](https://azure.microsoft.com/services/application-insights/).
|
||||
To opt-out of sending telemetry, create an environment variable called `POWERSHELL_TELEMETRY_OPTOUT` set to a value of `1` before starting PowerShell from the installed location.
|
||||
The telemetry we collect falls under the [Microsoft Privacy Statement](https://privacy.microsoft.com/privacystatement/).
|
||||
|
||||
## Governance
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,42 +1,46 @@
|
|||
## Used to generate a new TPN
|
||||
## Copy this into the additional attributions fields
|
||||
## Copy everything below here, but do not include this line
|
||||
|
||||
-------------------------------------------------------------------
|
||||
---------------------------------------------
|
||||
File: PSReadLine
|
||||
---------------------------------------------
|
||||
|
||||
-------------------------------------------------------------------
|
||||
https://github.com/lzybkr/PSReadLine
|
||||
|
||||
Additional -
|
||||
Copyright (c) 2013, Jason Shirk
|
||||
|
||||
-------------------------------------------------
|
||||
Microsoft.PowerShell.Archive
|
||||
-------------------------------------------------
|
||||
All rights reserved.
|
||||
|
||||
Copyright (c) 2016 Microsoft Corporation.
|
||||
BSD License
|
||||
|
||||
The MIT License (MIT)
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
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:
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
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.
|
||||
----------------------------------------------
|
||||
File: Hashtables from ConvertFrom-json
|
||||
----------------------------------------------
|
||||
|
||||
-------------------------------------------------
|
||||
Microsoft.Management.Infrastructure.Runtime.Unix
|
||||
Microsoft.Management.Infrastructure
|
||||
-------------------------------------------------
|
||||
https://stackoverflow.com/questions/22002748/hashtables-from-convertfrom-json-have-different-type-from-powershells-built-in-h
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
Copyright (c) 2015 Dave Wyatt. All rights reserved.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
|
@ -48,6 +52,33 @@ The above copyright notice and this permission notice shall be included in all c
|
|||
|
||||
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.
|
||||
|
||||
-------------------------------------------------
|
||||
PackageManagement
|
||||
-------------------------------------------------
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
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.
|
||||
|
||||
--------------------------------------------------------
|
||||
• NuGet.Common
|
||||
• NuGet.Configuration
|
||||
|
@ -77,116 +108,3 @@ Unless required by applicable law or agreed to in writing, software distributed
|
|||
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations under the License.
|
||||
|
||||
-------------------------------------------------
|
||||
PackageManagement
|
||||
-------------------------------------------------
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
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.
|
||||
|
||||
-------------------------------------------------
|
||||
PowerShellGet
|
||||
-------------------------------------------------
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
All rights reserved.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
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.
|
||||
|
||||
---------------------------------------------
|
||||
File: PSReadLine
|
||||
---------------------------------------------
|
||||
|
||||
https://github.com/PowerShell/PSReadLine
|
||||
|
||||
Copyright (c) 2013, Jason Shirk
|
||||
|
||||
All rights reserved.
|
||||
|
||||
BSD License
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
-------------------------------------------------
|
||||
ThreadJob
|
||||
-------------------------------------------------
|
||||
|
||||
Copyright (c) 2018 Paul Higinbotham
|
||||
|
||||
MIT License
|
||||
|
||||
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.
|
||||
|
|
|
@ -13,6 +13,11 @@
|
|||
<?define IconPath = "assets\Powershell_black.ico"?>
|
||||
<?endif?>
|
||||
<!-- UpgradeCode GUID MUST REMAIN SAME THROUGHOUT ALL VERSIONS, otherwise, updates won't occur. -->
|
||||
<!-- UpgradeCode reserved for the future, if you have to add any upgrade code other than these
|
||||
Please work with @TravisEz13 to update the Microsoft Update logic
|
||||
811f0d06-4594-4797-bd42-130b27649a97
|
||||
b3629b9d-907d-43f9-9f51-488689c31cbb
|
||||
-->
|
||||
<?if $(sys.BUILDARCH)=x64?>
|
||||
<?define ExplorerContextMenuDialogText = "&$(var.ProductName) $(var.SimpleProductVersion)"?>
|
||||
<?define UpgradeCodePreview = "39243d76-adaf-42b1-94fb-16ecf83237c8"?>
|
||||
|
@ -84,16 +89,6 @@
|
|||
Execute="deferred"
|
||||
Return="ignore"
|
||||
Impersonate="no" />
|
||||
<SetProperty Id="EnableMU"
|
||||
Before="EnableMU"
|
||||
Sequence="execute"
|
||||
Value=""[VersionFolder]pwsh.exe" -NoProfile -ExecutionPolicy Bypass -Command "$null=(New-Object -ComObject Microsoft.Update.ServiceManager).AddService2('7971f918-a847-4430-9279-4a52d1efe18d', 7, '')"" />
|
||||
<CustomAction Id="EnableMU"
|
||||
BinaryKey="WixCA"
|
||||
DllEntry="CAQuietExec"
|
||||
Execute="deferred"
|
||||
Return="ignore"
|
||||
Impersonate="no" />
|
||||
<InstallExecuteSequence>
|
||||
<!-- Do not remove shortcuts on upgrade to preserve user shortcuts pinned to Taskbar, see https://stackoverflow.com/a/33402698/1810304 -->
|
||||
<RemoveShortcuts>Installed AND NOT UPGRADINGPRODUCTCODE</RemoveShortcuts>
|
||||
|
@ -103,9 +98,6 @@
|
|||
<Custom Action="EnablePSRemoting" After="InstallFiles">
|
||||
<![CDATA[NOT Installed AND (ENABLE_PSREMOTING=1)]]>
|
||||
</Custom>
|
||||
<Custom Action="EnableMU" After="InstallFiles">
|
||||
<![CDATA[NOT Installed AND (ENABLE_MU=1)]]>
|
||||
</Custom>
|
||||
</InstallExecuteSequence>
|
||||
<UI>
|
||||
<Dialog Id="MyExitDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">
|
||||
|
@ -148,7 +140,6 @@
|
|||
<Feature Id="ProductFeature" Title="PowerShell" Level="1">
|
||||
<ComponentGroupRef Id="ApplicationFiles"/>
|
||||
<ComponentRef Id="ApplicationProgramsMenuShortcut"/>
|
||||
<ComponentRef Id="MURegistryEntries"/>
|
||||
<ComponentRef Id="RegistryEntries"/>
|
||||
<ComponentRef Id="SharedRegistryEntries"/>
|
||||
<ComponentRef Id="SetPath"/>
|
||||
|
@ -190,13 +181,6 @@
|
|||
<!-- Should retain component GUID since this is a shared, non-file, non-registry resource. -->
|
||||
<Environment Id="PowerShellDistributionChannel" Action="create" Name="POWERSHELL_DISTRIBUTION_CHANNEL" Permanent="no" System="yes" Value="MSI:[WINDOWS_PRODUCT_NAME]"/>
|
||||
</Component>
|
||||
<Component Id="MURegistryEntries">
|
||||
<Condition>USE_MU=1</Condition>
|
||||
<!-- Create registry key to allow opt-out of MU servicing without opting out of MU completely. -->
|
||||
<RegistryKey Root="HKLM" Key="Software\Microsoft\PowerShellCore" Action="create" ForceCreateOnInstall="yes">
|
||||
<RegistryValue Type="integer" Value="1" Name="UseMU" KeyPath="yes"/>
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
<Component Id="RegistryEntries">
|
||||
<!-- create key for easy detection of a particular version of a powershell core package
|
||||
The upgrade code is used in the key because it will change when we allow SxS -->
|
||||
|
@ -338,41 +322,6 @@
|
|||
</UI>
|
||||
</Fragment>
|
||||
|
||||
<!-- Microsoft Update Menu Dialog -->
|
||||
<Fragment>
|
||||
<UI>
|
||||
<Property Id="USE_MU" Value="1" />
|
||||
<Property Id="ENABLE_MU" Value="1" />
|
||||
<Dialog Id="MuDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">
|
||||
<!-- Banner -->
|
||||
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="yes" Text="!(loc.InstallDirDlgBannerBitmap)"/>
|
||||
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="30" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Use Microsoft Update to help keep your computer secure and up to date" TabSkip="yes" />
|
||||
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" TabSkip="yes" />
|
||||
<Control Id="Description" Type="Text" X="25" Y="54" Width="280" Height="100" Transparent="yes" NoPrefix="yes" Text="Microsoft Update helps keep your computer secure and up to date for Windows and other Microsoft products, including PowerShell 7. Updates will be delivered based on your current update settings. You can review or change these settings from the Windows Update control panel." TabSkip="yes" />
|
||||
<!-- If the checkboxes are defined first, then they are first in the tab order and can be ticked and unticked using the spacebar -->
|
||||
<Control Id="UseMuCheckBox" Type="CheckBox" X="20" Y="100" Width="290" Height="27" Property="USE_MU" CheckBoxValue="1" Text="Enable updating PowerShell through Microsoft Update or WSUS (recommended)"/>
|
||||
<Control Id="EnableMuCheckBox" Type="CheckBox" X="20" Y="130" Width="290" Height="17" Property="ENABLE_MU" CheckBoxValue="1" Text="Use Microsoft Update when I check for updates (recommended)">
|
||||
</Control>
|
||||
<Control Id="MuWarningText" Type="Text" X="20" Y="160" Width="290" Height="27" Text="Without Microsoft Update enabled, you will need to use another update solution like WSUS or SCCM in order to receive automatic updates.">
|
||||
<Condition Action="hide"><![CDATA[ENABLE_MU="1" OR USE_MU<>"1"]]></Condition>
|
||||
<Condition Action="show"><![CDATA[ENABLE_MU<>"1" AND USE_MU="1"]]></Condition>
|
||||
</Control>
|
||||
<Control Id="MuFAQ" Type="Hyperlink" X="20" Y="190" Width="214" Height="17">
|
||||
<Text><![CDATA[<a href="https://aka.ms/PowerShell-Microsoft-Update-FAQ">See the Microsoft Update FAQ</a>]]></Text>
|
||||
</Control>
|
||||
<Control Id="PrivacyLink" Type="Hyperlink" X="20" Y="210" Width="290" Height="17">
|
||||
<Text><![CDATA[<a href="https://aka.ms/PowerShell-Microsoft-Update-Privacy-Statement">Read the Microsoft Update Privacy Statement</a>]]></Text>
|
||||
</Control>
|
||||
<!-- divider and bottom buttons -->
|
||||
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" TabSkip="yes"/>
|
||||
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)"/>
|
||||
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Cancel="yes" Default="yes" Text="!(loc.WixUINext)"/>
|
||||
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
|
||||
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
|
||||
</Control>
|
||||
</Dialog>
|
||||
</UI>
|
||||
</Fragment>
|
||||
<!-- Customized version of WixUI_InstallDir, which is necessary to add custom dialogs. https://github.com/wixtoolset/wix3/blob/master/src/ext/UIExtension/wixlib/WixUI_InstallDir.wxs -->
|
||||
<Fragment>
|
||||
<UI Id="CustomWixUI_InstallDir">
|
||||
|
@ -381,7 +330,6 @@
|
|||
- WixUI_WelcomeDlg
|
||||
- WixUI_InstallDirDlg
|
||||
- ExplorerContextMenuDialog
|
||||
- MuDialog
|
||||
- WixUI_VerifyReadyDlg
|
||||
- WixUI_DiskCostDlg
|
||||
Maintenance dialog sequence:
|
||||
|
@ -421,9 +369,7 @@
|
|||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
|
||||
|
||||
<Publish Dialog="ExplorerContextMenuDialog" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
|
||||
<Publish Dialog="ExplorerContextMenuDialog" Control="Next" Event="NewDialog" Value="MuDialog">1</Publish>
|
||||
<Publish Dialog="MuDialog" Control="Back" Event="NewDialog" Value="ExplorerContextMenuDialog">1</Publish>
|
||||
<Publish Dialog="MuDialog" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="2">1</Publish>
|
||||
<Publish Dialog="ExplorerContextMenuDialog" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
|
||||
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
|
||||
|
@ -434,7 +380,7 @@
|
|||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
|
||||
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MuDialog" Order="1">NOT Installed</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ExplorerContextMenuDialog" Order="1">NOT Installed</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
|
||||
|
||||
|
|
|
@ -1608,6 +1608,9 @@
|
|||
<Component Id="cmp72C41225E0B4457C8CB5F4C5FE6E3187" Guid="{ee32f38f-14ee-4a85-914f-d02522cc3635}">
|
||||
<File Id="fil04B0F83A7AED430A86A7E6E3E99AB45D" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Formats.Asn1.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp49588B1BA09F4BBCA352B162F387AAF1">
|
||||
<File Id="fil77BEE4F2A1A44842B4135984E1D71538" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Net.Quic.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpEE26930D65E346FDAE1B3E07F5DBEF77">
|
||||
<File Id="filBC93A3F22F78439F8D4173E4C64ACFDC" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Text.Encodings.Web.dll" />
|
||||
</Component>
|
||||
|
@ -1617,27 +1620,6 @@
|
|||
<Component Id="cmp68158D010ECB439582D041355BFACCBB">
|
||||
<File Id="filB8694A0190CA422E9462870B514B813C" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Text.Encoding.CodePages.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp690F24F04C044127A61754363A4D63E3">
|
||||
<File Id="fil5BF6895A87684AC088DAB3759AA465BA" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\Microsoft.Win32.Registry.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpFAD6557C4AEC48B89DDC4E6485C020C4">
|
||||
<File Id="fil47E7A45E0FDB48248C3741FCD3DA2368" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Security.AccessControl.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpB5458B36303A472B80582AF1C2E7FB94">
|
||||
<File Id="fil676439EF2BA242189585EA6953BF5A8C" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.IO.FileSystem.AccessControl.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp0EBD333D501A45089F58504074E229E7">
|
||||
<File Id="fil474FACBE1BAA4CE6BBD7ED5CB4471A82" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.IO.Pipes.AccessControl.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpD11E9CA5069045578BA5D89C86F7FDEF">
|
||||
<File Id="filB16D0834E1574612BF1B8D301434692C" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Security.Cryptography.Cng.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp708913639F7A46E784CC0FA862A1A2CE">
|
||||
<File Id="filC05CED23C9584EFE897E9919B0014851" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Security.Principal.Windows.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpA75DEF5617C54DA1937CB37D5824BF79">
|
||||
<File Id="fil3EE6096BD3C8407685E881F3CE6BF5C1" KeyPath="yes" Source="$(var.ProductSourcePath)\ref\System.Security.Cryptography.OpenSsl.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dirC72EEAF9434D4AD066E0F4D20D8E816C" Name="en-US">
|
||||
<Component Id="cmpDC2EF4541FA5A2E63F36A8CD6C5FA51B">
|
||||
|
@ -1987,12 +1969,6 @@
|
|||
<Component Id="cmp57D197B18F1F4A6AAB704B28CF61B535">
|
||||
<File Id="fil71B3802CB88348AC888B9902212CADA2" KeyPath="yes" Source="$(var.ProductSourcePath)\cs\Microsoft.VisualBasic.Forms.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp690BAC3241424F59B5D30DE0E846D03E">
|
||||
<File Id="filDBDCB9BFFF9F425B8CF7F7A5F05D42B1" KeyPath="yes" Source="$(var.ProductSourcePath)\cs\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp5B67AE2852E04C26970FD2016CA76E07">
|
||||
<File Id="fil42D10EBCB41B426BAFBF26BB053A9E84" KeyPath="yes" Source="$(var.ProductSourcePath)\cs\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dirEA0127D6607E68B508B9DB9CE315A2CE" Name="de">
|
||||
<Component Id="cmpF2941A91B17EEA22CD6DAB34693D9AC0">
|
||||
|
@ -2052,12 +2028,6 @@
|
|||
<Component Id="cmpB40EE0CC916B4928987F62F5909AE709">
|
||||
<File Id="filA21E2DDEAEAE4E0D94346C5671D9D29F" KeyPath="yes" Source="$(var.ProductSourcePath)\de\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpB43ED7BA30C844E2B5C38F7B747EEFDC">
|
||||
<File Id="filE106C77258F047E8A384E1E75B7EF6B8" KeyPath="yes" Source="$(var.ProductSourcePath)\de\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp777DF202EF2542F2ACFCCF0481E8D6EE">
|
||||
<File Id="filFCCE95BFDDD540E1AA243049872EF5D0" KeyPath="yes" Source="$(var.ProductSourcePath)\de\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir5B65D7353FBDCD17AB60A674B3FDF93B" Name="es">
|
||||
<Component Id="cmpBEB5F3CF75675537751F0D0B32125BF1">
|
||||
|
@ -2117,12 +2087,6 @@
|
|||
<Component Id="cmpB944176DE7924A268269903DC0B5D510">
|
||||
<File Id="filBA47C41DFB3849228624C99949FB61FC" KeyPath="yes" Source="$(var.ProductSourcePath)\es\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpCC4A42AA70EE4418926986F5A4B8D3FA">
|
||||
<File Id="fil186134FCB6984F1484A8308DF4F2B917" KeyPath="yes" Source="$(var.ProductSourcePath)\es\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpF96C036EAE3B436DB096888697193FAF">
|
||||
<File Id="fil761ECB84FAFA4674AB5712669532C569" KeyPath="yes" Source="$(var.ProductSourcePath)\es\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir23063512FA8C884E1B4F08FDF0A44516" Name="fr">
|
||||
<Component Id="cmp1DEB513A065956086898BCDACC5887B6">
|
||||
|
@ -2182,12 +2146,6 @@
|
|||
<Component Id="cmp7B5948A1A366409F99B871F0E772B945">
|
||||
<File Id="filCCA6A5EE7ED9459C93A8C05B0A93880F" KeyPath="yes" Source="$(var.ProductSourcePath)\fr\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpE7BE9D8F63E04798870E57BA1EABB9A5">
|
||||
<File Id="fil93C038D9EED945F5A984CF3C98EDB72B" KeyPath="yes" Source="$(var.ProductSourcePath)\fr\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp789F545EA2CB4AC5A2688CF730A5F6B4">
|
||||
<File Id="fil70A83BE26FCF4905B220521A6B75198D" KeyPath="yes" Source="$(var.ProductSourcePath)\fr\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir42B03840AE19D1498CC524F2B6C0389D" Name="it">
|
||||
<Component Id="cmp3EC91B8BF4282E77113321E5D1ED27B2">
|
||||
|
@ -2247,12 +2205,6 @@
|
|||
<Component Id="cmp28349C4ACD6D42D3967853E0A1D7DC4E">
|
||||
<File Id="filDF0828378FCA4CAC8F7DA90DC4F802CC" KeyPath="yes" Source="$(var.ProductSourcePath)\it\Microsoft.VisualBasic.Forms.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp166B17F72C954B0087DF991E560B399A">
|
||||
<File Id="fil528F0FBF10C246568FCE1F5B10E541D1" KeyPath="yes" Source="$(var.ProductSourcePath)\it\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp0173AE0CBFA44C269D93361F6C98F99B">
|
||||
<File Id="fil3767F5D3C1264EC596A9F335355521C6" KeyPath="yes" Source="$(var.ProductSourcePath)\it\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir086D21BE309BE4C7081FC60E3524890F" Name="ja">
|
||||
<Component Id="cmp867E4E51FE7BC09AAD5D59FD76716FBC">
|
||||
|
@ -2312,12 +2264,6 @@
|
|||
<Component Id="cmp26335B5D1FE94E87A6B6EBD56A22C2B9">
|
||||
<File Id="filD585A7E89ACF4E4CB9DB8EAD4ACB7092" KeyPath="yes" Source="$(var.ProductSourcePath)\ja\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp529A2B5343FD466884FAF627E37C648D">
|
||||
<File Id="fil265B2A6A67EF4C6E8C17BDC3AAD8F729" KeyPath="yes" Source="$(var.ProductSourcePath)\ja\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp5492F78ACB1A4391BBED371FDFC06B9E">
|
||||
<File Id="fil54F7909E28E54B0687222DFD1D95009D" KeyPath="yes" Source="$(var.ProductSourcePath)\ja\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir43D6CAD5F3ED1060009918D06D84FB18" Name="ko">
|
||||
<Component Id="cmpAA026CCA623F0E8FB5BAE9F201C5B89D">
|
||||
|
@ -2377,12 +2323,6 @@
|
|||
<Component Id="cmpF4093A1E8AB94B43AB0F852EB647CE7F">
|
||||
<File Id="filCE28F42A54C24F5DA508904E60E23BBD" KeyPath="yes" Source="$(var.ProductSourcePath)\ko\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp4EE1633EE4864CE5B9015BF76BD31D14">
|
||||
<File Id="fil688FE14A80204086A48DE1BDC6591EB0" KeyPath="yes" Source="$(var.ProductSourcePath)\ko\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp3B07F4E4B6034F3284288C18F4638CA7">
|
||||
<File Id="filA52AFEA335CA41D98DB28358CE344EB5" KeyPath="yes" Source="$(var.ProductSourcePath)\ko\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dirE8201C74A7184D11233BAD63C6DB37BD" Name="pl">
|
||||
<Component Id="cmpA656A18FE14D3C8EB02C31AE474054E3">
|
||||
|
@ -2442,12 +2382,6 @@
|
|||
<Component Id="cmp705598FEC8EA43D7A9B239787BA5DB09">
|
||||
<File Id="filD8ECB20D015F4477ABD58505B48D02D1" KeyPath="yes" Source="$(var.ProductSourcePath)\pl\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpC8C68DB0DEE44CF49D98532D2C26395E">
|
||||
<File Id="fil1959B05E9F214DCFA6670F1892EE2E7D" KeyPath="yes" Source="$(var.ProductSourcePath)\pl\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpA8A66545C44F428BB552B55EEE353BB0">
|
||||
<File Id="filC0107BEFC31E4F9AB5037537B82D92EF" KeyPath="yes" Source="$(var.ProductSourcePath)\pl\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir47ED939BFA870848E0764E862CD6B4D7" Name="pt-BR">
|
||||
<Component Id="cmp3D20E940BDBF41630242C63011A80CE5">
|
||||
|
@ -2507,12 +2441,6 @@
|
|||
<Component Id="cmpFAA0CCBA17FE4E8FAE5FE4B5F679DF52">
|
||||
<File Id="fil6A42B845F64A4B2490AFFA079E0FB086" KeyPath="yes" Source="$(var.ProductSourcePath)\pt-BR\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpF3C18F07C6A148638CBC858EB02E3A6D">
|
||||
<File Id="filE6672552F1EE45D3AC3021E02DB093CB" KeyPath="yes" Source="$(var.ProductSourcePath)\pt-BR\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp0C4751F9D5C14419A45F234152D21DA9">
|
||||
<File Id="filF6E3EF23DEEF4D3BB3CA9C9D084FB607" KeyPath="yes" Source="$(var.ProductSourcePath)\pt-BR\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir37B8DFAE26D5F8E9948851F7D19F9E20" Name="ru">
|
||||
<Component Id="cmpFDCD51BD80926ABECCE27D0D66A47C8F">
|
||||
|
@ -2572,12 +2500,6 @@
|
|||
<Component Id="cmpA6FA5B27C61E482D8BBC5F1806D3B223">
|
||||
<File Id="filD4732A3ABFD342B890F75CCB5DE1CAE8" KeyPath="yes" Source="$(var.ProductSourcePath)\ru\System.Windows.Forms.Primitives.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpBD958F4B8F9146499DE2CA6321C65F96">
|
||||
<File Id="fil6A1EB9311FE546F69F28948794DC43BF" KeyPath="yes" Source="$(var.ProductSourcePath)\ru\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp6ADB50DF9F2D4BCA9E682AA6D1C7C03B">
|
||||
<File Id="fil7FECA5AED84D4C84968358F2C065BBEC" KeyPath="yes" Source="$(var.ProductSourcePath)\ru\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dirA7E9CC01273A7FED89FC8D3A368E00CC" Name="tr">
|
||||
<Component Id="cmp286FCD0B19BF06446A7274672A2491CA">
|
||||
|
@ -2637,12 +2559,6 @@
|
|||
<Component Id="cmp10773057C33543FA93222022DEC0847D">
|
||||
<File Id="filD2D3E621E5C54C5EBF044078C9073C2B" KeyPath="yes" Source="$(var.ProductSourcePath)\tr\Microsoft.VisualBasic.Forms.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp2B8239B905B146A69CD5D55A353AC131">
|
||||
<File Id="fil618AA430D1794A45A1D2BAA2451BECB2" KeyPath="yes" Source="$(var.ProductSourcePath)\tr\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp9FCFAEB797D9475C873E21B4B5A89E28">
|
||||
<File Id="filC4BDA69F669843EAAD7B6D8714CB1420" KeyPath="yes" Source="$(var.ProductSourcePath)\tr\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dir47E993970F74AA9F393D23500827D12C" Name="zh-Hans">
|
||||
<Component Id="cmp34C4A21743AC68583599BF2B139F39F2">
|
||||
|
@ -2702,12 +2618,6 @@
|
|||
<Component Id="cmp33364765C98D4BE09BD26DC1E6B95B86">
|
||||
<File Id="filB57C4C58936D4A7587CEA358B1AF57C2" KeyPath="yes" Source="$(var.ProductSourcePath)\zh-Hans\Microsoft.VisualBasic.Forms.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp582595AE8291444E837793472E0A259C">
|
||||
<File Id="fil7044506B31FA4130B2E375147032298D" KeyPath="yes" Source="$(var.ProductSourcePath)\zh-Hans\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpF24D3B9F29F84B4D9C47577B7926FC2E">
|
||||
<File Id="fil0AF0C0F933404EABBC94B10ED8740042" KeyPath="yes" Source="$(var.ProductSourcePath)\zh-Hans\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Id="dirB1FFB91EED6FD71EA866548CEA3A5298" Name="zh-Hant">
|
||||
<Component Id="cmpBC28FE8B65954B00AECA9C534639596D">
|
||||
|
@ -2767,12 +2677,6 @@
|
|||
<Component Id="cmpB9B22A80E70F414B8778B852E29D6492">
|
||||
<File Id="fil46C0F341CAB64BD390BEA73E1FE0F552" KeyPath="yes" Source="$(var.ProductSourcePath)\zh-Hant\Microsoft.VisualBasic.Forms.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp91C27D1766E84B8BB0F0C70888F03C2E">
|
||||
<File Id="filC888727CE05A4A9FA0DB66EE0F15097C" KeyPath="yes" Source="$(var.ProductSourcePath)\zh-Hant\System.Private.ServiceModel.resources.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpD55F08F6CF51498E9E8551067BA57040">
|
||||
<File Id="fil46C47F01171F45A898A7AD6A14ACE432" KeyPath="yes" Source="$(var.ProductSourcePath)\zh-Hant\System.Web.Services.Description.resources.dll" />
|
||||
</Component>
|
||||
</Directory>
|
||||
<Directory Name="Schemas" Id="dir1DB5B24CC3494785974A51F28F128069">
|
||||
<Directory Name="PSMaml" Id="dirAC38B2C7629B42DC836E01F976A10EC9">
|
||||
|
@ -3129,30 +3033,8 @@
|
|||
<Component Id="cmp3547A55EA9D04784B4CF2FC717447E16">
|
||||
<File Id="fil463DDA419769417A8D5A34C433E194F2" KeyPath="yes" Source="$(var.ProductSourcePath)\System.Speech.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp957498053E01454DA1E21E6D7317DCD6">
|
||||
<File Id="fil2AA6F0D8A51D4BB89F33F2B73AB12391" KeyPath="yes" Source="$(var.ProductSourcePath)\msquic.dll" />
|
||||
</Component>
|
||||
<Directory Name="_manifest" Id="dir81094D6B916B4BC8B1BA0E1DADB93A02">
|
||||
<Directory Name="spdx_2.2" Id="dirA36413FB3A534FDF8657D62728080E9F">
|
||||
<Component Id="cmp408A3AF905EB47ADA35FBC5A6B1465A0">
|
||||
<File Id="fil2146848B6ACB45FCA8E9C8FEE3BECDD8" KeyPath="yes" Source="$(var.ProductSourcePath)\_manifest\spdx_2.2\manifest.spdx.json" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Component Id="cmpA6276F9EAB41411AAAEC496E67A3DBAE">
|
||||
<File Id="filC840646CDE814D33B16DA3A5BBDDC88D" KeyPath="yes" Source="$(var.ProductSourcePath)\psoptions.json" />
|
||||
</Component>
|
||||
<Component Id="cmp3CF3F69A352F4438B8F2F73EBBD12996">
|
||||
<File Id="filB8F63979F96B4007BA9C0CE6BD3531D0" KeyPath="yes" Source="$(var.ProductSourcePath)\Microsoft.Extensions.ObjectPool.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp09155DA101E1424B98832A789E93E835">
|
||||
<File Id="fil7D748565EBF5423A84CFC6D25D21F43C" KeyPath="yes" Source="$(var.ProductSourcePath)\Microsoft.Bcl.AsyncInterfaces.dll" />
|
||||
</Component>
|
||||
<Component Id="cmp22840874A8C84AA796496634FBEBF09C">
|
||||
<File Id="fil2067B616D1FA4B30932A0240ABE06089" KeyPath="yes" Source="$(var.ProductSourcePath)\System.Web.Services.Description.dll" />
|
||||
</Component>
|
||||
<Component Id="cmpFB17CABA17334B2BBA1ED6CBF757B310">
|
||||
<File Id="fil1621E0132D2C49B89068166196075157" KeyPath="yes" Source="$(var.ProductSourcePath)\mscordaccore_$(var.FileArchitecture)_$(var.FileArchitecture)_6.0.21.52210.dll" />
|
||||
<Component Id="cmp378D79CF3DEC49979D7FA8A029141F0A">
|
||||
<File Id="filC405FF3776264022973EF4C1E94C8C3B" KeyPath="yes" Source="$(var.ProductSourcePath)\mscordaccore_$(var.FileArchitecture)_$(var.FileArchitecture)_6.0.21.25307.dll" />
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
</Fragment>
|
||||
|
@ -4124,52 +4006,14 @@
|
|||
<ComponentRef Id="cmpC0FFB3F4FB30438082D2DC0F4E4BF12D" />
|
||||
<ComponentRef Id="cmp1EBDE676D79B4B0DB859B3F601D78513" />
|
||||
<ComponentRef Id="cmpB92B70CEFC2F438386F97264FB436CDD" />
|
||||
<ComponentRef Id="cmp49588B1BA09F4BBCA352B162F387AAF1" />
|
||||
<ComponentRef Id="cmpEE26930D65E346FDAE1B3E07F5DBEF77" />
|
||||
<ComponentRef Id="cmp8635213A03B04AAE8E1BFB7EA85E0DB2" />
|
||||
<ComponentRef Id="cmp834F3E0C83664E92B0D115A39A8FAACB" />
|
||||
<ComponentRef Id="cmp2BB002B115C247FFB3353C80CAAC10B3" />
|
||||
<ComponentRef Id="cmp68158D010ECB439582D041355BFACCBB" />
|
||||
<ComponentRef Id="cmp3547A55EA9D04784B4CF2FC717447E16" />
|
||||
<ComponentRef Id="cmp690F24F04C044127A61754363A4D63E3" />
|
||||
<ComponentRef Id="cmpFAD6557C4AEC48B89DDC4E6485C020C4" />
|
||||
<ComponentRef Id="cmpB5458B36303A472B80582AF1C2E7FB94" />
|
||||
<ComponentRef Id="cmp0EBD333D501A45089F58504074E229E7" />
|
||||
<ComponentRef Id="cmpD11E9CA5069045578BA5D89C86F7FDEF" />
|
||||
<ComponentRef Id="cmp708913639F7A46E784CC0FA862A1A2CE" />
|
||||
<ComponentRef Id="cmpA75DEF5617C54DA1937CB37D5824BF79" />
|
||||
<ComponentRef Id="cmp957498053E01454DA1E21E6D7317DCD6" />
|
||||
<ComponentRef Id="cmp408A3AF905EB47ADA35FBC5A6B1465A0" />
|
||||
<ComponentRef Id="cmpA6276F9EAB41411AAAEC496E67A3DBAE" />
|
||||
<ComponentRef Id="cmp91C27D1766E84B8BB0F0C70888F03C2E" />
|
||||
<ComponentRef Id="cmpCC4A42AA70EE4418926986F5A4B8D3FA" />
|
||||
<ComponentRef Id="cmp690BAC3241424F59B5D30DE0E846D03E" />
|
||||
<ComponentRef Id="cmp3CF3F69A352F4438B8F2F73EBBD12996" />
|
||||
<ComponentRef Id="cmp09155DA101E1424B98832A789E93E835" />
|
||||
<ComponentRef Id="cmpC8C68DB0DEE44CF49D98532D2C26395E" />
|
||||
<ComponentRef Id="cmpB43ED7BA30C844E2B5C38F7B747EEFDC" />
|
||||
<ComponentRef Id="cmpF3C18F07C6A148638CBC858EB02E3A6D" />
|
||||
<ComponentRef Id="cmp582595AE8291444E837793472E0A259C" />
|
||||
<ComponentRef Id="cmp2B8239B905B146A69CD5D55A353AC131" />
|
||||
<ComponentRef Id="cmpBD958F4B8F9146499DE2CA6321C65F96" />
|
||||
<ComponentRef Id="cmp166B17F72C954B0087DF991E560B399A" />
|
||||
<ComponentRef Id="cmp529A2B5343FD466884FAF627E37C648D" />
|
||||
<ComponentRef Id="cmp4EE1633EE4864CE5B9015BF76BD31D14" />
|
||||
<ComponentRef Id="cmpE7BE9D8F63E04798870E57BA1EABB9A5" />
|
||||
<ComponentRef Id="cmp5B67AE2852E04C26970FD2016CA76E07" />
|
||||
<ComponentRef Id="cmp6ADB50DF9F2D4BCA9E682AA6D1C7C03B" />
|
||||
<ComponentRef Id="cmpA8A66545C44F428BB552B55EEE353BB0" />
|
||||
<ComponentRef Id="cmp5492F78ACB1A4391BBED371FDFC06B9E" />
|
||||
<ComponentRef Id="cmp22840874A8C84AA796496634FBEBF09C" />
|
||||
<ComponentRef Id="cmp0173AE0CBFA44C269D93361F6C98F99B" />
|
||||
<ComponentRef Id="cmpFB17CABA17334B2BBA1ED6CBF757B310" />
|
||||
<ComponentRef Id="cmpD55F08F6CF51498E9E8551067BA57040" />
|
||||
<ComponentRef Id="cmp777DF202EF2542F2ACFCCF0481E8D6EE" />
|
||||
<ComponentRef Id="cmpF24D3B9F29F84B4D9C47577B7926FC2E" />
|
||||
<ComponentRef Id="cmp3B07F4E4B6034F3284288C18F4638CA7" />
|
||||
<ComponentRef Id="cmp9FCFAEB797D9475C873E21B4B5A89E28" />
|
||||
<ComponentRef Id="cmp0C4751F9D5C14419A45F234152D21DA9" />
|
||||
<ComponentRef Id="cmpF96C036EAE3B436DB096888697193FAF" />
|
||||
<ComponentRef Id="cmp789F545EA2CB4AC5A2688CF730A5F6B4" />
|
||||
<ComponentRef Id="cmp378D79CF3DEC49979D7FA8A029141F0A" />
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
</Wix>
|
||||
|
|
541
build.psm1
541
build.psm1
|
@ -6,8 +6,6 @@ param(
|
|||
[parameter(Mandatory = $false)][switch]$SkipLinuxDistroCheck = $false
|
||||
)
|
||||
|
||||
. "$PSScriptRoot\tools\buildCommon\startNativeExecution.ps1"
|
||||
|
||||
Set-StrictMode -Version 3.0
|
||||
|
||||
# On Unix paths is separated by colon
|
||||
|
@ -15,11 +13,7 @@ Set-StrictMode -Version 3.0
|
|||
$script:TestModulePathSeparator = [System.IO.Path]::PathSeparator
|
||||
$script:Options = $null
|
||||
|
||||
$dotnetMetadata = Get-Content $PSScriptRoot/DotnetRuntimeMetadata.json | ConvertFrom-Json
|
||||
$dotnetCLIChannel = $dotnetMetadata.Sdk.Channel
|
||||
$dotnetCLIQuality = $dotnetMetadata.Sdk.Quality
|
||||
$dotnetAzureFeed = $dotnetMetadata.Sdk.azureFeed
|
||||
$dotnetSDKVersionOveride = $dotnetMetadata.Sdk.sdkImageOverride
|
||||
$dotnetCLIChannel = $(Get-Content $PSScriptRoot/DotnetRuntimeMetadata.json | ConvertFrom-Json).Sdk.Channel
|
||||
$dotnetCLIRequiredVersion = $(Get-Content $PSScriptRoot/global.json | ConvertFrom-Json).Sdk.Version
|
||||
|
||||
# Track if tags have been sync'ed
|
||||
|
@ -37,21 +31,14 @@ function Sync-PSTags
|
|||
$AddRemoteIfMissing
|
||||
)
|
||||
|
||||
$powerShellRemoteUrls = @(
|
||||
'https://github.com/PowerShell/PowerShell'
|
||||
'git@github.com:PowerShell/PowerShell'
|
||||
)
|
||||
$defaultRemoteUrl = "$($powerShellRemoteUrls[0]).git"
|
||||
|
||||
$PowerShellRemoteUrl = "https://github.com/PowerShell/PowerShell.git"
|
||||
$upstreamRemoteDefaultName = 'upstream'
|
||||
$remotes = Start-NativeExecution {git --git-dir="$PSScriptRoot/.git" remote}
|
||||
$upstreamRemote = $null
|
||||
foreach($remote in $remotes)
|
||||
{
|
||||
$url = Start-NativeExecution {git --git-dir="$PSScriptRoot/.git" remote get-url $remote}
|
||||
if ($url.EndsWith('.git')) { $url = $url.Substring(0, $url.Length - 4) }
|
||||
|
||||
if($url -in $powerShellRemoteUrls)
|
||||
if($url -eq $PowerShellRemoteUrl)
|
||||
{
|
||||
$upstreamRemote = $remote
|
||||
break
|
||||
|
@ -60,12 +47,12 @@ function Sync-PSTags
|
|||
|
||||
if(!$upstreamRemote -and $AddRemoteIfMissing.IsPresent -and $remotes -notcontains $upstreamRemoteDefaultName)
|
||||
{
|
||||
$null = Start-NativeExecution {git --git-dir="$PSScriptRoot/.git" remote add $upstreamRemoteDefaultName $defaultRemoteUrl}
|
||||
$null = Start-NativeExecution {git --git-dir="$PSScriptRoot/.git" remote add $upstreamRemoteDefaultName $PowerShellRemoteUrl}
|
||||
$upstreamRemote = $upstreamRemoteDefaultName
|
||||
}
|
||||
elseif(!$upstreamRemote)
|
||||
{
|
||||
Write-Error "Please add a remote to PowerShell\PowerShell. Example: git remote add $upstreamRemoteDefaultName $defaultRemoteUrl" -ErrorAction Stop
|
||||
Write-Error "Please add a remote to PowerShell\PowerShell. Example: git remote add $upstreamRemoteDefaultName $PowerShellRemoteUrl" -ErrorAction Stop
|
||||
}
|
||||
|
||||
$null = Start-NativeExecution {git --git-dir="$PSScriptRoot/.git" fetch --tags --quiet $upstreamRemote}
|
||||
|
@ -135,7 +122,7 @@ function Get-EnvironmentInformation
|
|||
if ($environment.IsWindows)
|
||||
{
|
||||
$environment += @{'IsAdmin' = (New-Object Security.Principal.WindowsPrincipal ([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)}
|
||||
$environment += @{'nugetPackagesRoot' = "${env:USERPROFILE}\.nuget\packages", "${env:NUGET_PACKAGES}"}
|
||||
$environment += @{'nugetPackagesRoot' = "${env:USERPROFILE}\.nuget\packages"}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -146,10 +133,6 @@ function Get-EnvironmentInformation
|
|||
$environment += @{'UsingHomebrew' = [bool](Get-Command brew -ErrorAction ignore)}
|
||||
$environment += @{'UsingMacports' = [bool](Get-Command port -ErrorAction ignore)}
|
||||
|
||||
$environment += @{
|
||||
'OSArchitecture' = if ((uname -v) -match 'ARM64') { 'arm64' } else { 'x64' }
|
||||
}
|
||||
|
||||
if (-not($environment.UsingHomebrew -or $environment.UsingMacports)) {
|
||||
throw "Neither Homebrew nor MacPorts is installed on this system, visit https://brew.sh/ or https://www.macports.org/ to continue"
|
||||
}
|
||||
|
@ -318,13 +301,13 @@ function Start-PSBuild {
|
|||
[ValidateSet('Debug', 'Release', 'CodeCoverage', '')] # We might need "Checked" as well
|
||||
[string]$Configuration,
|
||||
|
||||
[switch]$CrossGen,
|
||||
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$ReleaseTag,
|
||||
[switch]$Detailed,
|
||||
[switch]$InteractiveAuth,
|
||||
[switch]$SkipRoslynAnalyzers,
|
||||
[string]$PSOptionsPath
|
||||
[switch]$InteractiveAuth
|
||||
)
|
||||
|
||||
if ($ReleaseTag -and $ReleaseTag -notmatch "^v\d+\.\d+\.\d+(-(preview|rc)(\.\d{1,2})?)?$") {
|
||||
|
@ -345,6 +328,10 @@ function Start-PSBuild {
|
|||
}
|
||||
|
||||
if ($ForMinimalSize) {
|
||||
if ($CrossGen) {
|
||||
throw "Build for the minimal size requires the minimal disk footprint, so `CrossGen` is not allowed"
|
||||
}
|
||||
|
||||
if ($Runtime -and "linux-x64", "win7-x64", "osx-x64" -notcontains $Runtime) {
|
||||
throw "Build for the minimal size is enabled only for following runtimes: 'linux-x64', 'win7-x64', 'osx-x64'"
|
||||
}
|
||||
|
@ -390,8 +377,7 @@ function Start-PSBuild {
|
|||
}
|
||||
|
||||
# Verify if the dotnet in-use is the required version
|
||||
$dotnetCLIInstalledVersion = Get-LatestInstalledSDK
|
||||
|
||||
$dotnetCLIInstalledVersion = Start-NativeExecution -sb { dotnet --version } -IgnoreExitcode
|
||||
If ($dotnetCLIInstalledVersion -ne $dotnetCLIRequiredVersion) {
|
||||
Write-Warning @"
|
||||
The currently installed .NET Command Line Tools is not the required version.
|
||||
|
@ -413,6 +399,7 @@ Fix steps:
|
|||
|
||||
# set output options
|
||||
$OptionsArguments = @{
|
||||
CrossGen=$CrossGen
|
||||
Output=$Output
|
||||
Runtime=$Runtime
|
||||
Configuration=$Configuration
|
||||
|
@ -429,25 +416,11 @@ Fix steps:
|
|||
|
||||
# setup arguments
|
||||
# adding ErrorOnDuplicatePublishOutputFiles=false due to .NET SDk issue: https://github.com/dotnet/sdk/issues/15748
|
||||
# removing --no-restore due to .NET SDK issue: https://github.com/dotnet/sdk/issues/18999
|
||||
# $Arguments = @("publish","--no-restore","/property:GenerateFullPaths=true", "/property:ErrorOnDuplicatePublishOutputFiles=false")
|
||||
$Arguments = @("publish","/property:GenerateFullPaths=true", "/property:ErrorOnDuplicatePublishOutputFiles=false")
|
||||
$Arguments = @("publish","--no-restore","/property:GenerateFullPaths=true", "/property:ErrorOnDuplicatePublishOutputFiles=false")
|
||||
if ($Output -or $SMAOnly) {
|
||||
$Arguments += "--output", (Split-Path $Options.Output)
|
||||
}
|
||||
|
||||
# Add --self-contained due to "warning NETSDK1179: One of '--self-contained' or '--no-self-contained' options are required when '--runtime' is used."
|
||||
if ($Options.Runtime -like 'fxdependent*') {
|
||||
$Arguments += "--no-self-contained"
|
||||
# The UseAppHost = false property avoids creating ".exe" for the fxdependent packages.
|
||||
# The ".exe" is not a cross-platform executable, but specific to the platform that it was built on.
|
||||
# We do not need to ship that.
|
||||
$Arguments += "/property:UseAppHost=false"
|
||||
}
|
||||
else {
|
||||
$Arguments += "--self-contained"
|
||||
}
|
||||
|
||||
if ($Options.Runtime -like 'win*' -or ($Options.Runtime -like 'fxdependent*' -and $environment.IsWindows)) {
|
||||
$Arguments += "/property:IsWindows=true"
|
||||
}
|
||||
|
@ -480,10 +453,6 @@ Fix steps:
|
|||
$Arguments += "/property:ReleaseTag=$ReleaseTagToUse"
|
||||
}
|
||||
|
||||
if ($SkipRoslynAnalyzers) {
|
||||
$Arguments += "/property:RunAnalyzersDuringBuild=false"
|
||||
}
|
||||
|
||||
# handle Restore
|
||||
Restore-PSPackage -Options $Options -Force:$Restore -InteractiveAuth:$InteractiveAuth
|
||||
|
||||
|
@ -527,6 +496,12 @@ Fix steps:
|
|||
Write-Log -message "Run dotnet $Arguments from $PWD"
|
||||
Start-NativeExecution { dotnet $Arguments }
|
||||
Write-Log -message "PowerShell output: $($Options.Output)"
|
||||
|
||||
if ($CrossGen) {
|
||||
# fxdependent package cannot be CrossGen'ed
|
||||
Start-CrossGen -PublishPath $publishPath -Runtime $script:Options.Runtime
|
||||
Write-Log -message "pwsh.exe with ngen binaries is available at: $($Options.Output)"
|
||||
}
|
||||
} else {
|
||||
$globalToolSrcFolder = Resolve-Path (Join-Path $Options.Top "../Microsoft.PowerShell.GlobalTool.Shim") | Select-Object -ExpandProperty Path
|
||||
|
||||
|
@ -665,15 +640,6 @@ Fix steps:
|
|||
if ($CI) {
|
||||
Restore-PSPester -Destination (Join-Path $publishPath "Modules")
|
||||
}
|
||||
|
||||
if ($PSOptionsPath) {
|
||||
$resolvedPSOptionsPath = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($PSOptionsPath)
|
||||
$parent = Split-Path -Path $resolvedPSOptionsPath
|
||||
if (!(Test-Path $parent)) {
|
||||
$null = New-Item -ItemType Directory -Path $parent
|
||||
}
|
||||
Save-PSOptions -PSOptionsPath $PSOptionsPath -Options $Options
|
||||
}
|
||||
}
|
||||
|
||||
function Restore-PSPackage
|
||||
|
@ -829,6 +795,8 @@ function New-PSOptions {
|
|||
"win7-x86")]
|
||||
[string]$Runtime,
|
||||
|
||||
[switch]$CrossGen,
|
||||
|
||||
# Accept a path to the output directory
|
||||
# If not null or empty, name of the executable will be appended to
|
||||
# this path, otherwise, to the default path, and then the full path
|
||||
|
@ -869,7 +837,7 @@ function New-PSOptions {
|
|||
}
|
||||
}
|
||||
|
||||
# We plan to release packages targeting win7-x64 and win7-x86 RIDs,
|
||||
# We plan to release packages targetting win7-x64 and win7-x86 RIDs,
|
||||
# which supports all supported windows platforms.
|
||||
# So we, will change the RID to win7-<arch>
|
||||
$Runtime = $RID -replace "win\d+", "win7"
|
||||
|
@ -934,6 +902,7 @@ function New-PSOptions {
|
|||
-RootInfo ([PSCustomObject]$RootInfo) `
|
||||
-Top $Top `
|
||||
-Runtime $Runtime `
|
||||
-Crossgen $Crossgen.IsPresent `
|
||||
-Configuration $Configuration `
|
||||
-PSModuleRestore $PSModuleRestore.IsPresent `
|
||||
-Framework $Framework `
|
||||
|
@ -1226,13 +1195,7 @@ function Start-PSPester {
|
|||
|
||||
if ($Unelevate)
|
||||
{
|
||||
if ($environment.IsWindows) {
|
||||
$outputBufferFilePath = [System.IO.Path]::GetTempFileName()
|
||||
}
|
||||
else {
|
||||
# Azure DevOps agents do not have Temp folder setup on Ubuntu 20.04, hence using HOME directory
|
||||
$outputBufferFilePath = (Join-Path $env:HOME $([System.IO.Path]::GetRandomFileName()))
|
||||
}
|
||||
$outputBufferFilePath = [System.IO.Path]::GetTempFileName()
|
||||
}
|
||||
|
||||
$command += "Invoke-Pester "
|
||||
|
@ -1314,14 +1277,7 @@ function Start-PSPester {
|
|||
|
||||
$PSFlags = @("-noprofile")
|
||||
if (-not [string]::IsNullOrEmpty($ExperimentalFeatureName)) {
|
||||
|
||||
if ($environment.IsWindows) {
|
||||
$configFile = [System.IO.Path]::GetTempFileName()
|
||||
}
|
||||
else {
|
||||
$configFile = (Join-Path $env:HOME $([System.IO.Path]::GetRandomFileName()))
|
||||
}
|
||||
|
||||
$configFile = [System.IO.Path]::GetTempFileName()
|
||||
$configFile = [System.IO.Path]::ChangeExtension($configFile, ".json")
|
||||
|
||||
## Create the config.json file to enable the given experimental feature.
|
||||
|
@ -1400,13 +1356,7 @@ function Start-PSPester {
|
|||
{
|
||||
if ($PassThru.IsPresent)
|
||||
{
|
||||
if ($environment.IsWindows) {
|
||||
$passThruFile = [System.IO.Path]::GetTempFileName()
|
||||
}
|
||||
else {
|
||||
$passThruFile = Join-Path $env:HOME $([System.IO.Path]::GetRandomFileName())
|
||||
}
|
||||
|
||||
$passThruFile = [System.IO.Path]::GetTempFileName()
|
||||
try
|
||||
{
|
||||
$command += "| Export-Clixml -Path '$passThruFile' -Force"
|
||||
|
@ -1744,20 +1694,12 @@ function Install-Dotnet {
|
|||
param(
|
||||
[string]$Channel = $dotnetCLIChannel,
|
||||
[string]$Version = $dotnetCLIRequiredVersion,
|
||||
[string]$Quality = $dotnetCLIQuality,
|
||||
[switch]$NoSudo,
|
||||
[string]$InstallDir,
|
||||
[string]$AzureFeed,
|
||||
[string]$FeedCredential
|
||||
)
|
||||
|
||||
Write-Verbose -Verbose "In install-dotnet"
|
||||
|
||||
# This is needed workaround for RTM pre-release build as the SDK version is always 6.0.100 after installation for every pre-release
|
||||
if ($dotnetCLIRequiredVersion -like '6.0.100-rtm.*') {
|
||||
$dotnetCLIRequiredVersion = '6.0.100'
|
||||
}
|
||||
|
||||
# This allows sudo install to be optional; needed when running in containers / as root
|
||||
# Note that when it is null, Invoke-Expression (but not &) must be used to interpolate properly
|
||||
$sudo = if (!$NoSudo) { "sudo" }
|
||||
|
@ -1785,40 +1727,26 @@ function Install-Dotnet {
|
|||
Write-Warning "This script only removes prior versions of dotnet for Ubuntu and OS X"
|
||||
}
|
||||
|
||||
Write-Verbose -Verbose "Invoking install script"
|
||||
|
||||
# Install new dotnet 1.1.0 preview packages
|
||||
$installScript = "dotnet-install.sh"
|
||||
|
||||
Write-Verbose -Message "downloading install script from $installObtainUrl/$installScript ..." -Verbose
|
||||
Start-NativeExecution {
|
||||
Write-Verbose -Message "downloading install script from $installObtainUrl/$installScript ..." -Verbose
|
||||
& $wget $installObtainUrl/$installScript
|
||||
|
||||
if ((Get-ChildItem "./$installScript").Length -eq 0) {
|
||||
throw "./$installScript was 0 length"
|
||||
}
|
||||
|
||||
if ($Version) {
|
||||
$bashArgs = @("./$installScript", '-v', $Version, '-q', $Quality)
|
||||
}
|
||||
elseif ($Channel) {
|
||||
$bashArgs = @("./$installScript", '-c', $Channel, '-q', $Quality)
|
||||
}
|
||||
$bashArgs = @("./$installScript", '-c', $Channel, '-v', $Version)
|
||||
|
||||
if ($InstallDir) {
|
||||
$bashArgs += @('-i', $InstallDir)
|
||||
}
|
||||
|
||||
if ($AzureFeed) {
|
||||
$bashArgs += @('-AzureFeed', $AzureFeed)
|
||||
$bashArgs += @('-AzureFeed', $AzureFeed, '-FeedCredential', $FeedCredential)
|
||||
}
|
||||
|
||||
if ($FeedCredential) {
|
||||
$bashArgs += @('-FeedCredential', $FeedCredential)
|
||||
}
|
||||
|
||||
$bashArgs | Out-String | Write-Verbose -Verbose
|
||||
|
||||
Start-NativeExecution {
|
||||
bash @bashArgs
|
||||
}
|
||||
} elseif ($environment.IsWindows) {
|
||||
|
@ -1827,13 +1755,8 @@ function Install-Dotnet {
|
|||
Invoke-WebRequest -Uri $installObtainUrl/$installScript -OutFile $installScript
|
||||
if (-not $environment.IsCoreCLR) {
|
||||
$installArgs = @{
|
||||
Quality = $Quality
|
||||
}
|
||||
|
||||
if ($Version) {
|
||||
$installArgs += @{ Version = $Version }
|
||||
} elseif ($Channel) {
|
||||
$installArgs += @{ Channel = $Channel }
|
||||
Channel = $Channel
|
||||
Version = $Version
|
||||
}
|
||||
|
||||
if ($InstallDir) {
|
||||
|
@ -1841,44 +1764,29 @@ function Install-Dotnet {
|
|||
}
|
||||
|
||||
if ($AzureFeed) {
|
||||
$installArgs += @{AzureFeed = $AzureFeed}
|
||||
$installArgs += @{
|
||||
AzureFeed = $AzureFeed
|
||||
$FeedCredential = $FeedCredential
|
||||
}
|
||||
}
|
||||
|
||||
if ($FeedCredential) {
|
||||
$installArgs += @{FeedCredential = $FeedCredential}
|
||||
}
|
||||
|
||||
$installArgs | Out-String | Write-Verbose -Verbose
|
||||
|
||||
& ./$installScript @installArgs
|
||||
}
|
||||
else {
|
||||
# dotnet-install.ps1 uses APIs that are not supported in .NET Core, so we run it with Windows PowerShell
|
||||
$fullPSPath = Join-Path -Path $env:windir -ChildPath "System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
$fullDotnetInstallPath = Join-Path -Path $PWD.Path -ChildPath $installScript
|
||||
|
||||
if ($Version) {
|
||||
$psArgs = @('-NoLogo', '-NoProfile', '-File', $fullDotnetInstallPath, '-Version', $Version, '-Quality', $Quality)
|
||||
}
|
||||
elseif ($Channel) {
|
||||
$psArgs = @('-NoLogo', '-NoProfile', '-File', $fullDotnetInstallPath, '-Channel', $Channel, '-Quality', $Quality)
|
||||
}
|
||||
|
||||
if ($InstallDir) {
|
||||
$psArgs += @('-InstallDir', $InstallDir)
|
||||
}
|
||||
|
||||
if ($AzureFeed) {
|
||||
$psArgs += @('-AzureFeed', $AzureFeed)
|
||||
}
|
||||
|
||||
if ($FeedCredential) {
|
||||
$psArgs += @('-FeedCredential', $FeedCredential)
|
||||
}
|
||||
|
||||
$psArgs | Out-String | Write-Verbose -Verbose
|
||||
|
||||
Start-NativeExecution {
|
||||
$psArgs = @('-NoLogo', '-NoProfile', '-File', $fullDotnetInstallPath, '-Channel', $Channel, '-Version', $Version)
|
||||
|
||||
if ($InstallDir) {
|
||||
$psArgs += @('-InstallDir', $InstallDir)
|
||||
}
|
||||
|
||||
if ($AzureFeed) {
|
||||
$psArgs += @('-AzureFeed', $AzureFeed, '-FeedCredential', $FeedCredential)
|
||||
}
|
||||
|
||||
& $fullPSPath @psArgs
|
||||
}
|
||||
}
|
||||
|
@ -1912,10 +1820,6 @@ function Start-PSBootstrap {
|
|||
|
||||
Push-Location $PSScriptRoot/tools
|
||||
|
||||
if ($dotnetSDKVersionOveride) {
|
||||
$Version = $dotnetSDKVersionOveride
|
||||
}
|
||||
|
||||
try {
|
||||
if ($environment.IsLinux -or $environment.IsMacOS) {
|
||||
# This allows sudo install to be optional; needed when running in containers / as root
|
||||
|
@ -2013,9 +1917,6 @@ function Start-PSBootstrap {
|
|||
# Build tools
|
||||
$Deps += "cmake"
|
||||
|
||||
# wget for downloading dotnet
|
||||
$Deps += "wget"
|
||||
|
||||
# .NET Core required runtime libraries
|
||||
$Deps += "openssl"
|
||||
|
||||
|
@ -2023,7 +1924,7 @@ function Start-PSBootstrap {
|
|||
# ignore exitcode, because they may be already installed
|
||||
Start-NativeExecution ([ScriptBlock]::Create("$PackageManager install $Deps")) -IgnoreExitcode
|
||||
} elseif ($environment.IsLinux -and $environment.IsAlpine) {
|
||||
$Deps += 'libunwind', 'libcurl', 'bash', 'cmake', 'clang', 'build-base', 'git', 'curl', 'wget'
|
||||
$Deps += 'libunwind', 'libcurl', 'bash', 'cmake', 'clang', 'build-base', 'git', 'curl'
|
||||
|
||||
Start-NativeExecution {
|
||||
Invoke-Expression "apk add $Deps"
|
||||
|
@ -2048,18 +1949,14 @@ function Start-PSBootstrap {
|
|||
}
|
||||
}
|
||||
|
||||
Write-Verbose -Verbose "Calling Find-Dotnet from Start-PSBootstrap"
|
||||
|
||||
# Try to locate dotnet-SDK before installing it
|
||||
Find-Dotnet
|
||||
|
||||
Write-Verbose -Verbose "Back from calling Find-Dotnet from Start-PSBootstrap"
|
||||
|
||||
# Install dotnet-SDK
|
||||
$dotNetExists = precheck 'dotnet' $null
|
||||
$dotNetVersion = [string]::Empty
|
||||
if($dotNetExists) {
|
||||
$dotNetVersion = Get-LatestInstalledSDK
|
||||
$dotNetVersion = Start-NativeExecution -sb { dotnet --version } -IgnoreExitcode
|
||||
}
|
||||
|
||||
if(!$dotNetExists -or $dotNetVersion -ne $dotnetCLIRequiredVersion -or $Force.IsPresent) {
|
||||
|
@ -2074,12 +1971,6 @@ function Start-PSBootstrap {
|
|||
}
|
||||
|
||||
$DotnetArguments = @{ Channel=$Channel; Version=$Version; NoSudo=$NoSudo }
|
||||
|
||||
if ($dotnetAzureFeed) {
|
||||
$null = $DotnetArguments.Add("AzureFeed", $dotnetAzureFeed)
|
||||
$null = $DotnetArguments.Add("FeedCredential", $null)
|
||||
}
|
||||
|
||||
Install-Dotnet @DotnetArguments
|
||||
}
|
||||
else {
|
||||
|
@ -2101,12 +1992,6 @@ function Start-PSBootstrap {
|
|||
}
|
||||
}
|
||||
|
||||
function Get-LatestInstalledSDK {
|
||||
Start-NativeExecution -sb {
|
||||
dotnet --list-sdks | Select-String -Pattern '\d*.\d*.\d*(-\w*\.\d*)?' | ForEach-Object { [System.Management.Automation.SemanticVersion]::new($_.matches.value) } | Sort-Object -Descending | Select-Object -First 1
|
||||
} -IgnoreExitcode 2> $null
|
||||
}
|
||||
|
||||
function Start-DevPowerShell {
|
||||
[CmdletBinding(DefaultParameterSetName='ConfigurationParamSet')]
|
||||
param(
|
||||
|
@ -2239,29 +2124,17 @@ function Start-ResGen
|
|||
}
|
||||
|
||||
function Find-Dotnet() {
|
||||
Write-Verbose -Verbose "In Find-DotNet"
|
||||
|
||||
$originalPath = $env:PATH
|
||||
$dotnetPath = if ($environment.IsWindows) { "$env:LocalAppData\Microsoft\dotnet" } else { "$env:HOME/.dotnet" }
|
||||
|
||||
$chosenDotNetVersion = if($dotnetSDKVersionOveride) {
|
||||
$dotnetSDKVersionOveride
|
||||
}
|
||||
else {
|
||||
$dotnetCLIRequiredVersion
|
||||
}
|
||||
|
||||
# If there dotnet is already in the PATH, check to see if that version of dotnet can find the required SDK
|
||||
# This is "typically" the globally installed dotnet
|
||||
if (precheck dotnet) {
|
||||
# Must run from within repo to ensure global.json can specify the required SDK version
|
||||
Push-Location $PSScriptRoot
|
||||
$dotnetCLIInstalledVersion = Get-LatestInstalledSDK
|
||||
$dotnetCLIInstalledVersion = Start-NativeExecution -sb { dotnet --version } -IgnoreExitcode 2> $null
|
||||
Pop-Location
|
||||
|
||||
Write-Verbose -Verbose "dotnetCLIInstalledVersion = $dotnetCLIInstalledVersion`nchosenDotNetVersion = $chosenDotNetVersion"
|
||||
|
||||
if ($dotnetCLIInstalledVersion -ne $chosenDotNetVersion) {
|
||||
if ($dotnetCLIInstalledVersion -ne $dotnetCLIRequiredVersion) {
|
||||
Write-Warning "The 'dotnet' in the current path can't find SDK version ${dotnetCLIRequiredVersion}, prepending $dotnetPath to PATH."
|
||||
# Globally installed dotnet doesn't have the required SDK version, prepend the user local dotnet location
|
||||
$env:PATH = $dotnetPath + [IO.Path]::PathSeparator + $env:PATH
|
||||
|
@ -2359,6 +2232,288 @@ function script:precheck([string]$command, [string]$missedMessage) {
|
|||
}
|
||||
}
|
||||
|
||||
# this function wraps native command Execution
|
||||
# for more information, read https://mnaoumov.wordpress.com/2015/01/11/execution-of-external-commands-in-powershell-done-right/
|
||||
function script:Start-NativeExecution
|
||||
{
|
||||
param(
|
||||
[scriptblock]$sb,
|
||||
[switch]$IgnoreExitcode,
|
||||
[switch]$VerboseOutputOnError
|
||||
)
|
||||
$backupEAP = $ErrorActionPreference
|
||||
$ErrorActionPreference = "Continue"
|
||||
try {
|
||||
if($VerboseOutputOnError.IsPresent)
|
||||
{
|
||||
$output = & $sb 2>&1
|
||||
}
|
||||
else
|
||||
{
|
||||
& $sb
|
||||
}
|
||||
|
||||
# note, if $sb doesn't have a native invocation, $LASTEXITCODE will
|
||||
# point to the obsolete value
|
||||
if ($LASTEXITCODE -ne 0 -and -not $IgnoreExitcode) {
|
||||
if($VerboseOutputOnError.IsPresent -and $output)
|
||||
{
|
||||
$output | Out-String | Write-Verbose -Verbose
|
||||
}
|
||||
|
||||
# Get caller location for easier debugging
|
||||
$caller = Get-PSCallStack -ErrorAction SilentlyContinue
|
||||
if($caller)
|
||||
{
|
||||
$callerLocationParts = $caller[1].Location -split ":\s*line\s*"
|
||||
$callerFile = $callerLocationParts[0]
|
||||
$callerLine = $callerLocationParts[1]
|
||||
|
||||
$errorMessage = "Execution of {$sb} by ${callerFile}: line $callerLine failed with exit code $LASTEXITCODE"
|
||||
throw $errorMessage
|
||||
}
|
||||
throw "Execution of {$sb} failed with exit code $LASTEXITCODE"
|
||||
}
|
||||
} finally {
|
||||
$ErrorActionPreference = $backupEAP
|
||||
}
|
||||
}
|
||||
|
||||
function Start-CrossGen {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory= $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String]
|
||||
$PublishPath,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[ValidateSet("alpine-x64",
|
||||
"linux-arm",
|
||||
"linux-arm64",
|
||||
"linux-x64",
|
||||
"osx-arm64",
|
||||
"osx-x64",
|
||||
"win-arm",
|
||||
"win-arm64",
|
||||
"win7-x64",
|
||||
"win7-x86")]
|
||||
[string]
|
||||
$Runtime
|
||||
)
|
||||
|
||||
function New-CrossGenAssembly {
|
||||
param (
|
||||
[Parameter(Mandatory= $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String]
|
||||
$AssemblyPath,
|
||||
[Parameter(Mandatory= $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String]
|
||||
$CrossgenPath
|
||||
)
|
||||
|
||||
$outputAssembly = $AssemblyPath.Replace(".dll", ".ni.dll")
|
||||
$platformAssembliesPath = Split-Path $AssemblyPath -Parent
|
||||
$crossgenFolder = Split-Path $CrossgenPath
|
||||
$niAssemblyName = Split-Path $outputAssembly -Leaf
|
||||
|
||||
try {
|
||||
Push-Location $crossgenFolder
|
||||
|
||||
# Generate the ngen assembly
|
||||
Write-Verbose "Generating assembly $niAssemblyName"
|
||||
Start-NativeExecution {
|
||||
& $CrossgenPath /ReadyToRun /MissingDependenciesOK /in $AssemblyPath /out $outputAssembly /Platform_Assemblies_Paths $platformAssembliesPath
|
||||
} | Write-Verbose
|
||||
} finally {
|
||||
Pop-Location
|
||||
}
|
||||
}
|
||||
|
||||
function New-CrossGenSymbol {
|
||||
param (
|
||||
[Parameter(Mandatory= $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String]
|
||||
$AssemblyPath,
|
||||
[Parameter(Mandatory= $true)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[String]
|
||||
$CrossgenPath
|
||||
)
|
||||
|
||||
|
||||
$platformAssembliesPath = Split-Path $AssemblyPath -Parent
|
||||
$crossgenFolder = Split-Path $CrossgenPath
|
||||
|
||||
try {
|
||||
Push-Location $crossgenFolder
|
||||
|
||||
$symbolsPath = [System.IO.Path]::ChangeExtension($assemblyPath, ".pdb")
|
||||
|
||||
$createSymbolOptionName = $null
|
||||
if($Environment.IsWindows)
|
||||
{
|
||||
$createSymbolOptionName = '-CreatePDB'
|
||||
|
||||
}
|
||||
elseif ($Environment.IsLinux)
|
||||
{
|
||||
$createSymbolOptionName = '-CreatePerfMap'
|
||||
}
|
||||
|
||||
if($createSymbolOptionName)
|
||||
{
|
||||
Start-NativeExecution {
|
||||
& $CrossgenPath -readytorun -platform_assemblies_paths $platformAssembliesPath $createSymbolOptionName $platformAssembliesPath $AssemblyPath
|
||||
} | Write-Verbose
|
||||
}
|
||||
|
||||
# Rename the corresponding ni.dll assembly to be the same as the IL assembly
|
||||
$niSymbolsPath = [System.IO.Path]::ChangeExtension($symbolsPath, "ni.pdb")
|
||||
Rename-Item $niSymbolsPath $symbolsPath -Force -ErrorAction Stop
|
||||
} finally {
|
||||
Pop-Location
|
||||
}
|
||||
}
|
||||
|
||||
if (-not (Test-Path $PublishPath)) {
|
||||
throw "Path '$PublishPath' does not exist."
|
||||
}
|
||||
|
||||
# Get the path to crossgen
|
||||
$crossGenExe = if ($environment.IsWindows) { "crossgen.exe" } else { "crossgen" }
|
||||
$generateSymbols = $false
|
||||
|
||||
# The crossgen tool is only published for these particular runtimes
|
||||
$crossGenRuntime = if ($environment.IsWindows) {
|
||||
if ($Runtime -match "-x86") {
|
||||
"win-x86"
|
||||
} elseif ($Runtime -match "-x64") {
|
||||
"win-x64"
|
||||
$generateSymbols = $true
|
||||
} elseif (!($env:PROCESSOR_ARCHITECTURE -match "arm")) {
|
||||
throw "crossgen for 'win-arm' and 'win-arm64' must be run on that platform"
|
||||
}
|
||||
} elseif ($Runtime -eq "linux-arm") {
|
||||
throw "crossgen is not available for 'linux-arm'"
|
||||
} elseif ($Runtime -eq "linux-x64") {
|
||||
$Runtime
|
||||
# We should set $generateSymbols = $true, but the code needs to be adjusted for different extension on Linux
|
||||
} else {
|
||||
$Runtime
|
||||
}
|
||||
|
||||
if (-not $crossGenRuntime) {
|
||||
throw "crossgen is not available for this platform"
|
||||
}
|
||||
|
||||
$dotnetRuntimeVersion = $script:Options.Framework -replace 'net'
|
||||
|
||||
# Get the CrossGen.exe for the correct runtime with the latest version
|
||||
$crossGenPath = Get-ChildItem $script:Environment.nugetPackagesRoot $crossGenExe -Recurse | `
|
||||
Where-Object { $_.FullName -match $crossGenRuntime } | `
|
||||
Where-Object { $_.FullName -match $dotnetRuntimeVersion } | `
|
||||
Where-Object { (Split-Path $_.FullName -Parent).EndsWith('tools') } | `
|
||||
Sort-Object -Property FullName -Descending | `
|
||||
Select-Object -First 1 | `
|
||||
ForEach-Object { $_.FullName }
|
||||
if (-not $crossGenPath) {
|
||||
throw "Unable to find latest version of crossgen.exe. 'Please run Start-PSBuild -Clean' first, and then try again."
|
||||
}
|
||||
Write-Verbose "Matched CrossGen.exe: $crossGenPath" -Verbose
|
||||
|
||||
# Crossgen.exe requires the following assemblies:
|
||||
# mscorlib.dll
|
||||
# System.Private.CoreLib.dll
|
||||
# clrjit.dll on Windows or libclrjit.so/dylib on Linux/OS X
|
||||
$crossGenRequiredAssemblies = @("mscorlib.dll", "System.Private.CoreLib.dll")
|
||||
|
||||
$crossGenRequiredAssemblies += if ($environment.IsWindows) {
|
||||
"clrjit.dll"
|
||||
} elseif ($environment.IsLinux) {
|
||||
"libclrjit.so"
|
||||
} elseif ($environment.IsMacOS) {
|
||||
"libclrjit.dylib"
|
||||
}
|
||||
|
||||
# Make sure that all dependencies required by crossgen are at the directory.
|
||||
$crossGenFolder = Split-Path $crossGenPath
|
||||
foreach ($assemblyName in $crossGenRequiredAssemblies) {
|
||||
if (-not (Test-Path "$crossGenFolder\$assemblyName")) {
|
||||
Copy-Item -Path "$PublishPath\$assemblyName" -Destination $crossGenFolder -Force -ErrorAction Stop
|
||||
}
|
||||
}
|
||||
|
||||
# Common assemblies used by Add-Type or assemblies with high JIT and no pdbs to crossgen
|
||||
$commonAssembliesForAddType = @(
|
||||
"Microsoft.CodeAnalysis.CSharp.dll"
|
||||
"Microsoft.CodeAnalysis.dll"
|
||||
"System.Linq.Expressions.dll"
|
||||
"Microsoft.CSharp.dll"
|
||||
"System.Runtime.Extensions.dll"
|
||||
"System.Linq.dll"
|
||||
"System.Collections.Concurrent.dll"
|
||||
"System.Collections.dll"
|
||||
"Newtonsoft.Json.dll"
|
||||
"System.IO.FileSystem.dll"
|
||||
"System.Diagnostics.Process.dll"
|
||||
"System.Threading.Tasks.Parallel.dll"
|
||||
"System.Security.AccessControl.dll"
|
||||
"System.Text.Encoding.CodePages.dll"
|
||||
"System.Private.Uri.dll"
|
||||
"System.Threading.dll"
|
||||
"System.Security.Principal.Windows.dll"
|
||||
"System.Console.dll"
|
||||
"Microsoft.Win32.Registry.dll"
|
||||
"System.IO.Pipes.dll"
|
||||
"System.Diagnostics.FileVersionInfo.dll"
|
||||
"System.Collections.Specialized.dll"
|
||||
"Microsoft.ApplicationInsights.dll"
|
||||
)
|
||||
|
||||
$fullAssemblyList = $commonAssembliesForAddType
|
||||
|
||||
foreach ($assemblyName in $fullAssemblyList) {
|
||||
$assemblyPath = Join-Path $PublishPath $assemblyName
|
||||
New-CrossGenAssembly -CrossgenPath $crossGenPath -AssemblyPath $assemblyPath
|
||||
}
|
||||
|
||||
#
|
||||
# With the latest dotnet.exe, the default load context is only able to load TPAs, and TPA
|
||||
# only contains IL assembly names. In order to make the default load context able to load
|
||||
# the NI PS assemblies, we need to replace the IL PS assemblies with the corresponding NI
|
||||
# PS assemblies, but with the same IL assembly names.
|
||||
#
|
||||
Write-Verbose "PowerShell Ngen assemblies have been generated. Deploying ..." -Verbose
|
||||
foreach ($assemblyName in $fullAssemblyList) {
|
||||
|
||||
# Remove the IL assembly and its symbols.
|
||||
$assemblyPath = Join-Path $PublishPath $assemblyName
|
||||
$symbolsPath = [System.IO.Path]::ChangeExtension($assemblyPath, ".pdb")
|
||||
|
||||
Remove-Item $assemblyPath -Force -ErrorAction Stop
|
||||
|
||||
# Rename the corresponding ni.dll assembly to be the same as the IL assembly
|
||||
$niAssemblyPath = [System.IO.Path]::ChangeExtension($assemblyPath, "ni.dll")
|
||||
Rename-Item $niAssemblyPath $assemblyPath -Force -ErrorAction Stop
|
||||
|
||||
# No symbols are available for Microsoft.CodeAnalysis.CSharp.dll, Microsoft.CodeAnalysis.dll,
|
||||
# Microsoft.CodeAnalysis.VisualBasic.dll, and Microsoft.CSharp.dll.
|
||||
if ($commonAssembliesForAddType -notcontains $assemblyName) {
|
||||
Remove-Item $symbolsPath -Force -ErrorAction Stop
|
||||
|
||||
if($generateSymbols)
|
||||
{
|
||||
Write-Verbose "Generating Symbols for $assemblyPath"
|
||||
New-CrossGenSymbol -CrossgenPath $crossGenPath -AssemblyPath $assemblyPath
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Cleans the PowerShell repo - everything but the root folder
|
||||
function Clear-PSRepo
|
||||
{
|
||||
|
@ -2881,6 +3036,7 @@ function Restore-PSOptions {
|
|||
-RootInfo $options.RootInfo `
|
||||
-Top $options.Top `
|
||||
-Runtime $options.Runtime `
|
||||
-Crossgen $options.Crossgen `
|
||||
-Configuration $options.Configuration `
|
||||
-PSModuleRestore $options.PSModuleRestore `
|
||||
-Framework $options.Framework `
|
||||
|
@ -2904,6 +3060,10 @@ function New-PSOptionsObject
|
|||
[String]
|
||||
$Runtime,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[Bool]
|
||||
$CrossGen,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[String]
|
||||
$Configuration,
|
||||
|
@ -2932,6 +3092,7 @@ function New-PSOptionsObject
|
|||
Framework = $Framework
|
||||
Runtime = $Runtime
|
||||
Output = $Output
|
||||
CrossGen = $CrossGen
|
||||
PSModuleRestore = $PSModuleRestore
|
||||
ForMinimalSize = $ForMinimalSize
|
||||
}
|
||||
|
@ -3191,23 +3352,3 @@ function New-NugetConfigFile
|
|||
|
||||
Set-Content -Path (Join-Path $Destination 'nuget.config') -Value $content -Force
|
||||
}
|
||||
|
||||
function Set-CorrectLocale
|
||||
{
|
||||
if (-not $IsLinux)
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
$environment = Get-EnvironmentInformation
|
||||
if ($environment.IsUbuntu -and $environment.IsUbuntu20)
|
||||
{
|
||||
$env:LC_ALL = 'en_US.UTF-8'
|
||||
$env:LANG = 'en_US.UTF-8'
|
||||
sudo locale-gen $env:LANG
|
||||
sudo update-locale
|
||||
}
|
||||
|
||||
# Output the locale to log it
|
||||
locale
|
||||
}
|
||||
|
|
1424
cgmanifest.json
1424
cgmanifest.json
File diff suppressed because it is too large
Load diff
25
docker/tests/README.md
Normal file
25
docker/tests/README.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Docker tests
|
||||
|
||||
## Windows and Linux containers
|
||||
|
||||
The tests must be run separately on the Windows and Linux docker daemons. You can use the Linux docker daemon on Windows, but that will only test Linux containers not Windows Containers.
|
||||
|
||||
## To building and basic behavior of the containers
|
||||
|
||||
```PowerShell
|
||||
Invoke-Pester
|
||||
```
|
||||
|
||||
Note: be sure to do this using both the Windows and Linux docker daemon.
|
||||
|
||||
## To test the productions containers
|
||||
|
||||
```PowerShell
|
||||
Invoke-Pester -Tag Behavior
|
||||
```
|
||||
|
||||
## To test only building the containers
|
||||
|
||||
```PowerShell
|
||||
Invoke-Pester -Tag Build
|
||||
```
|
23
docker/tests/Templates/centos7/Dockerfile
Normal file
23
docker/tests/Templates/centos7/Dockerfile
Normal file
|
@ -0,0 +1,23 @@
|
|||
FROM centos:7
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN yum install -y \
|
||||
curl \
|
||||
glibc-locale-source \
|
||||
git
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG
|
||||
|
||||
RUN curl -L -o $PACKAGENAME $PACKAGELOCATION/$PACKAGENAME \
|
||||
&& yum install -y $PACKAGENAME
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN pwsh$PREVIEWSUFFIX -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
29
docker/tests/Templates/debian.9/Dockerfile
Normal file
29
docker/tests/Templates/debian.9/Dockerfile
Normal file
|
@ -0,0 +1,29 @@
|
|||
FROM debian:stretch
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
locales \
|
||||
git \
|
||||
&& apt-get clean
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN locale-gen $LANG && update-locale
|
||||
|
||||
RUN curl -L -o $PACKAGENAME $PACKAGELOCATION/$PACKAGENAME
|
||||
RUN dpkg -i $PACKAGENAME || :
|
||||
RUN apt-get install -y -f --no-install-recommends
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN pwsh$PREVIEWSUFFIX -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
26
docker/tests/Templates/fedora28/Dockerfile
Normal file
26
docker/tests/Templates/fedora28/Dockerfile
Normal file
|
@ -0,0 +1,26 @@
|
|||
FROM fedora:28
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN dnf install -y \
|
||||
curl \
|
||||
glibc-locale-source \
|
||||
git \
|
||||
compat-openssl10 \
|
||||
&& dnf upgrade-minimal -y --security \
|
||||
&& dnf clean all
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG
|
||||
|
||||
RUN curl -L -o $PACKAGENAME $PACKAGELOCATION/$PACKAGENAME
|
||||
RUN dnf install -y $PACKAGENAME
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN pwsh$PREVIEWSUFFIX -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
31
docker/tests/Templates/fxdependent-centos7/Dockerfile
Normal file
31
docker/tests/Templates/fxdependent-centos7/Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
|||
FROM centos:7
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN yum install -y \
|
||||
glibc-locale-source \
|
||||
git
|
||||
|
||||
# Install dotnet-runtime
|
||||
RUN rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
|
||||
RUN yum install -y \
|
||||
dotnet-runtime-2.1
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG
|
||||
|
||||
# Install PowerShell package
|
||||
ADD $PACKAGELOCATION/$PACKAGENAME .
|
||||
RUN mkdir -p /opt/microsoft/powershell
|
||||
RUN tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Download and run tests
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN dotnet /opt/microsoft/powershell/pwsh.dll -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
31
docker/tests/Templates/fxdependent-debian.9/Dockerfile
Normal file
31
docker/tests/Templates/fxdependent-debian.9/Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
|||
FROM microsoft/dotnet:2.1.7-runtime-stretch-slim
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
apt-transport-https \
|
||||
locales \
|
||||
git \
|
||||
&& apt-get clean
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN locale-gen $LANG && update-locale
|
||||
|
||||
# Install PowerShell package
|
||||
ADD $PACKAGELOCATION/$PACKAGENAME .
|
||||
RUN mkdir -p /opt/microsoft/powershell
|
||||
RUN tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Download and run tests
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN dotnet /opt/microsoft/powershell/pwsh.dll -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
|
@ -0,0 +1,31 @@
|
|||
FROM microsoft/dotnet:3.0.100-preview-sdk
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
apt-transport-https \
|
||||
locales \
|
||||
git \
|
||||
&& apt-get clean
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN locale-gen $LANG && update-locale
|
||||
|
||||
# Install PowerShell package
|
||||
ADD $PACKAGELOCATION/$PACKAGENAME .
|
||||
RUN mkdir -p /opt/microsoft/powershell \
|
||||
&& tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Download and run tests
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN dotnet /opt/microsoft/powershell/pwsh.dll -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
38
docker/tests/Templates/fxdependent-fedora28/Dockerfile
Normal file
38
docker/tests/Templates/fxdependent-fedora28/Dockerfile
Normal file
|
@ -0,0 +1,38 @@
|
|||
FROM fedora:28
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN dnf install -y \
|
||||
glibc-locale-source \
|
||||
git \
|
||||
compat-openssl10 \
|
||||
&& dnf upgrade-minimal -y --security \
|
||||
&& dnf clean all
|
||||
|
||||
# Install dotnet-runtime
|
||||
RUN rpm --import https://packages.microsoft.com/keys/microsoft.asc
|
||||
ADD https://packages.microsoft.com/config/fedora/27/prod.repo .
|
||||
RUN mv prod.repo /etc/yum.repos.d/microsoft-prod.repo
|
||||
RUN dnf install -y \
|
||||
dotnet-runtime-2.1 \
|
||||
&& dnf upgrade-minimal -y --security \
|
||||
&& dnf clean all
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG
|
||||
|
||||
# Install PowerShell package
|
||||
ADD $PACKAGELOCATION/$PACKAGENAME .
|
||||
RUN mkdir -p /opt/microsoft/powershell \
|
||||
&& tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Download and run tests
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN dotnet /opt/microsoft/powershell/pwsh.dll -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
41
docker/tests/Templates/fxdependent-opensuse42.3/Dockerfile
Normal file
41
docker/tests/Templates/fxdependent-opensuse42.3/Dockerfile
Normal file
|
@ -0,0 +1,41 @@
|
|||
FROM opensuse:42.3
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN zypper --non-interactive update --skip-interactive \
|
||||
&& zypper --non-interactive install \
|
||||
glibc-locale \
|
||||
glibc-i18ndata \
|
||||
tar \
|
||||
libunwind \
|
||||
libicu \
|
||||
openssl \
|
||||
git
|
||||
|
||||
# Install dotnet-runtime
|
||||
ADD https://packages.microsoft.com/keys/microsoft.asc .
|
||||
RUN rpmkeys --import microsoft.asc
|
||||
ADD https://packages.microsoft.com/config/opensuse/42.2/prod.repo .
|
||||
RUN mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
|
||||
RUN zypper --non-interactive update --skip-interactive \
|
||||
&& zypper --non-interactive install \
|
||||
dotnet-runtime-2.1
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG
|
||||
|
||||
# Install PowerShell package
|
||||
ADD $PACKAGELOCATION/$PACKAGENAME .
|
||||
RUN mkdir -p /opt/microsoft/powershell
|
||||
RUN tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Download and run tests
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN dotnet /opt/microsoft/powershell/pwsh.dll -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
39
docker/tests/Templates/fxdependent-ubuntu16.04/Dockerfile
Normal file
39
docker/tests/Templates/fxdependent-ubuntu16.04/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
|||
FROM ubuntu:xenial
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
apt-transport-https \
|
||||
locales \
|
||||
git \
|
||||
&& apt-get clean
|
||||
|
||||
# Install dotnet-runtime
|
||||
ADD https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb .
|
||||
RUN dpkg -i packages-microsoft-prod.deb
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
dotnet-runtime-2.1 \
|
||||
&& apt-get clean
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN locale-gen $LANG && update-locale
|
||||
|
||||
# Install PowerShell package
|
||||
ADD $PACKAGELOCATION/$PACKAGENAME .
|
||||
RUN mkdir -p /opt/microsoft/powershell \
|
||||
&& tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Download and run tests
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN dotnet /opt/microsoft/powershell/pwsh.dll -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
31
docker/tests/Templates/fxdependent-ubuntu18.04/Dockerfile
Normal file
31
docker/tests/Templates/fxdependent-ubuntu18.04/Dockerfile
Normal file
|
@ -0,0 +1,31 @@
|
|||
FROM microsoft/dotnet:2.1.7-runtime-bionic
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
apt-transport-https \
|
||||
locales \
|
||||
git \
|
||||
&& apt-get clean
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN locale-gen $LANG && update-locale
|
||||
|
||||
# Install PowerShell package
|
||||
ADD $PACKAGELOCATION/$PACKAGENAME .
|
||||
RUN mkdir -p /opt/microsoft/powershell \
|
||||
&& tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Download and run tests
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN dotnet /opt/microsoft/powershell/pwsh.dll -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
39
docker/tests/Templates/opensuse42.3/Dockerfile
Normal file
39
docker/tests/Templates/opensuse42.3/Dockerfile
Normal file
|
@ -0,0 +1,39 @@
|
|||
FROM opensuse:42.3
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
ARG POWERSHELL_LINKFILE=/usr/bin/pwsh
|
||||
|
||||
# Install dependencies
|
||||
RUN zypper --non-interactive update --skip-interactive \
|
||||
&& zypper --non-interactive install \
|
||||
glibc-locale \
|
||||
glibc-i18ndata \
|
||||
tar \
|
||||
curl \
|
||||
libunwind \
|
||||
libicu \
|
||||
openssl \
|
||||
git
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN localedef --charmap=UTF-8 --inputfile=en_US $LANG
|
||||
|
||||
RUN curl -L -o $PACKAGENAME $PACKAGELOCATION/$PACKAGENAME
|
||||
|
||||
# Create the target folder where powershell will be placed
|
||||
RUN mkdir -p /opt/microsoft/powershell
|
||||
# Expand powershell to the target folder
|
||||
RUN tar zxf $PACKAGENAME -C /opt/microsoft/powershell
|
||||
|
||||
# Create the symbolic link that points to powershell
|
||||
RUN ln -s /opt/microsoft/powershell/pwsh $POWERSHELL_LINKFILE
|
||||
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN pwsh -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
29
docker/tests/Templates/ubuntu16.04/Dockerfile
Normal file
29
docker/tests/Templates/ubuntu16.04/Dockerfile
Normal file
|
@ -0,0 +1,29 @@
|
|||
FROM ubuntu:xenial
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
locales \
|
||||
git \
|
||||
&& apt-get clean
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN locale-gen $LANG && update-locale
|
||||
|
||||
RUN curl -L -o $PACKAGENAME $PACKAGELOCATION/$PACKAGENAME
|
||||
RUN dpkg -i $PACKAGENAME || :
|
||||
RUN apt-get install -y -f --no-install-recommends
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN pwsh$PREVIEWSUFFIX -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
29
docker/tests/Templates/ubuntu18.04/Dockerfile
Normal file
29
docker/tests/Templates/ubuntu18.04/Dockerfile
Normal file
|
@ -0,0 +1,29 @@
|
|||
FROM ubuntu:bionic
|
||||
|
||||
ARG PACKAGENAME
|
||||
ARG PACKAGELOCATION
|
||||
ARG PREVIEWSUFFIX=
|
||||
ARG TESTLIST=/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module
|
||||
ARG TESTDOWNLOADCOMMAND="git clone --recursive https://github.com/PowerShell/PowerShell.git"
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
locales \
|
||||
git \
|
||||
&& apt-get clean
|
||||
|
||||
# Setup the locale
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL $LANG
|
||||
RUN locale-gen $LANG && update-locale
|
||||
|
||||
RUN curl -L -o $PACKAGENAME $PACKAGELOCATION/$PACKAGENAME
|
||||
RUN dpkg -i $PACKAGENAME || :
|
||||
RUN apt-get install -y -f --no-install-recommends
|
||||
RUN $TESTDOWNLOADCOMMAND
|
||||
RUN pwsh$PREVIEWSUFFIX -c "Import-Module /PowerShell/build.psm1;\$dir='/usr/local/share/powershell/Modules';\$null=New-Item -Type Directory -Path \$dir -ErrorAction SilentlyContinue;Restore-PSPester -Destination \$dir;exit (Invoke-Pester $TESTLIST -PassThru).FailedCount"
|
370
docker/tests/containerTestCommon.psm1
Normal file
370
docker/tests/containerTestCommon.psm1
Normal file
|
@ -0,0 +1,370 @@
|
|||
# Copyright (c) Microsoft Corporation.
|
||||
# Licensed under the MIT License.
|
||||
|
||||
$script:forcePull = $true
|
||||
# Get docker Engine OS
|
||||
function Get-DockerEngineOs
|
||||
{
|
||||
docker info --format '{{ .OperatingSystem }}'
|
||||
}
|
||||
|
||||
# Call Docker with appropriate result checksfunction Invoke-Docker
|
||||
function Invoke-Docker
|
||||
{
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string[]]
|
||||
$Command,
|
||||
[ValidateSet("error","warning",'ignore')]
|
||||
$FailureAction = 'error',
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string[]]
|
||||
$Params,
|
||||
|
||||
[switch]
|
||||
$PassThru,
|
||||
[switch]
|
||||
$SuppressHostOutput
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Continue'
|
||||
|
||||
# Log how we are running docker for troubleshooting issues
|
||||
Write-Verbose "Running docker $command $params" -Verbose
|
||||
if($SuppressHostOutput.IsPresent)
|
||||
{
|
||||
$result = docker $command $params 2>&1
|
||||
}
|
||||
else
|
||||
{
|
||||
&'docker' $command $params 2>&1 | Tee-Object -Variable result -ErrorAction SilentlyContinue | Out-String -Stream -ErrorAction SilentlyContinue | Write-Host -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
$dockerExitCode = $LASTEXITCODE
|
||||
if($PassThru.IsPresent)
|
||||
{
|
||||
Write-Verbose "passing through docker result$($result.length)..." -Verbose
|
||||
return $result
|
||||
}
|
||||
elseif($dockerExitCode -ne 0 -and $FailureAction -eq 'error')
|
||||
{
|
||||
Write-Error "docker $command failed with: $result" -ErrorAction Stop
|
||||
return $false
|
||||
}
|
||||
elseif($dockerExitCode -ne 0 -and $FailureAction -eq 'warning')
|
||||
{
|
||||
Write-Warning "docker $command failed with: $result"
|
||||
return $false
|
||||
}
|
||||
elseif($dockerExitCode -ne 0)
|
||||
{
|
||||
return $false
|
||||
}
|
||||
|
||||
return $true
|
||||
}
|
||||
|
||||
# Return a list of Linux Container Test Cases
|
||||
function Get-LinuxContainer
|
||||
{
|
||||
foreach($os in 'centos7','ubuntu16.04')
|
||||
{
|
||||
Write-Output @{
|
||||
Name = $os
|
||||
Path = "$PSScriptRoot/../release/$os"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Return a list of Windows Container Test Cases
|
||||
function Get-WindowsContainer
|
||||
{
|
||||
foreach($os in 'windowsservercore','nanoserver')
|
||||
{
|
||||
Write-Output @{
|
||||
Name = $os
|
||||
Path = "$PSScriptRoot/../release/$os"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$script:repoName = 'microsoft/powershell'
|
||||
function Get-RepoName
|
||||
{
|
||||
return $script:repoName
|
||||
}
|
||||
|
||||
function Set-RepoName
|
||||
{
|
||||
param([string]$RepoName)
|
||||
|
||||
$script:repoName = $RepoName
|
||||
$script:forcePull = $false
|
||||
}
|
||||
|
||||
function Test-SkipWindows
|
||||
{
|
||||
[bool] $canRunWindows = (Get-DockerEngineOs) -like 'Windows*'
|
||||
return ($IsLinux -or $IsMacOS -or !$canRunWindows)
|
||||
}
|
||||
|
||||
function Test-SkipLinux
|
||||
{
|
||||
$os = Get-DockerEngineOs
|
||||
|
||||
switch -wildcard ($os)
|
||||
{
|
||||
'*Linux*' {
|
||||
return $false
|
||||
}
|
||||
'*Mac' {
|
||||
return $false
|
||||
}
|
||||
# Docker for Windows means we are running the linux kernel
|
||||
'Docker for Windows' {
|
||||
return $false
|
||||
}
|
||||
'Windows*' {
|
||||
return $true
|
||||
}
|
||||
default {
|
||||
throw "Unknown docker os '$os'"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Get-TestContext
|
||||
{
|
||||
param(
|
||||
[ValidateSet('Linux','Windows','macOS')]
|
||||
[string]$Type
|
||||
)
|
||||
|
||||
$resultFileName = 'results.xml'
|
||||
$logFileName = 'results.log'
|
||||
$containerTestDrive = '/test'
|
||||
|
||||
# Return a windows context if the Context in Windows *AND*
|
||||
# the current system is windows, otherwise Join-path will fail.
|
||||
if($Type -eq 'Windows' -and $IsWindows)
|
||||
{
|
||||
$ContainerTestDrive = 'C:\test'
|
||||
}
|
||||
$resolvedTestDrive = (Resolve-Path "Testdrive:\").providerPath
|
||||
|
||||
return @{
|
||||
ResolvedTestDrive = $resolvedTestDrive
|
||||
ResolvedXmlPath = Join-Path $resolvedTestDrive -ChildPath $resultFileName
|
||||
ResolvedLogPath = Join-Path $resolvedTestDrive -ChildPath $logFileName
|
||||
ContainerTestDrive = $ContainerTestDrive
|
||||
ContainerXmlPath = Join-Path $containerTestDrive -ChildPath $resultFileName
|
||||
ContainerLogPath = Join-Path $containerTestDrive -ChildPath $logFileName
|
||||
Type = $Type
|
||||
ForcePull = $script:forcePull
|
||||
}
|
||||
}
|
||||
|
||||
function Get-ContainerPowerShellVersion
|
||||
{
|
||||
param(
|
||||
[HashTable] $TestContext,
|
||||
[string] $RepoName,
|
||||
[string] $Name
|
||||
)
|
||||
|
||||
$imageTag = "${script:repoName}:${Name}"
|
||||
|
||||
if($TestContext.ForcePull)
|
||||
{
|
||||
$null=Invoke-Docker -Command 'image', 'pull' -Params $imageTag -SuppressHostOutput
|
||||
}
|
||||
|
||||
$runParams = @()
|
||||
$localVolumeName = $testContext.resolvedTestDrive
|
||||
$runParams += '--rm'
|
||||
if($TestContext.Type -ne 'Windows' -and $IsWindows)
|
||||
{
|
||||
# use a container volume on windows because host volumes are not automatic
|
||||
$volumeName = "test-volume-" + (Get-Random -Minimum 100 -Maximum 999)
|
||||
|
||||
# using alpine because it's tiny
|
||||
$null=Invoke-Docker -Command create -Params '-v', '/test', '--name', $volumeName, 'alpine' -SuppressHostOutput
|
||||
$runParams += '--volumes-from'
|
||||
$runParams += $volumeName
|
||||
}
|
||||
else {
|
||||
$runParams += '-v'
|
||||
$runParams += "${localVolumeName}:$($testContext.containerTestDrive)"
|
||||
}
|
||||
|
||||
$runParams += $imageTag
|
||||
$runParams += 'pwsh'
|
||||
$runParams += '-c'
|
||||
$runParams += ('$PSVersionTable.PSVersion.ToString() | out-string | out-file -encoding ascii -FilePath '+$testContext.containerLogPath)
|
||||
|
||||
$null = Invoke-Docker -Command run -Params $runParams -SuppressHostOutput
|
||||
if($TestContext.Type -ne 'Windows' -and $IsWindows)
|
||||
{
|
||||
$null = Invoke-Docker -Command cp -Params "${volumeName}:$($testContext.containerLogPath)", $TestContext.ResolvedLogPath
|
||||
$null = Invoke-Docker -Command container, rm -Params $volumeName, '--force' -SuppressHostOutput
|
||||
}
|
||||
return (Get-Content -Encoding Ascii $testContext.resolvedLogPath)[0]
|
||||
}
|
||||
|
||||
# Function defines a config mapping for testing Preview packages.
|
||||
# The list of supported OS for each release can be found here:
|
||||
# https://github.com/PowerShell/PowerShell-Docs/blob/staging/reference/docs-conceptual/PowerShell-Core-Support.md#supported-platforms
|
||||
function Get-DefaultPreviewConfigForPackageValidation
|
||||
{
|
||||
# format: <DockerfileFolderName>=<PartOfPackageFilename>
|
||||
@{ 'centos7'='rhel.7';
|
||||
'debian.9'='debian.9';
|
||||
'fedora28'='rhel.7';
|
||||
'opensuse42.3'='linux-x64.tar.gz';
|
||||
'ubuntu16.04'='ubuntu.16.04';
|
||||
'ubuntu18.04'='ubuntu.18.04';
|
||||
'fxdependent-centos7'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-debian.9'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-fedora28'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-opensuse42.3'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-ubuntu16.04'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-ubuntu18.04'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-dotnetsdk-latest'='linux-x64-fxd-dotnetsdk.tar.gz'
|
||||
}
|
||||
}
|
||||
|
||||
# Function defines a config mapping for testing Stable packages.
|
||||
# The list of supported OS for each release can be found here:
|
||||
# https://github.com/PowerShell/PowerShell-Docs/blob/staging/reference/docs-conceptual/PowerShell-Core-Support.md#supported-platforms
|
||||
function Get-DefaultStableConfigForPackageValidation
|
||||
{
|
||||
# format: <DockerfileFolderName>=<PartOfPackageFilename>
|
||||
@{ 'centos7'='rhel.7';
|
||||
'debian.9'='debian.9';
|
||||
'opensuse42.3'='linux-x64.tar.gz';
|
||||
'ubuntu16.04'='ubuntu.16.04';
|
||||
'fxdependent-centos7'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-debian.9'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-opensuse42.3'='linux-x64-fxdependent.tar.gz';
|
||||
'fxdependent-ubuntu16.04'='linux-x64-fxdependent.tar.gz'
|
||||
}
|
||||
}
|
||||
|
||||
# Returns a list of files in a specified Azure container.
|
||||
function Get-PackageNamesOnAzureBlob
|
||||
{
|
||||
param(
|
||||
[string]
|
||||
$ContainerUrl,
|
||||
|
||||
# $SAS (shared access signature) param should include beginning '?' and trailing '&'
|
||||
[string]
|
||||
$SAS
|
||||
)
|
||||
|
||||
|
||||
$response = Invoke-RestMethod -Method Get -Uri $($ContainerUrl + $SAS + 'restype=container&comp=list')
|
||||
|
||||
$xmlResponce = [xml]$response.Substring($response.IndexOf('<EnumerationResults')) # remove some bad chars in the beginning that break XML parsing
|
||||
($xmlResponce.EnumerationResults.Blobs.Blob).Name
|
||||
}
|
||||
|
||||
# This function is used for basic validation of PS packages during a release;
|
||||
# During the process Docker files are filled out and executed with Docker build;
|
||||
# During the build PS packages are downloaded onto Docker containers, installed and selected Pester tests from PowerShell Github repo are executed.
|
||||
# This function must be run on a Docker host machine in 'Linux containers' mode, such as Windows 10 server with Hyper-V role installed.
|
||||
function Test-PSPackage
|
||||
{
|
||||
param(
|
||||
[string]
|
||||
[Parameter(Mandatory=$true)]
|
||||
$PSPackageLocation, # e.g. Azure container storage url
|
||||
[string]
|
||||
$SAS,# $SAS (shared access signature) param should include beginning '?' and trailing '&'
|
||||
[Hashtable]
|
||||
$Config, # hashtable that maps packages to dockerfiles; for example see Get-DefaultConfigForPackageValidation
|
||||
[string]
|
||||
$TestList = "/PowerShell/test/powershell/Modules/PackageManagement/PackageManagement.Tests.ps1,/PowerShell/test/powershell/engine/Module",
|
||||
[string]
|
||||
$TestDownloadCommand = "git clone --recursive https://github.com/PowerShell/PowerShell.git",
|
||||
[switch]
|
||||
$Preview = $false
|
||||
)
|
||||
|
||||
$PSPackageLocation = $PSPackageLocation.TrimEnd('/','\') # code below assumes there is no trailing separator in PSPackageLocation url
|
||||
$RootFolder = Join-Path $PSScriptRoot 'Templates'
|
||||
|
||||
|
||||
$packageList = Get-PackageNamesOnAzureBlob -ContainerUrl $PSPackageLocation -SAS $SAS
|
||||
if (!$Config)
|
||||
{
|
||||
if ($Preview)
|
||||
{
|
||||
$Config = Get-DefaultPreviewConfigForPackageValidation
|
||||
}
|
||||
else
|
||||
{
|
||||
$Config = Get-DefaultStableConfigForPackageValidation
|
||||
}
|
||||
}
|
||||
|
||||
# pre-process $Config: verify build directories and packages exist
|
||||
$map = @{}
|
||||
foreach($kp in $Config.GetEnumerator())
|
||||
{
|
||||
$buildDir = Join-Path $RootFolder $kp.Key
|
||||
$packageName = $packageList | Where-Object {$_ -like $('*'+$kp.Value+'*')}
|
||||
|
||||
if (-not (Test-Path $buildDir))
|
||||
{
|
||||
Write-Error "Directory does Not exist - $buildDir; Check `$Config parameter and '$RootFolder' folder"
|
||||
}
|
||||
elseif (-not ($packageName))
|
||||
{
|
||||
Write-Error "Can not find package that matches filter *$($kp.Value)*; Check `$Config parameter and '$PSPackageLocation'"
|
||||
}
|
||||
else
|
||||
{
|
||||
$map.Add($buildDir, $packageName)
|
||||
}
|
||||
}
|
||||
|
||||
Write-Verbose "Using configuration:" -Verbose
|
||||
Write-Verbose ($map | Format-List | Out-String) -Verbose
|
||||
|
||||
$results = @{}
|
||||
$returnValue = $true
|
||||
|
||||
# run builds sequentially, but don't block for errors so that configs after failed one can run
|
||||
foreach($kp in $map.GetEnumerator())
|
||||
{
|
||||
$dockerDirPath = $kp.Key
|
||||
$packageFileName = $kp.Value
|
||||
|
||||
$buildArgs = @()
|
||||
|
||||
$buildArgs += "--build-arg","PACKAGENAME=$packageFileName"
|
||||
$buildArgs += "--build-arg","PACKAGELOCATION=$PSPackageLocation"
|
||||
if ($Preview)
|
||||
{
|
||||
$buildArgs += "--build-arg","PREVIEWSUFFIX=-preview"
|
||||
}
|
||||
$buildArgs += "--build-arg","TESTLIST=$TestList"
|
||||
$buildArgs += "--build-arg","TESTDOWNLOADCOMMAND=$TestDownloadCommand"
|
||||
$buildArgs += "--no-cache"
|
||||
$buildArgs += $dockerDirPath
|
||||
|
||||
$dockerResult = Invoke-Docker -Command 'build' -Params $buildArgs -FailureAction warning
|
||||
|
||||
$confName = Split-Path -Leaf $dockerDirPath
|
||||
$results.Add($confName, $dockerResult)
|
||||
if (-not $dockerResult) {$returnValue = $false}
|
||||
}
|
||||
|
||||
# in the end print results for all configurations
|
||||
Write-Verbose "Package validation results:" -Verbose
|
||||
$results
|
||||
|
||||
return $returnValue
|
||||
}
|
|
@ -71,7 +71,7 @@ Start-PSBuild
|
|||
Congratulations! If everything went right, PowerShell is now built.
|
||||
The `Start-PSBuild` script will output the location of the executable:
|
||||
|
||||
`./src/powershell-unix/bin/Debug/net6.0/linux-x64/publish/pwsh`.
|
||||
`./src/powershell-unix/bin/Debug/net5.0/linux-x64/publish/pwsh`.
|
||||
|
||||
You should now be running the PowerShell Core that you just built, if you run the above executable.
|
||||
You can run our cross-platform Pester tests with `Start-PSPester`, and our xUnit tests with `Start-PSxUnit`.
|
||||
|
|
|
@ -36,4 +36,4 @@ We cannot do this for you in the build module due to #[847][].
|
|||
|
||||
Start a PowerShell session by running `pwsh`, and then use `Start-PSBuild` from the module.
|
||||
|
||||
After building, PowerShell will be at `./src/powershell-unix/bin/Debug/net6.0/osx-x64/publish/pwsh`.
|
||||
After building, PowerShell will be at `./src/powershell-unix/bin/Debug/net5.0/osx-x64/publish/pwsh`.
|
||||
|
|
|
@ -59,11 +59,11 @@ Import-Module ./build.psm1
|
|||
Start-PSBuild
|
||||
```
|
||||
|
||||
Congratulations! If everything went right, PowerShell is now built and executable as `./src/powershell-win-core/bin/Debug/net6.0/win7-x64/publish/pwsh.exe`.
|
||||
Congratulations! If everything went right, PowerShell is now built and executable as `./src/powershell-win-core/bin/Debug/net5.0/win7-x64/publish/pwsh.exe`.
|
||||
|
||||
This location is of the form `./[project]/bin/[configuration]/[framework]/[rid]/publish/[binary name]`,
|
||||
and our project is `powershell`, configuration is `Debug` by default,
|
||||
framework is `net6.0`, runtime identifier is `win7-x64` by default,
|
||||
framework is `net5.0`, runtime identifier is `win7-x64` by default,
|
||||
and binary name is `pwsh`.
|
||||
The function `Get-PSOutput` will return the path to the executable;
|
||||
thus you can execute the development copy via `& (Get-PSOutput)`.
|
||||
|
|
|
@ -26,9 +26,10 @@ The PowerShell Committee and its members (aka Committee Members) are the primary
|
|||
### Current Committee Members
|
||||
|
||||
* Bruce Payette ([BrucePay](https://github.com/BrucePay))
|
||||
* Dongbo Wang ([daxian-dbw](https://github.com/daxian-dbw))
|
||||
* Jim Truher ([JamesWTruher](https://github.com/JamesWTruher))
|
||||
* Paul Higinbotham ([paulhigin](https://github.com/paulhigin))
|
||||
* Rob Holt ([rjmholt](https://github.com/rjmholt))
|
||||
* Joey Aiello ([joeyaiello](https://github.com/joeyaiello))
|
||||
* Kenneth Hansen ([khansen00](https://github.com/khansen00))
|
||||
* Steve Lee ([SteveL-MSFT](https://github.com/SteveL-MSFT))
|
||||
|
||||
### Committee Member Responsibilities
|
||||
|
|
|
@ -19,6 +19,7 @@ Today, DSC is integrated into the PowerShell language, and we need to manage it
|
|||
|
||||
* @TravisEz13
|
||||
* @theJasonHelmick
|
||||
* @joeyaiello
|
||||
* @anmenaga
|
||||
|
||||
## Developer Experience
|
||||
|
@ -108,10 +109,10 @@ Given the commonality of serialization boundaries, the Remoting WG should also f
|
|||
|
||||
### Members
|
||||
|
||||
* @anmenaga
|
||||
* @jborean93
|
||||
* @PaulHigin
|
||||
* @SteveL-MSFT
|
||||
* @TravisEz13
|
||||
* @anmenaga
|
||||
|
||||
## Cmdlets and Modules
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "6.0.100"
|
||||
"version": "6.0.100-preview.4.21255.9"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,11 +2,10 @@
|
|||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="dotnet" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v2" />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||
</packageSources>
|
||||
<disabledPackageSources>
|
||||
<clear />
|
||||
</disabledPackageSources>
|
||||
</configuration>
|
||||
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// Initializes a new instance of the <see cref="ParameterSetEntry"/> class.
|
||||
/// </summary>
|
||||
/// <param name="mandatoryParameterCount"></param>
|
||||
internal ParameterSetEntry(uint mandatoryParameterCount)
|
||||
internal ParameterSetEntry(UInt32 mandatoryParameterCount)
|
||||
{
|
||||
this.MandatoryParameterCount = mandatoryParameterCount;
|
||||
this.IsDefaultParameterSet = false;
|
||||
|
@ -80,7 +80,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
/// <param name="mandatoryParameterCount"></param>
|
||||
/// <param name="mandatory"></param>
|
||||
internal ParameterSetEntry(uint mandatoryParameterCount, bool isDefault)
|
||||
internal ParameterSetEntry(UInt32 mandatoryParameterCount, bool isDefault)
|
||||
{
|
||||
this.MandatoryParameterCount = mandatoryParameterCount;
|
||||
this.IsDefaultParameterSet = isDefault;
|
||||
|
@ -104,7 +104,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <summary>
|
||||
/// Property <c>MandatoryParameterCount</c>
|
||||
/// </summary>
|
||||
internal uint MandatoryParameterCount { get; } = 0;
|
||||
internal UInt32 MandatoryParameterCount { get; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Property <c>IsValueSet</c>
|
||||
|
@ -119,12 +119,12 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <summary>
|
||||
/// Property <c>SetMandatoryParameterCount</c>
|
||||
/// </summary>
|
||||
internal uint SetMandatoryParameterCount { get; set; } = 0;
|
||||
internal UInt32 SetMandatoryParameterCount { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Property <c>SetMandatoryParameterCountAtBeginProcess</c>
|
||||
/// </summary>
|
||||
internal uint SetMandatoryParameterCountAtBeginProcess { get; set; } = 0;
|
||||
internal UInt32 SetMandatoryParameterCountAtBeginProcess { get; set; } = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -97,7 +97,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
{
|
||||
List<CimSessionProxy> proxys = new();
|
||||
string nameSpace = ConstValue.GetNamespace(cmdlet.Namespace);
|
||||
string className = cmdlet.ClassName ?? @"*";
|
||||
string className = (cmdlet.ClassName == null) ? @"*" : cmdlet.ClassName;
|
||||
CimGetCimClassContext context = new(
|
||||
cmdlet.ClassName,
|
||||
cmdlet.MethodName,
|
||||
|
|
|
@ -153,7 +153,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
string theNamespace,
|
||||
string queryDialect,
|
||||
string queryExpression,
|
||||
uint operationTimeout)
|
||||
UInt32 operationTimeout)
|
||||
{
|
||||
ValidationHelper.ValidateNoNullorWhiteSpaceArgument(queryExpression, queryExpressionParameterName);
|
||||
computerName = ConstValue.GetComputerName(computerName);
|
||||
|
@ -173,7 +173,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
string theNamespace,
|
||||
string queryDialect,
|
||||
string queryExpression,
|
||||
uint operationTimeout)
|
||||
UInt32 operationTimeout)
|
||||
{
|
||||
ValidationHelper.ValidateNoNullorWhiteSpaceArgument(queryExpression, queryExpressionParameterName);
|
||||
ValidationHelper.ValidateNoNullArgument(cimSession, cimSessionParameterName);
|
||||
|
@ -192,7 +192,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
string theNameSpace,
|
||||
string theQueryDialect,
|
||||
string theQueryExpression,
|
||||
uint theOperationTimeout)
|
||||
UInt32 theOperationTimeout)
|
||||
{
|
||||
enableRaisingEvents = false;
|
||||
status = Status.Default;
|
||||
|
@ -378,7 +378,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
private string nameSpace;
|
||||
private string queryDialect;
|
||||
private string queryExpression;
|
||||
private uint operationTimeout;
|
||||
private UInt32 operationTimeout;
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
|
|
|
@ -187,7 +187,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
}
|
||||
|
||||
CimSessionProxy proxy = CreateCimSessionProxy(newCimInstanceContext.Proxy);
|
||||
string nameSpace = cimInstance.CimSystemProperties.Namespace ?? newCimInstanceContext.Namespace;
|
||||
string nameSpace = (cimInstance.CimSystemProperties.Namespace == null) ? newCimInstanceContext.Namespace : cimInstance.CimSystemProperties.Namespace;
|
||||
proxy.GetInstanceAsync(nameSpace, cimInstance);
|
||||
}
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
string nameSpace,
|
||||
string queryDialect,
|
||||
string queryExpression,
|
||||
uint operationTimeout)
|
||||
UInt32 operationTimeout)
|
||||
{
|
||||
DebugHelper.WriteLogEx("queryDialect = '{0}'; queryExpression = '{1}'", 0, queryDialect, queryExpression);
|
||||
this.TargetComputerName = computerName;
|
||||
|
@ -146,12 +146,12 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
string nameSpace,
|
||||
string queryDialect,
|
||||
string queryExpression,
|
||||
uint operationTimeout)
|
||||
UInt32 operationTimeout)
|
||||
{
|
||||
DebugHelper.WriteLogEx("queryDialect = '{0}'; queryExpression = '{1}'", 0, queryDialect, queryExpression);
|
||||
if (cimSession == null)
|
||||
{
|
||||
throw new ArgumentNullException(string.Format(CultureInfo.CurrentUICulture, CimCmdletStrings.NullArgument, nameof(cimSession)));
|
||||
throw new ArgumentNullException(string.Format(CultureInfo.CurrentUICulture, CimCmdletStrings.NullArgument, @"cimSession"));
|
||||
}
|
||||
|
||||
this.TargetComputerName = cimSession.ComputerName;
|
||||
|
@ -317,7 +317,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <returns></returns>
|
||||
private CimSessionProxy CreateSessionProxy(
|
||||
string computerName,
|
||||
uint timeout)
|
||||
UInt32 timeout)
|
||||
{
|
||||
CimSessionProxy proxy = CreateCimSessionProxy(computerName);
|
||||
proxy.OperationTimeout = timeout;
|
||||
|
@ -332,7 +332,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <returns></returns>
|
||||
private CimSessionProxy CreateSessionProxy(
|
||||
CimSession session,
|
||||
uint timeout)
|
||||
UInt32 timeout)
|
||||
{
|
||||
CimSessionProxy proxy = CreateCimSessionProxy(session);
|
||||
proxy.OperationTimeout = timeout;
|
||||
|
|
|
@ -951,7 +951,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
CimTestCimSessionContext testCimSessionContext = context as CimTestCimSessionContext;
|
||||
uint sessionId = this.sessionState.GenerateSessionId();
|
||||
string originalSessionName = testCimSessionContext.CimSessionWrapper.Name;
|
||||
string sessionName = originalSessionName ?? string.Format(CultureInfo.CurrentUICulture, @"{0}{1}", CimSessionState.CimSessionClassName, sessionId);
|
||||
string sessionName = (originalSessionName != null) ? originalSessionName : string.Format(CultureInfo.CurrentUICulture, @"{0}{1}", CimSessionState.CimSessionClassName, sessionId);
|
||||
|
||||
// detach CimSession from the proxy object
|
||||
CimSession createdCimSession = testCimSessionContext.Proxy.Detach();
|
||||
|
|
|
@ -542,11 +542,11 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <summary>
|
||||
/// Set timeout value (seconds) of the operation.
|
||||
/// </summary>
|
||||
public uint OperationTimeout
|
||||
public UInt32 OperationTimeout
|
||||
{
|
||||
get
|
||||
{
|
||||
return (uint)this.OperationOptions.Timeout.TotalSeconds;
|
||||
return (UInt32)this.OperationOptions.Timeout.TotalSeconds;
|
||||
}
|
||||
|
||||
set
|
||||
|
@ -821,7 +821,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
/// <param name="channel"></param>
|
||||
/// <param name="message"></param>
|
||||
internal void WriteMessage(uint channel, string message)
|
||||
internal void WriteMessage(UInt32 channel, string message)
|
||||
{
|
||||
DebugHelper.WriteLogEx("Channel = {0} message = {1}", 0, channel, message);
|
||||
try
|
||||
|
@ -863,7 +863,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
CimCmdletStrings.CimOperationStart,
|
||||
operation,
|
||||
(parameters.Length == 0) ? "null" : parameters.ToString());
|
||||
WriteMessage((uint)CimWriteMessageChannel.Verbose, operationStartMessage);
|
||||
WriteMessage((UInt32)CimWriteMessageChannel.Verbose, operationStartMessage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -878,7 +878,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
string operationCompleteMessage = string.Format(CultureInfo.CurrentUICulture,
|
||||
CimCmdletStrings.CimOperationCompleted,
|
||||
operation);
|
||||
WriteMessage((uint)CimWriteMessageChannel.Verbose, operationCompleteMessage);
|
||||
WriteMessage((UInt32)CimWriteMessageChannel.Verbose, operationCompleteMessage);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -894,8 +894,8 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
public void WriteProgress(string activity,
|
||||
string currentOperation,
|
||||
string statusDescription,
|
||||
uint percentageCompleted,
|
||||
uint secondsRemaining)
|
||||
UInt32 percentageCompleted,
|
||||
UInt32 secondsRemaining)
|
||||
{
|
||||
DebugHelper.WriteLogEx("activity:{0}; currentOperation:{1}; percentageCompleted:{2}; secondsRemaining:{3}",
|
||||
0, activity, currentOperation, percentageCompleted, secondsRemaining);
|
||||
|
@ -1879,7 +1879,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <param name="credential"></param>
|
||||
/// <returns></returns>
|
||||
internal static CimSessionOptions CreateCimSessionOption(string computerName,
|
||||
uint timeout, CimCredential credential)
|
||||
UInt32 timeout, CimCredential credential)
|
||||
{
|
||||
DebugHelper.WriteLogEx();
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
|
||||
#region Properties
|
||||
|
||||
internal uint Channel { get; }
|
||||
internal UInt32 Channel { get; }
|
||||
|
||||
internal string Message { get; }
|
||||
|
||||
|
@ -35,7 +35,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="CimWriteMessage"/> class.
|
||||
/// </summary>
|
||||
public CimWriteMessage(uint channel,
|
||||
public CimWriteMessage(UInt32 channel,
|
||||
string message)
|
||||
{
|
||||
this.Channel = channel;
|
||||
|
|
|
@ -40,8 +40,8 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
int theActivityID,
|
||||
string theCurrentOperation,
|
||||
string theStatusDescription,
|
||||
uint thePercentageCompleted,
|
||||
uint theSecondsRemaining)
|
||||
UInt32 thePercentageCompleted,
|
||||
UInt32 theSecondsRemaining)
|
||||
{
|
||||
this.Activity = theActivity;
|
||||
this.ActivityID = theActivityID;
|
||||
|
@ -112,12 +112,12 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <summary>
|
||||
/// Gets the percentage completed of the given activity.
|
||||
/// </summary>
|
||||
internal uint PercentageCompleted { get; }
|
||||
internal UInt32 PercentageCompleted { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the number of seconds remaining for the given activity.
|
||||
/// </summary>
|
||||
internal uint SecondsRemaining { get; }
|
||||
internal UInt32 SecondsRemaining { get; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
|
|
@ -110,7 +110,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter(ValueFromPipelineByPropertyName = true)]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// <para>
|
||||
|
|
|
@ -79,7 +79,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter(ValueFromPipelineByPropertyName = true)]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The following is the definition of the input parameter "Session".
|
||||
|
|
|
@ -260,7 +260,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// <para>The following is the definition of the input parameter "InputObject".
|
||||
|
|
|
@ -81,7 +81,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
ValueFromPipelineByPropertyName = true,
|
||||
ParameterSetName = SessionIdSet)]
|
||||
[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
|
||||
public uint[] Id
|
||||
public UInt32[] Id
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -95,7 +95,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
}
|
||||
}
|
||||
|
||||
private uint[] id;
|
||||
private UInt32[] id;
|
||||
|
||||
/// <summary>
|
||||
/// The following is the definition of the input parameter "InstanceID".
|
||||
|
|
|
@ -373,7 +373,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -223,7 +223,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// <para>
|
||||
|
|
|
@ -104,7 +104,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter(ValueFromPipelineByPropertyName = true)]
|
||||
public uint OperationTimeoutSec
|
||||
public UInt32 OperationTimeoutSec
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -118,7 +118,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
}
|
||||
}
|
||||
|
||||
private uint operationTimeout;
|
||||
private UInt32 operationTimeout;
|
||||
internal bool operationTimeoutSet = false;
|
||||
|
||||
/// <summary>
|
||||
|
@ -136,7 +136,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// This is specificly for wsman protocol.
|
||||
/// </summary>
|
||||
[Parameter(ValueFromPipelineByPropertyName = true)]
|
||||
public uint Port
|
||||
public UInt32 Port
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -150,7 +150,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
}
|
||||
}
|
||||
|
||||
private uint port;
|
||||
private UInt32 port;
|
||||
private bool portSet = false;
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -231,7 +231,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Parameter(ValueFromPipelineByPropertyName = true,
|
||||
ParameterSetName = WSManParameterSet)]
|
||||
public uint MaxEnvelopeSizeKB
|
||||
public UInt32 MaxEnvelopeSizeKB
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -246,7 +246,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
}
|
||||
}
|
||||
|
||||
private uint maxenvelopesizekb;
|
||||
private UInt32 maxenvelopesizekb;
|
||||
private bool maxenvelopesizekbSet = false;
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -124,7 +124,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(CimBaseCommand.AliasOT)]
|
||||
[Parameter]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The following is the definition of the input parameter "Session".
|
||||
|
|
|
@ -154,7 +154,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The following is the definition of the input parameter "InputObject".
|
||||
|
|
|
@ -108,7 +108,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
ValueFromPipelineByPropertyName = true,
|
||||
ParameterSetName = SessionIdSet)]
|
||||
[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
|
||||
public uint[] Id
|
||||
public UInt32[] Id
|
||||
{
|
||||
get
|
||||
{
|
||||
|
@ -122,7 +122,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
}
|
||||
}
|
||||
|
||||
private uint[] id;
|
||||
private UInt32[] id;
|
||||
|
||||
/// <summary>
|
||||
/// The following is the definition of the input parameter "InstanceId".
|
||||
|
|
|
@ -151,7 +151,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// </summary>
|
||||
[Alias(AliasOT)]
|
||||
[Parameter]
|
||||
public uint OperationTimeoutSec { get; set; }
|
||||
public UInt32 OperationTimeoutSec { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The following is the definition of the input parameter "InputObject".
|
||||
|
|
|
@ -88,7 +88,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <returns></returns>
|
||||
internal static IEnumerable<string> GetComputerNames(IEnumerable<string> computerNames)
|
||||
{
|
||||
return computerNames ?? NullComputerNames;
|
||||
return (computerNames == null) ? NullComputerNames : computerNames;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -110,7 +110,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <returns></returns>
|
||||
internal static string GetNamespace(string nameSpace)
|
||||
{
|
||||
return nameSpace ?? DefaultNameSpace;
|
||||
return (nameSpace == null) ? DefaultNameSpace : nameSpace;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -122,7 +122,7 @@ namespace Microsoft.Management.Infrastructure.CimCmdlets
|
|||
/// <returns></returns>
|
||||
internal static string GetQueryDialectWithDefault(string queryDialect)
|
||||
{
|
||||
return queryDialect ?? DefaultQueryDialect;
|
||||
return (queryDialect == null) ? DefaultQueryDialect : queryDialect;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -690,7 +690,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
{
|
||||
parameterType = GetPropertyString(parameterTypeData, "name");
|
||||
|
||||
// If there is no type for the parameter, we expect it is System.Object
|
||||
// If there is no type for the paramter, we expect it is System.Object
|
||||
if (string.IsNullOrEmpty(parameterType))
|
||||
{
|
||||
parameterType = "object";
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Management.Automation;
|
||||
using System.Windows.Documents;
|
||||
|
@ -273,11 +274,13 @@ namespace Microsoft.Management.UI.Internal
|
|||
/// <param name="propertyName">Property name.</param>
|
||||
private void OnNotifyPropertyChanged(string propertyName)
|
||||
{
|
||||
#pragma warning disable IDE1005 // IDE1005: Delegate invocation can be simplified.
|
||||
PropertyChangedEventHandler handler = this.PropertyChanged;
|
||||
if (handler != null)
|
||||
{
|
||||
handler(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
#pragma warning restore IDE1005s
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Media;
|
||||
|
@ -107,10 +108,15 @@ namespace Microsoft.Management.UI.Internal
|
|||
bool newHighlighted = false;
|
||||
|
||||
ParagraphBuilder.MoveSpanToPosition(ref currentBoldIndex, ref currentBoldSpan, i, this.boldSpans);
|
||||
|
||||
#pragma warning disable IDE0075 // IDE0075: Conditional expression can be simplified
|
||||
newBold = currentBoldSpan == null ? false : currentBoldSpan.Value.Contains(i);
|
||||
#pragma warning restore IDE0075
|
||||
|
||||
ParagraphBuilder.MoveSpanToPosition(ref currentHighlightedIndex, ref currentHighlightedSpan, i, this.highlightedSpans);
|
||||
#pragma warning disable IDE0075 // IDE0075: Conditional expression can be simplified
|
||||
newHighlighted = currentHighlightedSpan == null ? false : currentHighlightedSpan.Value.Contains(i);
|
||||
#pragma warning restore IDE0075
|
||||
|
||||
if (newBold != currentBold || newHighlighted != currentHighlighted)
|
||||
{
|
||||
|
@ -128,7 +134,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Highlights all occurrences of <paramref name="search"/>.
|
||||
/// Highlights all ocurrences of <paramref name="search"/>.
|
||||
/// This is called after all calls to AddText have been made.
|
||||
/// </summary>
|
||||
/// <param name="search">Search string.</param>
|
||||
|
@ -249,7 +255,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
/// </summary>
|
||||
/// <param name="currentSpanIndex">Current index within <paramref name="allSpans"/>.</param>
|
||||
/// <param name="currentSpan">Current span within <paramref name="allSpans"/>.</param>
|
||||
/// <param name="caracterPosition">Character position. This comes from a position within this.textBuilder.</param>
|
||||
/// <param name="caracterPosition">Caracter position. This comes from a position within this.textBuilder.</param>
|
||||
/// <param name="allSpans">The collection of spans. This is either this.boldSpans or this.highlightedSpans.</param>
|
||||
private static void MoveSpanToPosition(ref int currentSpanIndex, ref TextSpan? currentSpan, int caracterPosition, List<TextSpan> allSpans)
|
||||
{
|
||||
|
@ -301,11 +307,13 @@ namespace Microsoft.Management.UI.Internal
|
|||
/// <param name="propertyName">Property name.</param>
|
||||
private void OnNotifyPropertyChanged(string propertyName)
|
||||
{
|
||||
#pragma warning disable IDE1005 // IDE1005: Delegate invocation can be simplified.s
|
||||
PropertyChangedEventHandler handler = this.PropertyChanged;
|
||||
if (handler != null)
|
||||
{
|
||||
handler(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
#pragma warning restore IDE1005
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -56,7 +56,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
}
|
||||
|
||||
// If the caret is in the end of a highlight we move to the adjacent run
|
||||
// It has to be in the end because if there is a match at the beginning of the file
|
||||
// It has to be in the end because if there is a match at the begining of the file
|
||||
// and the caret has not been touched (so it is in the beginning of the file too)
|
||||
// we want to highlight this first match.
|
||||
// Considering the caller allways set the caret to the end of the highlight
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Windows;
|
||||
using System.Windows.Automation;
|
||||
using System.Windows.Controls.Primitives;
|
||||
|
@ -79,6 +80,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
}
|
||||
}
|
||||
|
||||
[SuppressMessage("Performance", "CA1822: Mark members as static", Justification = "Potential breaking change")]
|
||||
private void SetFocus(UIElement element)
|
||||
{
|
||||
if (element.Focusable)
|
||||
|
|
|
@ -35,7 +35,9 @@ namespace Microsoft.Management.UI.Internal
|
|||
{
|
||||
get
|
||||
{
|
||||
#pragma warning disable IDE0075 // IDE0075: Conditional expression can be simplified
|
||||
return (this.renameButton != null) ? this.renameButton.IsChecked.Value : false;
|
||||
#pragma warning restore IDE0075
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ using System.Collections.Generic;
|
|||
using System.Collections.ObjectModel;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Microsoft.Management.UI.Internal
|
||||
{
|
||||
|
@ -97,6 +98,8 @@ namespace Microsoft.Management.UI.Internal
|
|||
#endregion IAsyncProgress
|
||||
|
||||
#region Private Methods
|
||||
|
||||
#pragma warning disable IDE1005 // IDE1005: Delegate invocation can be simplified.
|
||||
private void OnCollectionChanged(NotifyCollectionChangedEventArgs args)
|
||||
{
|
||||
NotifyCollectionChangedEventHandler eh = this.CollectionChanged;
|
||||
|
@ -117,6 +120,8 @@ namespace Microsoft.Management.UI.Internal
|
|||
}
|
||||
}
|
||||
|
||||
#pragma warning restore IDE1005
|
||||
|
||||
// forward CollectionChanged events from the base list to our listeners
|
||||
private void HandleCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
|
||||
{
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Controls.Primitives;
|
||||
|
@ -202,6 +203,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
return this.GetConstrainedValue(newWidth, this.MaxWidth, this.MinWidth);
|
||||
}
|
||||
|
||||
[SuppressMessage("Performance", "CA1822: Mark members as static", Justification = "Potential breaking change")]
|
||||
private double GetHorizontalDelta(ResizeGripLocation location, double horzDelta)
|
||||
{
|
||||
double realDelta;
|
||||
|
@ -219,6 +221,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
return realDelta;
|
||||
}
|
||||
|
||||
[SuppressMessage("Performance", "CA1822: Mark members as static", Justification = "Potential breaking change")]
|
||||
private double GetConstrainedValue(double value, double max, double min)
|
||||
{
|
||||
return Math.Min(max, Math.Max(value, min));
|
||||
|
|
|
@ -5,6 +5,7 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.Reflection;
|
||||
|
||||
|
@ -196,6 +197,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
|
||||
#region Helpers
|
||||
|
||||
[SuppressMessage("Performance", "CA1822: Mark members as static", Justification = "Potential breaking change")]
|
||||
private bool TryGetGenericParameterForComparableValueFilterRule(FilterRule rule, out Type genericParameter)
|
||||
{
|
||||
genericParameter = null;
|
||||
|
@ -217,6 +219,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
return true;
|
||||
}
|
||||
|
||||
[SuppressMessage("Performance", "CA1822: Mark members as static", Justification = "Potential breaking change")]
|
||||
private object GetValueFromValidatingValue(FilterRule rule, string propertyName)
|
||||
{
|
||||
Debug.Assert(rule != null && !string.IsNullOrEmpty(propertyName), "rule and propertyname are not null");
|
||||
|
@ -236,6 +239,7 @@ namespace Microsoft.Management.UI.Internal
|
|||
return property.GetValue(validatingValue, null);
|
||||
}
|
||||
|
||||
[SuppressMessage("Performance", "CA1822: Mark members as static", Justification = "Potential breaking change")]
|
||||
private void SetValueOnValidatingValue(FilterRule rule, string propertyName, object value)
|
||||
{
|
||||
Debug.Assert(rule != null && !string.IsNullOrEmpty(propertyName), "rule and propertyname are not null");
|
||||
|
|
|
@ -5,11 +5,12 @@ using System;
|
|||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Microsoft.Management.UI.Internal
|
||||
{
|
||||
/// <summary>
|
||||
/// The FilterEvaluator class is responsible for allowing the registration of
|
||||
/// The FilterEvaluator class is responsible for allowing the registeration of
|
||||
/// the FilterExpressionProviders and producing a FilterExpression composed of
|
||||
/// the FilterExpression returned from the providers.
|
||||
/// </summary>
|
||||
|
@ -173,6 +174,8 @@ namespace Microsoft.Management.UI.Internal
|
|||
|
||||
#region NotifyPropertyChanged
|
||||
|
||||
#pragma warning disable IDE1005 // IDE1005: Delegate invocation can be simplified.
|
||||
|
||||
/// <summary>
|
||||
/// Notifies listeners that a property has changed.
|
||||
/// </summary>
|
||||
|
@ -214,6 +217,8 @@ namespace Microsoft.Management.UI.Internal
|
|||
}
|
||||
}
|
||||
|
||||
#pragma warning restore IDE1005
|
||||
|
||||
private void FilterProvider_FilterExpressionChanged(object sender, EventArgs e)
|
||||
{
|
||||
// Update HasFilterExpression \\
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue