Skip to content

Commit 541f0ac

Browse files
SatwikKrSharmaadstepSatwik Kumar Sharma
authored
AOT support (#9287)
* publish cs projections w/ aot enabled * publish .net 8 and .net 6 * remove nuget reference * AOT support * resolving WinUI3 pipeline issues * resolving WinUI3 pipeline issues * nit * nit * nit * nit * nit * nit * nit * nit * nit * nit * Added service connection name * adding windowsSdk 22000 build --------- Co-authored-by: adstep <stephensonadamj@gmail.com> Co-authored-by: Satwik Kumar Sharma <satwiksharma@microsoft.com>
1 parent ca1c948 commit 541f0ac

File tree

7 files changed

+68
-28
lines changed

7 files changed

+68
-28
lines changed

.pipelines/winui3-ci.yml

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,41 @@ variables:
2222

2323
pool:
2424
name: Azure Pipelines
25-
vmImage: windows-2019
25+
vmImage: windows-latest
2626

2727
steps:
28-
- task: NuGetToolInstaller@1
28+
- task: PowerShell@2
29+
displayName: 'Install Windows SDK'
30+
inputs:
31+
targetType: 'inline'
32+
script: |
33+
choco install windows-sdk-10-version-1809-all
34+
35+
$winget = (Get-Command winget -ErrorAction SilentlyContinue)
36+
if (-not $winget) {
37+
Write-Host 'winget not found. Installing App Installer (DesktopAppInstaller) silently...'
38+
39+
Invoke-WebRequest -Uri "https://aka.ms/getwinget" -OutFile "$env:Temp\AppInstaller.msixbundle"
40+
Add-AppxPackage -Path "$env:Temp\AppInstaller.msixbundle"
41+
}
42+
43+
winget install --id Microsoft.WindowsSDK.10.0.22000 -e --silent --accept-package-agreements --accept-source-agreements
44+
45+
- task: UseDotNet@2
46+
displayName: 'Use .NET Core sdk 8.x'
47+
inputs:
48+
version: 8.x
49+
50+
- task: NuGetToolInstaller@0
2951
name: NuGetToolInstaller1
30-
displayName: Use NuGet 6.4.x
52+
displayName: Use NuGet 5.x
3153
inputs:
32-
versionSpec: 6.4.x
54+
versionSpec: 5.x
3355

3456
- task: NuGetAuthenticate@1
35-
name: NuGetAuthenticate2
57+
displayName: 'NuGet Authenticate'
58+
inputs:
59+
nuGetServiceConnections: 'AdaptiveCards-Dependencies'
3660

3761
- task: NuGetCommand@2
3862
displayName: NuGet restore
@@ -43,20 +67,12 @@ steps:
4367
restoreSolution: $(solution)
4468
verbosityRestore: Detailed
4569

46-
47-
- task: PowerShell@2
48-
displayName: 'Install Windows SDK'
49-
inputs:
50-
targetType: 'inline'
51-
script: |
52-
choco install windows-sdk-10-version-1809-all
53-
5470
- task: VSBuild@1
5571
name: VSBuild4
5672
displayName: Build solution
5773
inputs:
5874
solution: $(solution)
59-
vsVersion: 16.0
75+
vsVersion: 17.0
6076
platform: $(buildPlatform)
6177
configuration: $(buildConfiguration)
6278
maximumCpuCount: true

source/uwp/winui3/NuGet/AdaptiveCards.ObjectModel.WinUI3.nuspec

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,12 @@
2828
<file src="..\ARM64\$Configuration$\AdaptiveCardsObjectModel\AdaptiveCards.ObjectModel.WinUI3.lib" target="runtimes\win10-arm64\native"/>
2929
<file src="..\ARM64\$Configuration$\AdaptiveCardsObjectModel\AdaptiveCards.ObjectModel.WinUI3.pdb" target="runtimes\win10-arm64\native"/>
3030

31+
<!-- .NET 6.0 projection -->
3132
<file src="..\AnyCPU\ObjectModelCsProjection\$Configuration$\net6.0-windows10.0.17763.0\ObjectModelCsProjection.dll" target="lib\net6.0-windows10.0.17763.0\ObjectModelCsProjection.dll"/>
3233

34+
<!-- .NET 8.0 projection -->
35+
<file src="..\AnyCPU\ObjectModelCsProjection\$Configuration$\net8.0-windows10.0.17763.0\ObjectModelCsProjection.dll" target="lib\net8.0-windows10.0.17763.0\ObjectModelCsProjection.dll"/>
36+
3337
<file src="EULA-Windows.txt" target="\"/>
3438
<file src="AdaptiveCards.ObjectModel.WinUI3.native.targets" target="build\native\AdaptiveCards.ObjectModel.WinUI3.targets"/>
3539
</files>

source/uwp/winui3/NuGet/AdaptiveCards.Rendering.WinUI3.nuspec

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,12 @@
3131
<file src="..\ARM64\$Configuration$\AdaptiveCardRenderer\AdaptiveCards.Rendering.WinUI3.lib" target="runtimes\win10-arm64\native"/>
3232
<file src="..\ARM64\$Configuration$\AdaptiveCardRenderer\AdaptiveCards.Rendering.WinUI3.pdb" target="runtimes\win10-arm64\native"/>
3333

34+
<!-- .NET 6.0 projection -->
3435
<file src="..\AnyCPU\RendererCsProjection\$Configuration$\net6.0-windows10.0.17763.0\RendererCsProjection.dll" target="lib\net6.0-windows10.0.17763.0\RendererCsProjection.dll" />
3536

37+
<!-- .NET 8.0 projection -->
38+
<file src="..\AnyCPU\RendererCsProjection\$Configuration$\net8.0-windows10.0.17763.0\RendererCsProjection.dll" target="lib\net8.0-windows10.0.17763.0\RendererCsProjection.dll" />
39+
3640
<file src="EULA-Windows.txt" target="\"/>
3741
<file src="AdaptiveCards.Rendering.WinUI3.native.targets" target="build\native\AdaptiveCards.Rendering.WinUI3.targets"/>
3842
</files>

source/uwp/winui3/ObjectModelCsProjection/ObjectModelCsProjection.csproj

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net6.0-windows10.0.17763.0</TargetFramework>
3+
<TargetFrameworks>net6.0-windows10.0.17763.0;net8.0-windows10.0.17763.0</TargetFrameworks>
44
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
5-
<WindowsSdkPackageVersion>10.0.17763.38</WindowsSdkPackageVersion>
65
<!-- Set Platform to AnyCPU to allow consumption of the projection assembly from any architecture. -->
76
<Platform>AnyCPU</Platform>
87
<RootNamespace>AdaptiveCards.ObjectModel.WinUI3</RootNamespace>
9-
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
8+
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
109
<UseWinUI>true</UseWinUI>
1110
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
11+
12+
<!-- Suppress warning about win10-* RIDs in dependencies for .NET 8.0+ -->
13+
<NoWarn>$(NoWarn);NETSDK1206</NoWarn>
1214
</PropertyGroup>
1315
<PropertyGroup>
1416
<CsWinRTIncludes>AdaptiveCards.ObjectModel.WinUI3</CsWinRTIncludes>
1517
<CsWinRTGeneratedFilesDir>$(OutDir)</CsWinRTGeneratedFilesDir>
1618
<BaseOutputPath>$(SolutionDir)\$(Platform)\$(MSBuildProjectName)</BaseOutputPath>
19+
<CsWinRTAotOptimizerEnabled>true</CsWinRTAotOptimizerEnabled>
20+
<CsWinRTAotWarningLevel>2</CsWinRTAotWarningLevel>
1721
</PropertyGroup>
1822
<ItemGroup>
1923
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="2.1.1" />

source/uwp/winui3/RendererCsProjection/RendererCsProjection.csproj

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net6.0-windows10.0.17763.0</TargetFramework>
3+
<TargetFrameworks>net6.0-windows10.0.17763.0;net8.0-windows10.0.17763.0</TargetFrameworks>
44
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
5-
<WindowsSdkPackageVersion>10.0.17763.38</WindowsSdkPackageVersion>
65
<!-- Set Platform to AnyCPU to allow consumption of the projection assembly from any architecture. -->
76
<Platform>AnyCPU</Platform>
87
<RootNamespace>AdaptiveCards.Rendering.WinUI3</RootNamespace>
9-
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
8+
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
109
<UseWinUI>true</UseWinUI>
1110
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
11+
12+
<!-- Suppress warning about win10-* RIDs in dependencies for .NET 8.0+ -->
13+
<NoWarn>$(NoWarn);NETSDK1206</NoWarn>
1214
</PropertyGroup>
1315
<PropertyGroup>
1416
<CsWinRTIncludes>AdaptiveCards.Rendering.WinUI3</CsWinRTIncludes>
1517
<CsWinRTGeneratedFilesDir>$(OutDir)</CsWinRTGeneratedFilesDir>
1618
<BaseOutputPath>$(SolutionDir)\$(Platform)\$(MSBuildProjectName)</BaseOutputPath>
19+
<CsWinRTAotOptimizerEnabled>true</CsWinRTAotOptimizerEnabled>
20+
<CsWinRTAotWarningLevel>2</CsWinRTAotWarningLevel>
1721
</PropertyGroup>
1822
<ItemGroup>
1923
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="2.1.1" />

source/uwp/winui3/WinUI3ObjectModelTest/ObjectModelTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
using AdaptiveCards.ObjectModel.WinUI3;
55
using Windows.Data.Json;
66

7-
87
namespace WinUI3ObjectModelTest
98
{
109
[TestClass]
@@ -1014,7 +1013,7 @@ public void OpenUrlAction()
10141013
AdaptiveCard adaptiveCard = new AdaptiveCard();
10151014
adaptiveCard.Actions.Add(openUrlAction);
10161015

1017-
string expectedSerialization = "{\"actions\":[{\"iconUrl\":\"http://www.stuff.com/icon.jpg\",\"id\":\"OpenUrlId\",\"isEnabled\":false,\"mode\":\"secondary\",\"style\":\"Destructive\",\"title\":\"Title\",\"tooltip\":\"I am a tooltip\",\"type\":\"Action.OpenUrl\",\"url\":\"http://www.stuff.com/\"}],\"body\":[],\"type\":\"AdaptiveCard\",\"version\":\"1.0\"}";
1016+
string expectedSerialization = "{\"actions\":[{\"iconUrl\":\"http://www.stuff.com/icon.jpg\",\"id\":\"OpenUrlId\",\"isEnabled\":false,\"mode\":\"secondary\",\"role\":\"Link\",\"style\":\"Destructive\",\"title\":\"Title\",\"tooltip\":\"I am a tooltip\",\"type\":\"Action.OpenUrl\",\"url\":\"http://www.stuff.com/\"}],\"body\":[],\"type\":\"AdaptiveCard\",\"version\":\"1.0\"}";
10181017

10191018
var jsonString = adaptiveCard.ToJson().ToString();
10201019
Assert.AreEqual(expectedSerialization, jsonString);

source/uwp/winui3/WinUI3ObjectModelTest/WinUI3ObjectModelTest.csproj

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<OutputType>WinExe</OutputType>
4-
<TargetFramework>net6.0-windows10.0.17763.0</TargetFramework>
4+
<TargetFramework>net8.0-windows10.0.17763.0</TargetFramework>
55
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
6-
<WindowsSdkPackageVersion>10.0.17763.38</WindowsSdkPackageVersion>
76
<RootNamespace>WinUI3ObjectModelTest</RootNamespace>
87
<ApplicationManifest>app.manifest</ApplicationManifest>
98
<Platforms>x86;x64;arm64</Platforms>
10-
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
9+
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
1110
<PublishProfile>win10-$(Platform).pubxml</PublishProfile>
1211
<UseWinUI>true</UseWinUI>
1312
<EnableMsixTooling>true</EnableMsixTooling>
13+
14+
<!-- Suppress warning about win10-* RIDs in dependencies for .NET 8.0+ -->
15+
<NoWarn>$(NoWarn);NETSDK1206</NoWarn>
16+
17+
<!-- AOT Compatibility Analysis -->
18+
<IsAotCompatible>true</IsAotCompatible>
19+
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
20+
21+
<!-- Enable AOT warnings to show at build time -->
22+
<WarningsAsErrors>$(WarningsAsErrors);IL2026;IL3050;IL2087;IL2091</WarningsAsErrors>
1423
</PropertyGroup>
1524

1625
<ItemGroup>
@@ -28,9 +37,9 @@
2837
</ItemGroup>
2938

3039
<ItemGroup>
31-
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="2.1.1" />
32-
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.2.221109.1" />
33-
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.1" />
40+
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="2.2.0" />
41+
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.251003001" />
42+
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.6901" />
3443
<PackageReference Include="MSTest.TestAdapter">
3544
<Version>3.0.2</Version>
3645
</PackageReference>

0 commit comments

Comments
 (0)