31
31
buildFrameworkVersions :
32
32
name : Build Framework versions
33
33
needs : [ variables ]
34
- runs-on : windows-2019 # required version for Framework 4.0
34
+ runs-on : windows-2022
35
35
steps :
36
36
- name : Checkout code
37
37
uses : actions/checkout@v4
@@ -41,10 +41,46 @@ jobs:
41
41
uses : microsoft/setup-msbuild@v2
42
42
- name : Setup NuGet
43
43
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
+ }
44
70
- name : Restore NuGet packages
45
71
run : nuget restore ./OptimizelySDK.NETFramework.sln
46
72
- 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
48
84
- name : Upload Framework artifacts
49
85
uses : actions/upload-artifact@v4
50
86
with :
55
91
buildStandard16 :
56
92
name : Build Standard 1.6 version
57
93
needs : [ variables ]
58
- runs-on : windows-latest
94
+ runs-on : windows-2022
59
95
steps :
60
96
- name : Checkout code
61
97
uses : actions/checkout@v4
77
113
buildStandard20 :
78
114
name : Build Standard 2.0 version
79
115
needs : [ variables ]
80
- runs-on : windows-latest
116
+ runs-on : windows-2022
81
117
steps :
82
118
- name : Checkout code
83
119
uses : actions/checkout@v4
0 commit comments