mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 03:37:59 +01:00
## Summary of the Pull Request This PR introduces a small ribbon to the CmdPal for app developers. The dev ribbon is dynamically added to the main window in local (non-CI) builds. It shows the number of logged errors and warnings, the current build configuration (Debug or Release), and whether it’s built with AOT. The flyout shows the latest errors and warnings and lets you quickly access the logs. ## Pictures? Pictures! <img width="985" height="589" alt="image" src="https://github.com/user-attachments/assets/6528b02b-b4b4-4968-91bf-e67a29f86415" /> <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #43318 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed
264 lines
12 KiB
XML
264 lines
12 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<Import Project="..\..\..\Common.Dotnet.CsWinRT.props" />
|
|
<Import Project="..\..\..\Common.Dotnet.AotCompatibility.props" />
|
|
<Import Project="..\..\..\CmdPalVersion.props" />
|
|
<Import Project="CmdPal.pre.props" />
|
|
<Import Project="CmdPal.Branding.props" />
|
|
|
|
<PropertyGroup>
|
|
<OutputType>WinExe</OutputType>
|
|
<RootNamespace>Microsoft.CmdPal.UI</RootNamespace>
|
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
|
<PublishProfile>win-$(Platform).pubxml</PublishProfile>
|
|
<UseWinUI>true</UseWinUI>
|
|
<EnableMsixTooling>true</EnableMsixTooling>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
|
|
<LangVersion>preview</LangVersion>
|
|
|
|
<Version>$(CmdPalVersion)</Version>
|
|
|
|
<!-- OutputPath is set in CmdPal.Branding.props -->
|
|
|
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
|
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
|
</PropertyGroup>
|
|
|
|
<!-- For debugging purposes, uncomment this block to enable AOT builds -->
|
|
<!--<PropertyGroup>
|
|
<EnableCmdPalAOT>true</EnableCmdPalAOT>
|
|
<GeneratePackageLocally>true</GeneratePackageLocally>
|
|
</PropertyGroup>-->
|
|
|
|
<PropertyGroup Condition="'$(EnableCmdPalAOT)' == 'true'">
|
|
<SelfContained>true</SelfContained>
|
|
<PublishSingleFile>false</PublishSingleFile>
|
|
<DisableRuntimeMarshalling>false</DisableRuntimeMarshalling>
|
|
<PublishAot>true</PublishAot>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(CIBuild)' == 'true' or '$(GeneratePackageLocally)' == 'true'">
|
|
<GenerateAppxPackageOnBuild>true</GenerateAppxPackageOnBuild>
|
|
<AppxBundle>Never</AppxBundle>
|
|
<AppxPackageTestDir>$(OutputPath)\AppPackages\Microsoft.CmdPal.UI_$(Version)_Test\</AppxPackageTestDir>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- This lets us actually reference types from Microsoft.Terminal.UI -->
|
|
<CsWinRTIncludes>Microsoft.Terminal.UI;CmdPalKeyboardService</CsWinRTIncludes>
|
|
<CsWinRTGeneratedFilesDir>$(OutDir)</CsWinRTGeneratedFilesDir>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- This disables the auto-generated main, so we can be single-instanced -->
|
|
<DefineConstants>DISABLE_XAML_GENERATED_MAIN</DefineConstants>
|
|
</PropertyGroup>
|
|
|
|
<!-- BODGY: XES Versioning and WinAppSDK get into a fight about the app manifest, which breaks WinAppSDK. -->
|
|
<Target Name="RearrangeXefVersioningAndWinAppSDKResourceGeneration" DependsOnTargets="GetNewAppManifestValues;CreateWinRTRegistration" BeforeTargets="XesWriteVersionInfoResourceFile">
|
|
<PropertyGroup>
|
|
<!-- XES uses this property to store the "final" location of the app manifest, before it erases it.
|
|
We have to update it to the value WinAppSDK set it to. -->
|
|
<OriginalApplicationManifest>$(ApplicationManifest.Replace("$(MSBuildProjectDirectory)\",""))</OriginalApplicationManifest>
|
|
</PropertyGroup>
|
|
<Message Importance="High" Text="Updated final manifest path to $(OriginalApplicationManifest)" />
|
|
</Target>
|
|
|
|
<ItemGroup>
|
|
<None Remove="Controls\ActionBar.xaml" />
|
|
<None Remove="Controls\DevRibbon.xaml" />
|
|
<None Remove="Controls\KeyVisual\KeyCharPresenter.xaml" />
|
|
<None Remove="Controls\SearchBar.xaml" />
|
|
<None Remove="IsEnabledTextBlock.xaml" />
|
|
<None Remove="ListDetailPage.xaml" />
|
|
<None Remove="LoadingPage.xaml" />
|
|
<None Remove="MainPage.xaml" />
|
|
<None Remove="Pages\Settings\ExtensionsPage.xaml" />
|
|
<None Remove="Pages\Settings\GeneralPage.xaml" />
|
|
<None Remove="SettingsWindow.xaml" />
|
|
<None Remove="ShellPage.xaml" />
|
|
<None Remove="Styles\Colors.xaml" />
|
|
<None Remove="Styles\Settings.xaml" />
|
|
<None Remove="Styles\TextBox.xaml" />
|
|
</ItemGroup>
|
|
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="CommunityToolkit.WinUI.Controls.Primitives" />
|
|
<PackageReference Include="CommunityToolkit.WinUI.Controls.SettingsControls" />
|
|
<PackageReference Include="CommunityToolkit.WinUI.Converters" />
|
|
<PackageReference Include="CommunityToolkit.WinUI.Animations" />
|
|
<PackageReference Include="CommunityToolkit.WinUI.Extensions" />
|
|
<PackageReference Include="CommunityToolkit.Labs.WinUI.Controls.MarkdownTextBlock" />
|
|
<PackageReference Include="Microsoft.Extensions.DependencyInjection" />
|
|
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" />
|
|
<PackageReference Include="Microsoft.WindowsAppSDK" />
|
|
<PackageReference Include="Microsoft.Xaml.Behaviors.WinUI.Managed" />
|
|
<PackageReference Include="WinUIEx" />
|
|
<PackageReference Include="Microsoft.Windows.CsWin32">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
|
</PackageReference>
|
|
|
|
<PackageReference Include="Microsoft.Extensions.Hosting" />
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
Defining the "Msix" ProjectCapability here allows the Single-project MSIX Packaging
|
|
Tools extension to be activated for this project even if the Windows App SDK Nuget
|
|
package has not yet been restored.
|
|
-->
|
|
<ItemGroup Condition="'$(DisableMsixProjectCapabilityAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
|
|
<ProjectCapability Include="Msix" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<SDKReference Include="Microsoft.VCLibs.Desktop, Version=14.0" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\..\common\ManagedTelemetry\Telemetry\ManagedTelemetry.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.ClipboardHistory\Microsoft.CmdPal.Ext.ClipboardHistory.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.RemoteDesktop\Microsoft.CmdPal.Ext.RemoteDesktop.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.System\Microsoft.CmdPal.Ext.System.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.WebSearch\Microsoft.CmdPal.Ext.WebSearch.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.Indexer\Microsoft.CmdPal.Ext.Indexer.csproj" />
|
|
<ProjectReference Include="..\Core\Microsoft.CmdPal.Core.Common\Microsoft.CmdPal.Core.Common.csproj" />
|
|
<ProjectReference Include="..\Microsoft.CmdPal.UI.ViewModels\Microsoft.CmdPal.UI.ViewModels.csproj" />
|
|
|
|
<ProjectReference Include="..\extensionsdk\Microsoft.CommandPalette.Extensions.Toolkit\Microsoft.CommandPalette.Extensions.Toolkit.csproj" />
|
|
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.Apps\Microsoft.CmdPal.Ext.Apps.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.Bookmark\Microsoft.CmdPal.Ext.Bookmarks.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.Calc\Microsoft.CmdPal.Ext.Calc.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.Registry\Microsoft.CmdPal.Ext.Registry.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.Shell\Microsoft.CmdPal.Ext.Shell.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.TimeDate\Microsoft.CmdPal.Ext.TimeDate.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.WindowsServices\Microsoft.CmdPal.Ext.WindowsServices.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.WindowsSettings\Microsoft.CmdPal.Ext.WindowsSettings.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.WindowsTerminal\Microsoft.CmdPal.Ext.WindowsTerminal.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.WindowWalker\Microsoft.CmdPal.Ext.WindowWalker.csproj" />
|
|
<ProjectReference Include="..\ext\Microsoft.CmdPal.Ext.WinGet\Microsoft.CmdPal.Ext.WinGet.csproj" />
|
|
|
|
<ProjectReference Include="..\Microsoft.Terminal.UI\Microsoft.Terminal.UI.vcxproj">
|
|
<ReferenceOutputAssembly>True</ReferenceOutputAssembly>
|
|
<Private>True</Private>
|
|
<CopyLocalSatelliteAssemblies>True</CopyLocalSatelliteAssemblies>
|
|
</ProjectReference>
|
|
|
|
<ProjectReference Include="..\CmdPalKeyboardService\CmdPalKeyboardService.vcxproj">
|
|
<ReferenceOutputAssembly>True</ReferenceOutputAssembly>
|
|
<Private>True</Private>
|
|
<CopyLocalSatelliteAssemblies>True</CopyLocalSatelliteAssemblies>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Page Update="LoadingPage.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
<Page Update="ShellPage.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
<Page Update="ListDetailPage.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
<Page Update="MainPage.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
<Page Update="Controls\SearchBar.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
<Page Update="Controls\DevRibbon.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
<Page Update="Styles\TextBox.xaml">
|
|
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
|
|
</Page>
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
Defining the "HasPackageAndPublishMenuAddedByProject" property here allows the Solution
|
|
Explorer "Package and Publish" context menu entry to be enabled for this project even if
|
|
the Windows App SDK Nuget package has not yet been restored.
|
|
-->
|
|
<PropertyGroup Condition="'$(DisableHasPackageAndPublishMenuAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
|
|
<HasPackageAndPublishMenu>true</HasPackageAndPublishMenu>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<Content Update="..\Microsoft.CmdPal.UI.ViewModels\Assets\template.zip">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Update="Assets\StoreLogo.dark.svg">
|
|
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Update="Assets\StoreLogo.light.svg">
|
|
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Update="Assets\WinGetLogo.svg">
|
|
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Page Update="IsEnabledTextBlock.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Page Update="Controls\KeyVisual\KeyCharPresenter.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Page Update="Styles\Colors.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Page Update="Styles\Settings.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Page Update="Pages\Settings\ExtensionsPage.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Page Update="SettingsWindow.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Page Update="Pages\Settings\GeneralPage.xaml">
|
|
<Generator>MSBuild:Compile</Generator>
|
|
</Page>
|
|
</ItemGroup>
|
|
<!-- </AdaptiveCardsWorkaround> -->
|
|
|
|
<!-- Metadata for build information -->
|
|
<ItemGroup>
|
|
<AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute">
|
|
<_Parameter1>PublishTrimmed</_Parameter1>
|
|
<_Parameter2>$(PublishTrimmed)</_Parameter2>
|
|
</AssemblyAttribute>
|
|
<AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute">
|
|
<_Parameter1>PublishAot</_Parameter1>
|
|
<_Parameter2>$(PublishAot)</_Parameter2>
|
|
</AssemblyAttribute>
|
|
<AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute">
|
|
<_Parameter1>CIBuild</_Parameter1>
|
|
<_Parameter2>$(CIBuild)</_Parameter2>
|
|
</AssemblyAttribute>
|
|
<AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute">
|
|
<_Parameter1>CommandPaletteBranding</_Parameter1>
|
|
<_Parameter2>$(CommandPaletteBranding)</_Parameter2>
|
|
</AssemblyAttribute>
|
|
</ItemGroup>
|
|
|
|
</Project>
|