Files
Prism/e2e/Uno/HelloWorld/HelloWorld.csproj

73 lines
3.8 KiB
XML

<Project Sdk="Uno.Sdk">
<PropertyGroup>
<!--
net*-windows10*: overlapping Uno + Windows SDK default items (and duplicated WinUI imports) can produce
NETSDK1022 for PRIResource (e.g. Strings\en\Resources.resw) and Page (App-adjacent XAML). Pin WinAppSdk,
disable default PRI/Page for this TFM, and list the files explicitly below.
-->
<IsWinAppSdk Condition="$(TargetFramework.Contains('windows10'))">true</IsWinAppSdk>
<EnableDefaultPriItems Condition="$(TargetFramework.Contains('windows10'))">false</EnableDefaultPriItems>
<EnableDefaultPageItems Condition="$(TargetFramework.Contains('windows10'))">false</EnableDefaultPageItems>
<TargetFrameworks>$(PrismUnoSampleTargetFrameworks)</TargetFrameworks>
<OutputType>Exe</OutputType>
<UnoSingleProject>true</UnoSingleProject>
<GenerateLibraryLayout>true</GenerateLibraryLayout>
<ApplicationTitle>Prism Playground</ApplicationTitle>
<ApplicationId>com.prismlibrary.helloworld.unowinui</ApplicationId>
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
<ApplicationPublisher>Prism Library</ApplicationPublisher>
<Description>Prism for Uno — regions, dialogs, and modularity sample.</Description>
<UnoFeatures>
Material;
Hosting;
Toolkit;
Logging;
LoggingSerilog;
</UnoFeatures>
</PropertyGroup>
<!-- Opt in on the app only. Do not pass PublishAot as a global command-line property:
it would flow into referenced libraries. -->
<PropertyGroup Condition="'$(PrismNativeAotValidation)' == 'true' and ($([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android')">
<PublishAot>true</PublishAot>
<DefineConstants>$(DefineConstants);PRISM_NATIVE_AOT_VALIDATION</DefineConstants>
<UseInterpreter>false</UseInterpreter>
</PropertyGroup>
<ItemGroup Condition="$(TargetFramework.Contains('windows10'))">
<ApplicationDefinition Include="App.xaml" />
<Page Include="Views\Shell.xaml" />
<Page Include="Views\BindingLabPage.xaml" />
<Page Include="Styles\ColorPaletteOverride.xaml" />
<PRIResource Include="Strings\en\Resources.resw" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\Prism.Core\Prism.Core.csproj" />
<ProjectReference Include="..\..\..\src\Uno\Prism.DryIoc.Uno\Prism.DryIoc.Uno.WinUI.csproj" Condition="'$(PrismNativeAotValidation)' != 'true'" />
<ProjectReference Include="..\..\..\src\Uno\Prism.Uno\Prism.Uno.WinUI.csproj" Condition="'$(PrismNativeAotValidation)' == 'true'" />
<ProjectReference Include="..\Playground.Module\Playground.Module.csproj" />
</ItemGroup>
<ItemGroup Condition="'$(PrismNativeAotValidation)' == 'true' and '$(PrismNativeAotContainerVersion)' != ''">
<PackageReference Include="Prism.Container.Microsoft" VersionOverride="$(PrismNativeAotContainerVersion)" />
</ItemGroup>
<Target Name="ValidateNativeAotConfiguration" BeforeTargets="CollectPackageReferences;PrepareForBuild"
Condition="'$(PrismNativeAotValidation)' == 'true'">
<Error Condition="'$(PrismNativeAotContainerVersion)' == ''"
Text="NativeAOT validation requires matching real Prism.Container.Microsoft and Prism.Container.Abstractions packages. Use the centrally pinned version or set PrismNativeAotContainerVersion to an explicit local build." />
</Target>
<Target Name="ValidateNativeAotBuild" BeforeTargets="PrepareForBuild"
Condition="'$(PrismNativeAotValidation)' == 'true'">
<Error Condition="'$(Configuration)' != 'Release' or '$(PublishAot)' != 'true'"
Text="PrismNativeAotValidation requires Release and an Android or iOS target framework." />
</Target>
</Project>