Refactor Get-DotnetFrameworkTools and allow multiple SDKs installation (#5464)

This commit is contained in:
Alexis Saettler
2022-05-11 17:59:46 +02:00
committed by GitHub
parent 63c06b0c58
commit 0ca5e834c0
3 changed files with 14 additions and 13 deletions

View File

@@ -226,14 +226,13 @@ function Get-DotnetRuntimes {
function Get-DotnetFrameworkTools {
$path = "${env:ProgramFiles(x86)}\Microsoft SDKs\Windows\*\*\NETFX*"
$frameworkVersions = @()
Get-ChildItem -Path $path -Directory | ForEach-Object {
$frameworkVersions += ($_.Name -Split(" "))[1]
$frameworkPath = $_.Fullname -Replace " \d+\.\d+(\.\d+)?", " <version>"
}
Get-ChildItem -Path $path -Directory | Group-Object {
$_.Fullname -Replace " \d+\.\d+(\.\d+)?", " <version>"
} | ForEach-Object {
[PSCustomObject]@{
Versions = $frameworkVersions -Join " "
Path = $frameworkPath
Versions = $_.Group.Name | ForEach-Object { $_.Split(" ")[1] }
Path = $_.Name
}
}
}

View File

@@ -267,12 +267,15 @@ Get-DotnetRuntimes | Foreach-Object {
}
$markdown += New-MDHeader ".NET Framework" -Level 3
$frameworks = Get-DotnetFrameworkTools
$markdown += "``Type: Developer Pack``"
$markdown += New-MDNewLine
$markdown += "``Location $($frameworks.Path)``"
$markdown += New-MDNewLine
$markdown += New-MDList -Lines $frameworks.Versions -Style Unordered
Get-DotnetFrameworkTools | Foreach-Object {
$path = $_.Path
$versions = $_.Versions
$markdown += "``Location: $path``"
$markdown += New-MDNewLine
$markdown += New-MDList -Lines $versions -Style Unordered
}
$markdown += New-MDHeader ".NET tools" -Level 3
$tools = Get-DotnetTools

View File

@@ -103,8 +103,7 @@ Describe "GoogleCloudSDK" -Skip:(Test-IsWin22) {
Describe "NET48" {
It "NET48" {
$netPath = (Get-DotnetFrameworkTools).Path.Split("<")[0]
${netPath} + "4.8 Tools" | Should -Exist
(Get-DotnetFrameworkTools).Versions | Should -Contain "4.8"
}
}