3131 buildFrameworkVersions :
3232 name : Build Framework versions
3333 needs : [ variables ]
34- runs-on : windows-2019 # required version for Framework 4.0
34+ runs-on : windows-2022
3535 steps :
3636 - name : Checkout code
3737 uses : actions/checkout@v4
@@ -41,10 +41,46 @@ jobs:
4141 uses : microsoft/setup-msbuild@v2
4242 - name : Setup NuGet
4343 uses : nuget/setup-nuget@v2
44+ - name : Download and Extract .NET Framework Reference Assemblies
45+ run : |
46+ # Create temp directory
47+ New-Item -ItemType Directory -Path "temp_ref_assemblies" -Force
48+
49+ # Download .NET 4.0 Reference Assemblies
50+ echo "Downloading .NET 4.0 Reference Assemblies..."
51+ Invoke-WebRequest -Uri "https://www.nuget.org/api/v2/package/Microsoft.NETFramework.ReferenceAssemblies.net40/1.0.3" -OutFile "temp_ref_assemblies/net40_ref.zip"
52+
53+ # Download .NET 4.5 Reference Assemblies
54+ echo "Downloading .NET 4.5 Reference Assemblies..."
55+ Invoke-WebRequest -Uri "https://www.nuget.org/api/v2/package/Microsoft.NETFramework.ReferenceAssemblies.net45/1.0.3" -OutFile "temp_ref_assemblies/net45_ref.zip"
56+
57+ # Extract .NET 4.0 Reference Assemblies
58+ echo "Extracting .NET 4.0 Reference Assemblies..."
59+ Expand-Archive -Path "temp_ref_assemblies/net40_ref.zip" -DestinationPath "temp_ref_assemblies/net40" -Force
60+ if (Test-Path "temp_ref_assemblies/net40/build/.NETFramework/v4.0") {
61+ echo "✓ .NET 4.0 Reference Assemblies extracted to workspace"
62+ }
63+
64+ # Extract .NET 4.5 Reference Assemblies
65+ echo "Extracting .NET 4.5 Reference Assemblies..."
66+ Expand-Archive -Path "temp_ref_assemblies/net45_ref.zip" -DestinationPath "temp_ref_assemblies/net45" -Force
67+ if (Test-Path "temp_ref_assemblies/net45/build/.NETFramework/v4.5") {
68+ echo "✓ .NET 4.5 Reference Assemblies extracted to workspace"
69+ }
4470 - name : Restore NuGet packages
4571 run : nuget restore ./OptimizelySDK.NETFramework.sln
4672 - name : Build and strongly name assemblies
47- run : msbuild /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk /p:Configuration=Release ./OptimizelySDK.NETFramework.sln
73+ run : |
74+ # Build with workspace-relative reference assembly paths
75+ $Net40RefPath = "$(pwd)\temp_ref_assemblies\net40\build\.NETFramework\v4.0"
76+ $Net45RefPath = "$(pwd)\temp_ref_assemblies\net45\build\.NETFramework\v4.5"
77+
78+ echo "Using .NET 4.0 Reference Assemblies from: $Net40RefPath"
79+ echo "Using .NET 4.5 Reference Assemblies from: $Net45RefPath"
80+
81+ msbuild /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk /p:Configuration=Release /p:FrameworkPathOverride="$Net45RefPath" ./OptimizelySDK.NETFramework.sln
82+ - name : Cleanup reference assemblies
83+ run : Remove-Item -Path "temp_ref_assemblies" -Recurse -Force
4884 - name : Upload Framework artifacts
4985 uses : actions/upload-artifact@v4
5086 with :
5591 buildStandard16 :
5692 name : Build Standard 1.6 version
5793 needs : [ variables ]
58- runs-on : windows-latest
94+ runs-on : windows-2022
5995 steps :
6096 - name : Checkout code
6197 uses : actions/checkout@v4
77113 buildStandard20 :
78114 name : Build Standard 2.0 version
79115 needs : [ variables ]
80- runs-on : windows-latest
116+ runs-on : windows-2022
81117 steps :
82118 - name : Checkout code
83119 uses : actions/checkout@v4
0 commit comments