Skip to content

Commit 58a6198

Browse files
committed
Use NuGet packages to install reference assemblies
1 parent 1ae14ec commit 58a6198

File tree

14 files changed

+144
-118
lines changed

14 files changed

+144
-118
lines changed

eng/dockerfile-templates/sdk/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ RUN powershell setx /M PATH $(${Env:PATH} `
9191
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX {{sdkVersion}} Tools\" `
9292
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
9393

94-
{{InsertTemplate("Dockerfile.install-refassemblies")}}{{
94+
{{InsertTemplate("Dockerfile.install-reference-assemblies")}}{{
9595
if OS_VERSION_NUMBER = "ltsc2019"
9696
:
9797

eng/dockerfile-templates/sdk/Dockerfile.install-refassemblies

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{
2+
set wrap(s) to:{{return cat("'", s, "'")}} ^
3+
4+
set versions to ["net40", "net45", "net451", "net452", "net46", "net461", "net462", "net47", "net471", "net472", "net48", "net481"] ^
5+
set versions to map(versions, wrap) ^
6+
7+
set packageVersion to VARIABLES["referenceassemblies|version"] ^
8+
set packageInstallDir to "packages"
9+
10+
}}# Install Targeting Packs
11+
RUN powershell -Command "`
12+
New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
13+
foreach ($version in @@({{join(versions, ", ")}})) { `
14+
# Download reference assembly NuGet package `
15+
$package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; `
16+
NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version {{packageVersion}} -OutputDirectory ${Env:TEMP}\Packages; `
17+
$contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; `
18+
# Remove Intellisense files `
19+
Get-ChildItem -File -Recurse -Path \"${contents}\" | `
20+
Where-Object { $_.FullName -match '@^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | `
21+
Remove-Item; `
22+
Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; `
23+
Remove-Item -Force -Recurse ${Env:TEMP}\\*; `
24+
}"

eng/dockerfile-templates/sdk/Dockerfile.ltsc2016

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,6 @@ RUN powershell setx /M PATH $(${Env:PATH} `
116116
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\" `
117117
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
118118

119-
{{InsertTemplate("Dockerfile.install-refassemblies")}}
119+
{{InsertTemplate("Dockerfile.install-reference-assemblies")}}
120120

121121
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

manifest.versions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"lcu|ltsc2025|default": "$(lcu|ltsc2025|4.8.1)",
4242

4343
"nuget|version": "6.12.2",
44+
"referenceassemblies|version": "1.0.3",
4445

4546
"servicemonitor|version": "2.0.1.10",
4647
"servicemonitor|url": "https://dotnetbinaries.blob.core.windows.net/servicemonitor/$(servicemonitor|version)/ServiceMonitor.exe",

src/sdk/3.5/windowsservercore-ltsc2016/Dockerfile

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,18 +116,19 @@ RUN powershell setx /M PATH $(${Env:PATH} `
116116
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
117117

118118
# Install Targeting Packs
119-
RUN powershell " `
120-
$ErrorActionPreference = 'Stop'; `
121-
$ProgressPreference = 'SilentlyContinue'; `
122-
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; `
123-
@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') `
124-
| %{ `
125-
Invoke-WebRequest `
126-
-UseBasicParsing `
127-
-Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip `
128-
-OutFile referenceassemblies.zip; `
129-
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
130-
Remove-Item -Force referenceassemblies.zip; `
119+
RUN powershell -Command "`
120+
New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
121+
foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { `
122+
# Download reference assembly NuGet package `
123+
$package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; `
124+
NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; `
125+
$contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; `
126+
# Remove Intellisense files `
127+
Get-ChildItem -File -Recurse -Path \"${contents}\" | `
128+
Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | `
129+
Remove-Item; `
130+
Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; `
131+
Remove-Item -Force -Recurse ${Env:TEMP}\\*; `
131132
}"
132133

133134
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

src/sdk/3.5/windowsservercore-ltsc2019/Dockerfile

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,19 @@ RUN powershell setx /M PATH $(${Env:PATH} `
8686
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
8787

8888
# Install Targeting Packs
89-
RUN powershell " `
90-
$ErrorActionPreference = 'Stop'; `
91-
$ProgressPreference = 'SilentlyContinue'; `
92-
@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') `
93-
| %{ `
94-
Invoke-WebRequest `
95-
-UseBasicParsing `
96-
-Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip `
97-
-OutFile referenceassemblies.zip; `
98-
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
99-
Remove-Item -Force referenceassemblies.zip; `
89+
RUN powershell -Command "`
90+
New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
91+
foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { `
92+
# Download reference assembly NuGet package `
93+
$package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; `
94+
NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; `
95+
$contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; `
96+
# Remove Intellisense files `
97+
Get-ChildItem -File -Recurse -Path \"${contents}\" | `
98+
Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | `
99+
Remove-Item; `
100+
Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; `
101+
Remove-Item -Force -Recurse ${Env:TEMP}\\*; `
100102
}"
101103

102104
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

src/sdk/3.5/windowsservercore-ltsc2022/Dockerfile

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} `
6868
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
6969

7070
# Install Targeting Packs
71-
RUN powershell " `
72-
$ErrorActionPreference = 'Stop'; `
73-
$ProgressPreference = 'SilentlyContinue'; `
74-
@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') `
75-
| %{ `
76-
Invoke-WebRequest `
77-
-UseBasicParsing `
78-
-Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip `
79-
-OutFile referenceassemblies.zip; `
80-
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
81-
Remove-Item -Force referenceassemblies.zip; `
71+
RUN powershell -Command "`
72+
New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
73+
foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { `
74+
# Download reference assembly NuGet package `
75+
$package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; `
76+
NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; `
77+
$contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; `
78+
# Remove Intellisense files `
79+
Get-ChildItem -File -Recurse -Path \"${contents}\" | `
80+
Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | `
81+
Remove-Item; `
82+
Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; `
83+
Remove-Item -Force -Recurse ${Env:TEMP}\\*; `
8284
}"

src/sdk/3.5/windowsservercore-ltsc2025/Dockerfile

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} `
6868
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
6969

7070
# Install Targeting Packs
71-
RUN powershell " `
72-
$ErrorActionPreference = 'Stop'; `
73-
$ProgressPreference = 'SilentlyContinue'; `
74-
@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') `
75-
| %{ `
76-
Invoke-WebRequest `
77-
-UseBasicParsing `
78-
-Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip `
79-
-OutFile referenceassemblies.zip; `
80-
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
81-
Remove-Item -Force referenceassemblies.zip; `
71+
RUN powershell -Command "`
72+
New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
73+
foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { `
74+
# Download reference assembly NuGet package `
75+
$package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; `
76+
NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; `
77+
$contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; `
78+
# Remove Intellisense files `
79+
Get-ChildItem -File -Recurse -Path \"${contents}\" | `
80+
Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | `
81+
Remove-Item; `
82+
Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; `
83+
Remove-Item -Force -Recurse ${Env:TEMP}\\*; `
8284
}"

src/sdk/4.8.1/windowsservercore-ltsc2022/Dockerfile

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,17 @@ RUN powershell setx /M PATH $(${Env:PATH} `
6868
+ \";${Env:ProgramFiles(x86)}\Microsoft SDKs\ClickOnce\SignTool\")
6969

7070
# Install Targeting Packs
71-
RUN powershell " `
72-
$ErrorActionPreference = 'Stop'; `
73-
$ProgressPreference = 'SilentlyContinue'; `
74-
@('4.0', '4.5.2', '4.6.2', '4.7.2', '4.8', '4.8.1') `
75-
| %{ `
76-
Invoke-WebRequest `
77-
-UseBasicParsing `
78-
-Uri https://dotnetbinaries.blob.core.windows.net/referenceassemblies/v${_}.zip `
79-
-OutFile referenceassemblies.zip; `
80-
Expand-Archive referenceassemblies.zip -DestinationPath \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
81-
Remove-Item -Force referenceassemblies.zip; `
71+
RUN powershell -Command "`
72+
New-Item -ItemType Directory -Path \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\.NETFramework\"; `
73+
foreach ($version in @('net40', 'net45', 'net451', 'net452', 'net46', 'net461', 'net462', 'net47', 'net471', 'net472', 'net48', 'net481')) { `
74+
# Download reference assembly NuGet package `
75+
$package = \"Microsoft.NETFramework.ReferenceAssemblies.${version}\"; `
76+
NuGet install \"${package}\" -DirectDownload -ExcludeVersion -Version 1.0.3 -OutputDirectory ${Env:TEMP}\Packages; `
77+
$contents = \"${Env:TEMP}\Packages\${package}\build\.NETFramework\"; `
78+
# Remove Intellisense files `
79+
Get-ChildItem -File -Recurse -Path \"${contents}\" | `
80+
Where-Object { $_.FullName -match '^(?!.*\\\\(PermissionSets|RedistList)\\\\).*\\.xml$' } | `
81+
Remove-Item; `
82+
Copy-Item -Recurse -Force -Container -Path ${contents} -Destination \"${Env:ProgramFiles(x86)}\Reference Assemblies\Microsoft\Framework\"; `
83+
Remove-Item -Force -Recurse ${Env:TEMP}\\*; `
8284
}"

0 commit comments

Comments
 (0)