terminal/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj
Dustin L. Howett (MSFT) 06f2706c40
Switch to a non-release build of MUXc to fix elevated launch (#3278)
Due to a platform issue, elevated application packages occasionally fail
to find all of their dependencies. The real fix for this is going to
take a lot of time and probably a new build of Windows.

The fix we have here switches us to a non-"release" build of
Microsoft.UI.Xaml. The critical thing about their non-release builds is
that they prefer to embed their DLLs into the hosting package instead of
expressing a platform dependency.

This build of Microsoft.UI.Xaml was produced from the same commit as
the original and official build; the only difference is that it will
embed into our package.

Fixes #3275.
2019-10-22 11:48:09 -07:00

352 lines
20 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<Import Project="$(OpenConsoleDir)src\wap-common.build.pre.props" />
<PropertyGroup Label="Version">
<!-- These fields are picked up by PackageES -->
<VersionMajor>0</VersionMajor>
<VersionMinor>6</VersionMinor>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<TargetPlatformVersion>10.0.18362.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.18362.0</TargetPlatformMinVersion>
<!--
These two properties are very important!
Without them, msbuild will stomp MinVersion and MaxVersionTested in the
Package.appxmanifest and replace them with whatever our values for
TargetPlatformMinVersion and TargetPlatformVersion are.
-->
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
</PropertyGroup>
<PropertyGroup>
<ProjectGuid>CA5CAD1A-224A-4171-B13A-F16E576FDD12</ProjectGuid>
<EntryPointProjectUniqueName>..\WindowsTerminal\WindowsTerminal.vcxproj</EntryPointProjectUniqueName>
<DebuggerType>NativeOnly</DebuggerType>
</PropertyGroup>
<PropertyGroup Condition="!Exists('CascadiaPackage_TemporaryKey.pfx')">
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
<AppxBundle>Never</AppxBundle>
</PropertyGroup>
<PropertyGroup Condition="Exists('CascadiaPackage_TemporaryKey.pfx')">
<AppxPackageSigningEnabled>true</AppxPackageSigningEnabled>
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
<PackageCertificateKeyFile>CascadiaPackage_TemporaryKey.pfx</PackageCertificateKeyFile>
</PropertyGroup>
<ItemGroup Condition="Exists('CascadiaPackage_TemporaryKey.pfx')">
<None Include="CascadiaPackage_TemporaryKey.pfx" />
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest" Condition="'$(WindowsTerminalReleaseBuild)'=='true'">
<SubType>Designer</SubType>
</AppxManifest>
<AppxManifest Include="Package-Dev.appxmanifest" Condition="'$(WindowsTerminalReleaseBuild)'!='true'">
<SubType>Designer</SubType>
</AppxManifest>
</ItemGroup>
<ItemGroup>
<Content Include="$(OpenConsoleDir)res\terminal\LargeTile.scale-100.png">
<Link>Images\LargeTile.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LargeTile.scale-125.png">
<Link>Images\LargeTile.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LargeTile.scale-150.png">
<Link>Images\LargeTile.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LargeTile.scale-200.png">
<Link>Images\LargeTile.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LargeTile.scale-400.png">
<Link>Images\LargeTile.scale-400.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LockScreenLogo.scale-100.png">
<Link>Images\LockScreenLogo.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LockScreenLogo.scale-125.png">
<Link>Images\LockScreenLogo.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LockScreenLogo.scale-150.png">
<Link>Images\LockScreenLogo.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LockScreenLogo.scale-200.png">
<Link>Images\LockScreenLogo.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\LockScreenLogo.scale-400.png">
<Link>Images\LockScreenLogo.scale-400.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SmallTile.scale-100.png">
<Link>Images\SmallTile.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SmallTile.scale-125.png">
<Link>Images\SmallTile.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SmallTile.scale-150.png">
<Link>Images\SmallTile.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SmallTile.scale-200.png">
<Link>Images\SmallTile.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SmallTile.scale-400.png">
<Link>Images\SmallTile.scale-400.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SplashScreen.scale-100.png">
<Link>Images\SplashScreen.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SplashScreen.scale-125.png">
<Link>Images\SplashScreen.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SplashScreen.scale-150.png">
<Link>Images\SplashScreen.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SplashScreen.scale-200.png">
<Link>Images\SplashScreen.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\SplashScreen.scale-400.png">
<Link>Images\SplashScreen.scale-400.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square150x150Logo.scale-100.png">
<Link>Images\Square150x150Logo.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square150x150Logo.scale-125.png">
<Link>Images\Square150x150Logo.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square150x150Logo.scale-150.png">
<Link>Images\Square150x150Logo.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square150x150Logo.scale-200.png">
<Link>Images\Square150x150Logo.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square150x150Logo.scale-400.png">
<Link>Images\Square150x150Logo.scale-400.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.scale-100.png">
<Link>Images\Square44x44Logo.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.scale-125.png">
<Link>Images\Square44x44Logo.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.scale-150.png">
<Link>Images\Square44x44Logo.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.scale-200.png">
<Link>Images\Square44x44Logo.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.scale-400.png">
<Link>Images\Square44x44Logo.scale-400.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-16.png">
<Link>Images\Square44x44Logo.targetsize-16.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-16_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-16_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-20.png">
<Link>Images\Square44x44Logo.targetsize-20.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-20_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-20_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-24.png">
<Link>Images\Square44x44Logo.targetsize-24.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-24_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-24_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-256.png">
<Link>Images\Square44x44Logo.targetsize-256.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-256_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-256_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-30.png">
<Link>Images\Square44x44Logo.targetsize-30.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-30_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-30_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-32.png">
<Link>Images\Square44x44Logo.targetsize-32.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-32_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-32_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-36.png">
<Link>Images\Square44x44Logo.targetsize-36.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-36_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-36_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-40.png">
<Link>Images\Square44x44Logo.targetsize-40.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-40_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-40_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-48.png">
<Link>Images\Square44x44Logo.targetsize-48.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-48_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-48_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-60.png">
<Link>Images\Square44x44Logo.targetsize-60.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-60_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-60_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-64.png">
<Link>Images\Square44x44Logo.targetsize-64.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-64_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-64_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-72.png">
<Link>Images\Square44x44Logo.targetsize-72.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-72_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-72_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-80.png">
<Link>Images\Square44x44Logo.targetsize-80.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-80_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-80_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-96.png">
<Link>Images\Square44x44Logo.targetsize-96.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Square44x44Logo.targetsize-96_altform-unplated.png">
<Link>Images\Square44x44Logo.targetsize-96_altform-unplated.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\StoreLogo.scale-100.png">
<Link>Images\StoreLogo.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\StoreLogo.scale-125.png">
<Link>Images\StoreLogo.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\StoreLogo.scale-150.png">
<Link>Images\StoreLogo.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\StoreLogo.scale-200.png">
<Link>Images\StoreLogo.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\StoreLogo.scale-400.png">
<Link>Images\StoreLogo.scale-400.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Wide310x150Logo.scale-100.png">
<Link>Images\Wide310x150Logo.scale-100.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Wide310x150Logo.scale-125.png">
<Link>Images\Wide310x150Logo.scale-125.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Wide310x150Logo.scale-150.png">
<Link>Images\Wide310x150Logo.scale-150.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Wide310x150Logo.scale-200.png">
<Link>Images\Wide310x150Logo.scale-200.png</Link>
</Content>
<Content Include="$(OpenConsoleDir)res\terminal\Wide310x150Logo.scale-400.png">
<Link>Images\Wide310x150Logo.scale-400.png</Link>
</Content>
<!-- Fonts -->
<Content Include="$(OpenConsoleDir)res\Cascadia.ttf" Condition="'$(WindowsTerminalReleaseBuild)'=='true'">
<Link>Cascadia.ttf</Link>
</Content>
<!-- Profile Icons -->
<Content Include="ProfileIcons\{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.scale-100.png" />
<Content Include="ProfileIcons\{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.scale-200.png" />
<Content Include="ProfileIcons\{574e775e-4f2a-5b96-ac1e-a2962a402336}.scale-100.png" />
<Content Include="ProfileIcons\{574e775e-4f2a-5b96-ac1e-a2962a402336}.scale-200.png" />
<Content Include="ProfileIcons\{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.scale-100.png" />
<Content Include="ProfileIcons\{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.scale-200.png" />
<Content Include="ProfileIcons\{9acb9455-ca41-5af7-950f-6bca1bc9722f}.scale-100.png" />
<Content Include="ProfileIcons\{9acb9455-ca41-5af7-950f-6bca1bc9722f}.scale-200.png" />
<Content Include="ProfileIcons\{b453ae62-4e3d-5e58-b989-0a998ec441b8}.scale-100.png" />
<Content Include="ProfileIcons\{b453ae62-4e3d-5e58-b989-0a998ec441b8}.scale-200.png" />
<!-- Default Settings -->
<Content Include="$(OpenConsoleDir)src\cascadia\TerminalApp\defaults.json">
<Link>defaults.json</Link>
</Content>
<!-- Resources -->
<PRIResource Include="Resources\en-US\Resources.resw" />
</ItemGroup>
<Import Project="$(OpenConsoleDir)src\wap-common.build.post.props" />
<ItemGroup>
<ProjectReference Include="..\WindowsTerminal\WindowsTerminal.vcxproj" />
<ProjectReference Include="..\..\host\exe\Host.EXE.vcxproj" />
</ItemGroup>
<!-- Stomp the path to conhost.exe.
This task will copy OpenConsole.exe to the appx as conhost.exe, and place it
adjacent to WindowsTerminal.exe.
-->
<Target Name="OpenConsoleStompSourceProjectForWapProject" BeforeTargets="_ConvertItems">
<ItemGroup>
<!-- Stomp all "SourceProject" values for all incoming dependencies to flatten the package. -->
<_TemporaryFilteredWapProjOutput Include="@(_FilteredNonWapProjProjectOutput)" />
<_FilteredNonWapProjProjectOutput Remove="@(_TemporaryFilteredWapProjOutput)" />
<_FilteredNonWapProjProjectOutput Include="@(_TemporaryFilteredWapProjOutput)">
<!-- Override the filename for OpenConsole.exe (only) -->
<TargetPath Condition="'%(Filename)' == 'OpenConsole' and '%(Extension)' == '.exe'">conhost.exe</TargetPath>
<!-- Blank the SourceProject here to vend all files into the root of the package. -->
<SourceProject>
</SourceProject>
</_FilteredNonWapProjProjectOutput>
</ItemGroup>
</Target>
<!-- Move all the PRI files that would be packaged into the appx into _PriFile so that
GenerateProjectPriFile catches them. This requires us to move payload collection
up before GenerateProjectPriFile, when it is typically _after_ it (because the
DesktopBridge project type is built to only prepare the payload during appx manifest
generation.
Since PRI file generation is _before_ manifest generation (for possibly obvious or
important reasons), that doesn't work for us.
-->
<PropertyGroup>
<!-- Only for MSBuild versions < 16.3.0 -->
<_GenerateProjectPriFileDependsOn Condition="$(MSBuildVersion) &lt; '16.3.0'">OpenConsoleLiftDesktopBridgePriFiles;$(_GenerateProjectPriFileDependsOn)</_GenerateProjectPriFileDependsOn>
</PropertyGroup>
<Target Name="OpenConsoleLiftDesktopBridgePriFiles" DependsOnTargets="_ConvertItems">
<ItemGroup>
<_PriFile Include="@(_NonWapProjProjectOutput)" Condition="'%(Extension)' == '.pri'" />
<!-- Remove all other .pri files from the appx payload. -->
<AppxPackagePayload Remove="@(AppxPackagePayload)" Condition="'%(Extension)' == '.pri'" />
</ItemGroup>
</Target>
<!-- VS 16.3.0 added a rule to the WAP packaging project that removes all non-WAP payload, which we were relying on to
roll up our subproject resources. We have to suppress that rule but keep part of its logic, because that rule is
where the AppxPackagePayload items are created. -->
<PropertyGroup>
<!-- Only for MSBuild versions <= 16.4.0 -->
<!-- TODO: Change this to hard less than once the 16.4.0 previews fix the bug. -->
<WapProjBeforeGenerateAppxManifestDependsOn
Condition="$(MSBuildVersion) &lt;= '16.4.0'">
$([MSBuild]::Unescape('$(WapProjBeforeGenerateAppxManifestDependsOn.Replace('_RemoveAllNonWapUWPItems', '_OpenConsoleRemoveAllNonWapUWPItems'))'))
</WapProjBeforeGenerateAppxManifestDependsOn>
</PropertyGroup>
<Target Name="_OpenConsoleRemoveAllNonWapUWPItems">
<ItemGroup>
<AppxPackagePayload Include="@(WapProjPackageFile)" />
<AppxUploadPackagePayload Include="@(UploadWapProjPackageFile)" />
<!-- 16.3.0 - remove non-resources.pri PRI files since we just forced them back in. -->
<AppxPackagePayload Remove="@(AppxPackagePayload)" Condition="'%(Extension)' == '.pri' and '%(Filename)' != 'resources'" />
<AppxUploadPackagePayload Remove="@(AppxUploadPackagePayload)" Condition="'%(Extension)' == '.pri' and '%(Filename)' != 'resources'" />
</ItemGroup>
</Target>
<!-- This is required to get the package dependency in the AppXManifest. -->
<Import Project="..\..\..\packages\Microsoft.UI.Xaml.2.2.191021001-prerelease\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\..\packages\Microsoft.UI.Xaml.2.2.191021001-prerelease\build\native\Microsoft.UI.Xaml.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\packages\Microsoft.UI.Xaml.2.2.191021001-prerelease\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.UI.Xaml.2.2.191021001-prerelease\build\native\Microsoft.UI.Xaml.targets'))" />
</Target>
</Project>