diff --git a/eng/dockerfile-templates/sdk/Dockerfile b/eng/dockerfile-templates/sdk/Dockerfile index 4e823a1f..9c144f2d 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile +++ b/eng/dockerfile-templates/sdk/Dockerfile @@ -76,19 +76,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-reference-assemblies")}}{{ if OS_VERSION_NUMBER = "ltsc2019" : 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..99b67ca9 --- /dev/null +++ b/eng/dockerfile-templates/sdk/Dockerfile.install-reference-assemblies @@ -0,0 +1,25 @@ +{{ + 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 "` + $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}\"; ` + 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 ${referenceAssembliesPath}; ` + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;" diff --git a/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 b/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 index 164e8a30..2c092fe6 100644 --- a/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 +++ b/eng/dockerfile-templates/sdk/Dockerfile.ltsc2016 @@ -94,19 +94,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-reference-assemblies")}} SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] diff --git a/manifest.versions.json b/manifest.versions.json index b46b98d2..701ef775 100644 --- a/manifest.versions.json +++ b/manifest.versions.json @@ -41,6 +41,7 @@ "lcu|ltsc2025|default": "$(lcu|ltsc2025|4.8.1)", "nuget|version": "6.13.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 05348eae..88fc6dfb 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile @@ -115,18 +115,20 @@ 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 "` + $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}\"; ` + 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 ${referenceAssembliesPath}; ` + } ` + 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 8e2c62bd..00ab6be5 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile @@ -86,17 +86,20 @@ 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 "` + $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}\"; ` + 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 ${referenceAssembliesPath}; ` + } ` + 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 546fdf19..805838b9 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile @@ -68,15 +68,18 @@ 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 "` + $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}\"; ` + 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 ${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 92a2fc86..d8dbb137 100644 --- a/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile @@ -68,15 +68,18 @@ 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 "` + $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}\"; ` + 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 ${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 98811b90..359ae22d 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile @@ -68,15 +68,18 @@ 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 "` + $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}\"; ` + 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 ${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 ca17a673..397d4fbc 100644 --- a/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile +++ b/src/sdk/4.8.1/windowsservercore-ltsc2025/Dockerfile @@ -68,15 +68,18 @@ 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 "` + $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}\"; ` + 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 ${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 3550fa1f..92339b48 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2016/Dockerfile @@ -83,18 +83,20 @@ 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 "` + $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}\"; ` + 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 ${referenceAssembliesPath}; ` + } ` + 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 88157fac..b5c8f7f5 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2019/Dockerfile @@ -67,17 +67,20 @@ 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 "` + $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}\"; ` + 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 ${referenceAssembliesPath}; ` + } ` + 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 23c87b42..8733ca9f 100644 --- a/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile +++ b/src/sdk/4.8/windowsservercore-ltsc2022/Dockerfile @@ -68,15 +68,18 @@ 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 "` + $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}\"; ` + 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 ${referenceAssembliesPath}; ` + } ` + Remove-Item -Force -Recurse ${Env:TEMP}\\*;"