From 1ae14ec551cc414068e917f7fa257f7974d798cf Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Tue, 4 Mar 2025 09:25:24 -0800 Subject: [PATCH 1/7] Factor out reference assembly installation --- eng/dockerfile-templates/sdk/Dockerfile | 14 +------------- .../sdk/Dockerfile.install-refassemblies | 15 +++++++++++++++ eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 | 15 +-------------- 3 files changed, 17 insertions(+), 27 deletions(-) create mode 100644 eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies diff --git a/eng/dockerfile-templates/sdk/Dockerfile b/eng/dockerfile-templates/sdk/Dockerfile index b356d4c6..4a41e6be 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile +++ b/eng/dockerfile-templates/sdk/Dockerfile @@ -91,19 +91,7 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX {{sdkVersion}} Tools\" ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") -# Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` - }"{{ +{{InsertTemplate("Dockerfile.install-refassemblies")}}{{ if OS_VERSION_NUMBER = "ltsc2019" : diff --git a/eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies b/eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies new file mode 100644 index 00000000..652d9741 --- /dev/null +++ b/eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies @@ -0,0 +1,15 @@ +# Install Targeting Packs +RUN powershell " ` + $ErrorActionPreference = 'Stop'; ` + $ProgressPreference = 'SilentlyContinue'; ` + {{if OS_VERSION_NUMBER = "ltsc2016" + :[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` + }}@@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` + | %{ ` + Invoke-WebRequest ` + -UseBasicParsing ` + -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` + -OutFile referenceassemblies.zip; ` + Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + Remove-Item -Force referenceassemblies.zip; ` + }" \ No newline at end of file diff --git a/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 b/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 index ea82d036..2d9fa889 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 +++ b/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 @@ -116,19 +116,6 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") -# Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - @@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` - }" +{{InsertTemplate("Dockerfile.install-refassemblies")}} SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] From 58a6198a09fa71f773a53baa17d0ca88bd3e2168 Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Wed, 5 Mar 2025 08:22:34 -0800 Subject: [PATCH 2/7] Use NuGet packages to install reference assemblies --- eng/dockerfile-templates/sdk/Dockerfile | 2 +- .../sdk/Dockerfile.install-refassemblies | 15 ----------- .../Dockerfile.install-reference-assemblies | 24 ++++++++++++++++++ .../sdk/Dockerfile.ltsc2016 | 2 +- manifest.versions.json | 1 + .../3.5/windowsservercore-ltsc2016/Dockerfile | 25 ++++++++++--------- .../3.5/windowsservercore-ltsc2019/Dockerfile | 24 ++++++++++-------- .../3.5/windowsservercore-ltsc2022/Dockerfile | 24 ++++++++++-------- .../3.5/windowsservercore-ltsc2025/Dockerfile | 24 ++++++++++-------- .../windowsservercore-ltsc2022/Dockerfile | 24 ++++++++++-------- .../windowsservercore-ltsc2025/Dockerfile | 24 ++++++++++-------- .../4.8/windowsservercore-ltsc2016/Dockerfile | 25 ++++++++++--------- .../4.8/windowsservercore-ltsc2019/Dockerfile | 24 ++++++++++-------- .../4.8/windowsservercore-ltsc2022/Dockerfile | 24 ++++++++++-------- 14 files changed, 144 insertions(+), 118 deletions(-) delete mode 100644 eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies create mode 100644 eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies diff --git a/eng/dockerfile-templates/sdk/Dockerfile b/eng/dockerfile-templates/sdk/Dockerfile index 4a41e6be..976e9b96 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile +++ b/eng/dockerfile-templates/sdk/Dockerfile @@ -91,7 +91,7 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX {{sdkVersion}} Tools\" ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") -{{InsertTemplate("Dockerfile.install-refassemblies")}}{{ +{{InsertTemplate("Dockerfile.install-reference-assemblies")}}{{ if OS_VERSION_NUMBER = "ltsc2019" : diff --git a/eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies b/eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies deleted file mode 100644 index 652d9741..00000000 --- a/eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies +++ /dev/null @@ -1,15 +0,0 @@ -# Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - {{if OS_VERSION_NUMBER = "ltsc2016" - :[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - }}@@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` - }" \ No newline at end of file diff --git a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies new file mode 100644 index 00000000..c75f9dfb --- /dev/null +++ b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies @@ -0,0 +1,24 @@ +{{ + set wrap(s) to:{{return cat("'", s, "'")}} ^ + + set versions to ["net40", "net45", "net451", "net452", "net46", "net461", "net462", "net47", "net471", "net472", "net48", "net481"] ^ + set versions to map(versions, wrap) ^ + + set packageVersion to VARIABLES["referenceassemblies|version"] ^ + set packageInstallDir to "packages" + +}}# Install Targeting Packs +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @@({{join(versions, ", ")}})) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version {{packageVersion}} -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '@^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` + }" diff --git a/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 b/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 index 2d9fa889..a39c3a9c 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 +++ b/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 @@ -116,6 +116,6 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") -{{InsertTemplate("Dockerfile.install-refassemblies")}} +{{InsertTemplate("Dockerfile.install-reference-assemblies")}} SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/manifest.versions.json b/manifest.versions.json index 2d8d1b51..9c11385c 100644 --- a/manifest.versions.json +++ b/manifest.versions.json @@ -41,6 +41,7 @@ "lcu|ltsc2025|default": "$(lcu|ltsc2025|4.8.1)", "nuget|version": "6.12.2", + "referenceassemblies|version": "1.0.3", "servicemonitor|version": "2.0.1.10", "servicemonitor|url": "https://dotnetbinaries.blob.core.windows.net/servicemonitor/$(servicemonitor|version)/ServiceMonitor.exe", diff --git a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile index 6c036c45..17c386f3 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile @@ -116,18 +116,19 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile index 2c20d5e8..433778a3 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile @@ -86,17 +86,19 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile index 8763cf4b..7bc0828d 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile @@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" diff --git a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile index 9767d4d0..474dd74b 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile @@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile index e43dbcb8..c8e5c2dc 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile @@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile index 94ce2b18..14f4d033 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile @@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" diff --git a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile index 507e378b..06bccacb 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile @@ -84,18 +84,19 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile index 14edc9d7..462639fd 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile @@ -67,17 +67,19 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile index ad0abe10..d1417c80 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile @@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} ` + \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\") # Install Targeting Packs -RUN powershell " ` - $ErrorActionPreference = 'Stop'; ` - $ProgressPreference = 'SilentlyContinue'; ` - @('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') ` - | %{ ` - Invoke-WebRequest ` - -UseBasicParsing ` - -Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip ` - -OutFile referenceassemblies.zip; ` - Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` - Remove-Item -Force referenceassemblies.zip; ` +RUN powershell -Command "` + New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` + # Download reference assembly NuGet package ` + $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` + NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` + # Remove Intellisense files ` + Get-ChildItem -File -Recurse -Path \"${contents}\" | ` + Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Remove-Item; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` }" From b9fcbf8661f949beb936812db3bbb27bc16d5acd Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Wed, 5 Mar 2025 10:28:56 -0800 Subject: [PATCH 3/7] Do all cleanup at once --- .../sdk/Dockerfile.install-reference-assemblies | 4 ++-- src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile | 4 ++-- src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile | 4 ++-- src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile | 4 ++-- src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile | 4 ++-- src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile | 4 ++-- src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile | 4 ++-- src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile | 4 ++-- src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile | 4 ++-- src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies index c75f9dfb..979f9b11 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies +++ b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies @@ -20,5 +20,5 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '@^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile index 17c386f3..6493f672 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile @@ -128,7 +128,7 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile index 433778a3..83a5e016 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile @@ -98,7 +98,7 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile index 7bc0828d..4608db4e 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile @@ -80,5 +80,5 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile index 474dd74b..341baef3 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile @@ -80,5 +80,5 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile index c8e5c2dc..bc9f6a64 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile @@ -80,5 +80,5 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile index 14f4d033..0954377b 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile @@ -80,5 +80,5 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile index 06bccacb..c6cf677c 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile @@ -96,7 +96,7 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile index 462639fd..957eddf5 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile @@ -79,7 +79,7 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile index d1417c80..311fcb99 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile @@ -80,5 +80,5 @@ RUN powershell -Command "` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` - Remove-Item -Force -Recurse ${Env:TEMP}\\*; ` - }" + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" From d4ffa7011ed13bd25eecb222efdb50a5eda37fa8 Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Wed, 5 Mar 2025 11:33:12 -0800 Subject: [PATCH 4/7] Fix nits Co-authored-by: Matt Thalman --- .../sdk/Dockerfile.install-reference-assemblies | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies index 979f9b11..f1d62be2 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies +++ b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies @@ -13,9 +13,9 @@ RUN powershell -Command "` foreach ($version in @@({{join(versions, ", ")}})) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version {{packageVersion}} -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version {{packageVersion}} -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '@^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` From 644c3c4c83a93e7be0ec0876edfb7732dc6ce816 Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Wed, 5 Mar 2025 11:34:14 -0800 Subject: [PATCH 5/7] Regen --- src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile | 4 ++-- src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile | 4 ++-- src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile | 4 ++-- src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile | 4 ++-- src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile | 4 ++-- src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile | 4 ++-- src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile | 4 ++-- src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile | 4 ++-- src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile index 6493f672..463d8471 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile @@ -121,9 +121,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile index 83a5e016..44d14e83 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile @@ -91,9 +91,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile index 4608db4e..488b5cb0 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile @@ -73,9 +73,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile index 341baef3..e67aedd2 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile @@ -73,9 +73,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile index bc9f6a64..90c1d0c9 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile @@ -73,9 +73,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile index 0954377b..48b31921 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile @@ -73,9 +73,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile index c6cf677c..865c35bb 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile @@ -89,9 +89,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile index 957eddf5..38b8d8a2 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile @@ -72,9 +72,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` diff --git a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile index 311fcb99..40669a90 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile @@ -73,9 +73,9 @@ RUN powershell -Command "` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` - NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` + nuget install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; ` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` - # Remove Intellisense files ` + # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` From 1b56cd85e84d394a5102703120f33fd6c9f19176 Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Wed, 5 Mar 2025 11:40:30 -0800 Subject: [PATCH 6/7] Factor out reference assembly destination path --- .../sdk/Dockerfile.install-reference-assemblies | 5 +++-- src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile | 5 +++-- src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile | 5 +++-- src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile | 5 +++-- src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile | 5 +++-- src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile | 5 +++-- src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile | 5 +++-- src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile | 5 +++-- src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile | 5 +++-- src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile | 5 +++-- 10 files changed, 30 insertions(+), 20 deletions(-) diff --git a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies index f1d62be2..1ad2e1ff 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies +++ b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies @@ -9,7 +9,8 @@ }}# Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @@({{join(versions, ", ")}})) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -19,6 +20,6 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '@^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile index 463d8471..db3a12e5 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile @@ -117,7 +117,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -127,7 +128,7 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile index 44d14e83..839094d1 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile @@ -87,7 +87,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -97,7 +98,7 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile index 488b5cb0..494d8c66 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile @@ -69,7 +69,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -79,6 +80,6 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile index e67aedd2..48c2d3ec 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile @@ -69,7 +69,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -79,6 +80,6 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile index 90c1d0c9..6349b99f 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile @@ -69,7 +69,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -79,6 +80,6 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile index 48b31921..62028129 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile @@ -69,7 +69,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -79,6 +80,6 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile index 865c35bb..884c95af 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile @@ -85,7 +85,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -95,7 +96,7 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile index 38b8d8a2..8d9d50f6 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile @@ -68,7 +68,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -78,7 +79,7 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile index 40669a90..1c78a34c 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile @@ -69,7 +69,8 @@ RUN powershell setx /M PATH $(${Env:PATH} ` # Install Targeting Packs RUN powershell -Command "` - New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; ` + $referenceAssembliesPath = \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + New-Item -ItemType Directory -Path ${referenceAssembliesPath}; ` foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { ` # Download reference assembly NuGet package ` $package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; ` @@ -79,6 +80,6 @@ RUN powershell -Command "` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` Remove-Item; ` - Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; ` + Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` Remove-Item -Force -Recurse ${Env:TEMP}\\*;" From ae2d0313d0ab35855ed18060f148be3e417778e9 Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Wed, 12 Mar 2025 10:38:57 -0700 Subject: [PATCH 7/7] Fix and simplify xml regex --- .../sdk/Dockerfile.install-reference-assemblies | 2 +- src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile | 2 +- src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile | 2 +- src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile | 2 +- src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile | 2 +- src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile | 2 +- src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile | 2 +- src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile | 2 +- src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile | 2 +- src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies index 1ad2e1ff..99b67ca9 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies +++ b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies @@ -18,7 +18,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '@^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '@^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile index 1326c65c..88fc6dfb 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile @@ -125,7 +125,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile index 05f19ef7..00ab6be5 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile @@ -96,7 +96,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile index 6fe1ca47..805838b9 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile @@ -78,7 +78,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile index 9e1767ce..d8dbb137 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile @@ -78,7 +78,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile index 0e9c38dd..359ae22d 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile @@ -78,7 +78,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile index 48989a97..397d4fbc 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile @@ -78,7 +78,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile index b202cca2..92339b48 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile @@ -93,7 +93,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile index 7c78b61b..b5c8f7f5 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile @@ -77,7 +77,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } ` diff --git a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile index cf094cd4..8733ca9f 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile @@ -78,7 +78,7 @@ RUN powershell -Command "` $contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; ` # Remove IntelliSense files ` Get-ChildItem -File -Recurse -Path \"${contents}\" | ` - Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | ` + Where-Object { $_.FullName -match '^(?!.*(PermissionSets|RedistList)).*\.xml$' } | ` Remove-Item; ` Copy-Item -Recurse -Force -Container -Path ${contents} -Destination ${referenceAssembliesPath}; ` } `