Skip to content

Comments

Niels9001/temp update#6207

Open
niels9001 wants to merge 6 commits intouser/muyuanli/dotnetnewtemplatefrom
niels9001/template-updates
Open

Niels9001/temp update#6207
niels9001 wants to merge 6 commits intouser/muyuanli/dotnetnewtemplatefrom
niels9001/template-updates

Conversation

@niels9001
Copy link
Contributor

A microsoft employee must use /azp run to validate using the pipelines below.

WARNING:
Comments made by azure-pipelines bot maybe inaccurate.
Please see pipeline link to verify that the build is being ran.

For status checks on the main branch, please use TransportPackage-Foundation-PR
(https://microsoft.visualstudio.com/ProjectReunion/_build?definitionId=81063&_a=summary)
and run the build against your PR branch with the default parameters.

@niels9001 niels9001 changed the base branch from main to user/muyuanli/dotnetnewtemplate February 11, 2026 15:17
Copy link

@michael-hawker michael-hawker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just some high-level comments/thoughts.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is an item template it shouldn't need a project file, eh?

</TitleBar.IconSource>
</TitleBar>

<Grid Grid.Row="1" />

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add the MainPage in here to solve that issue about binding/resources?

</TitleBar.IconSource>
</TitleBar>

<Grid Grid.Row="1" />

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here with MainPage. I guess it's not possible to share the files between these two templates, eh? One of these was for the waproj, eh? Are we close to getting rid of that, or should we just move that one to CLI vs. included by default?

@@ -0,0 +1,49 @@
using System;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are all these usings really needed? Wonder if we should try and move some to a global usings or in the project file to clean-up some of the loose files here? Maybe this is a follow-on item for later.


private void NavView_Loaded(object sender, RoutedEventArgs e)
{
NavView.SelectedItem = NavView.MenuItems[0];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this not be set in XAML?

}

private void NavView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
{

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice if this was easier, but built-in ways, probably not so much. I was thinking if there was some newer C# syntax we could use to compact it, but then it may not be as readable.

Maybe for future advanced ones we investigate leveraging WCT more, MVVM, etc...

mc:Ignorable="d">

<Grid>
<TextBlock

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could maybe show how to get the app version here?

mc:Ignorable="d">

<Grid>
<TextBlock

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be nice to have the light/dark toggle button here.

mc:Ignorable="d">

<Grid>
<TextBlock

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to do anything else like the more complex MAUI sample like showing how to x:Bind with a counter? Or save that for samples. I know we've had feedback both ways about complexity of templates.

Maybe we just have the basics here and work forward on more complexity later/elsewhere?

@MuyuanMS
Copy link
Contributor

If the intention is to make new templates for dotnet new only for now, I would say place these templates under DotnetNewTemplates folder. VSIX/ItemTemplates and VSIX/ProjectTemplates are templates that can be converted to both DotnetNew templates and Visual Studio templates. If the intention is to make these changes both for dotnet new and vs templates, then current way is totally fine, but just need to make sure that it can be built to vsix extension as well.

@niels9001
Copy link
Contributor Author

If the intention is to make new templates for dotnet new only for now, I would say place these templates under DotnetNewTemplates folder. VSIX/ItemTemplates and VSIX/ProjectTemplates are templates that can be converted to both DotnetNew templates and Visual Studio templates. If the intention is to make these changes both for dotnet new and vs templates, then current way is totally fine, but just need to make sure that it can be built to vsix extension as well.

Yeah, ideally we'd want both. NavView and ContentDialog (the ones that are new) + the changes to existing templates should be available on both as a bare minimum. We can then iterate in the future with more advanced templates in dotnetnew first before bringing them to vsix!

Let me know if I need to update anything for this to be merged in :)!

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request enhances the Windows App SDK Visual Studio extension by adding a new ContentDialog item template and a NavigationApp project template, along with modernizing existing templates with custom title bar support and app icons.

Changes:

  • Adds a new ContentDialog item template for creating custom dialog controls
  • Adds a comprehensive NavigationApp project template with navigation patterns and multiple pages
  • Updates existing BlankApp and SingleProjectPackagedApp templates to include custom title bar and app icon support

Reviewed changes

Copilot reviewed 31 out of 44 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
dev/VSIX/WindowsAppSDK.Extension.sln Added ContentDialog item template project reference
dev/VSIX/ProjectTemplates/Desktop/CSharp/SingleProjectPackagedApp/* Updated MainWindow with custom title bar, added AppIcon.ico reference
dev/VSIX/ProjectTemplates/Desktop/CSharp/PackagedApp/BlankApp/* Updated MainWindow with custom title bar, added AppIcon.ico file
dev/VSIX/ProjectTemplates/Desktop/CSharp/NavigationApp/* New navigation app template with pages, navigation patterns, and modern UI
dev/VSIX/ItemTemplates/Neutral/CSharp/ContentDialog/* New ContentDialog item template files
dev/VSIX/Extension/Cs/Dev17/WindowsAppSDK.Cs.Extension.Dev17.csproj Added ContentDialog template project reference
dev/VSIX/Extension/Cs/Dev17/Standalone/source.extension.vsixmanifest Added ContentDialog template asset
dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj Added ContentDialog dotnet new template configuration

Comment on lines +2 to +14
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several unused using directives detected that should be removed:

  • System.Collections.Generic
  • System.IO
  • System.Linq
  • System.Runtime.InteropServices.WindowsRuntime
  • Windows.Foundation
  • Windows.Foundation.Collections
  • Microsoft.UI.Xaml
  • Microsoft.UI.Xaml.Controls.Primitives
  • Microsoft.UI.Xaml.Data
  • Microsoft.UI.Xaml.Input
  • Microsoft.UI.Xaml.Media
  • Microsoft.UI.Xaml.Navigation

These are not used by the code in this file and should be removed for clarity and to avoid analyzer warnings.

Suggested change
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml.Controls;

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +14
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several unused using directives detected that should be removed:

  • System.Collections.Generic
  • System.IO
  • System.Linq
  • System.Runtime.InteropServices.WindowsRuntime
  • Windows.Foundation
  • Windows.Foundation.Collections
  • Microsoft.UI.Xaml
  • Microsoft.UI.Xaml.Controls.Primitives
  • Microsoft.UI.Xaml.Data
  • Microsoft.UI.Xaml.Input
  • Microsoft.UI.Xaml.Media
  • Microsoft.UI.Xaml.Navigation

These are not used by the code in this file and should be removed for clarity and to avoid analyzer warnings.

Suggested change
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml.Controls;

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +14
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several unused using directives detected that should be removed:

  • System.Collections.Generic
  • System.IO
  • System.Linq
  • System.Runtime.InteropServices.WindowsRuntime
  • Windows.Foundation
  • Windows.Foundation.Collections
  • Microsoft.UI.Xaml.Controls.Primitives
  • Microsoft.UI.Xaml.Data
  • Microsoft.UI.Xaml.Input
  • Microsoft.UI.Xaml.Media
  • Microsoft.UI.Xaml.Navigation

These are not used by the code in this file and should be removed for clarity and to avoid analyzer warnings.

Suggested change
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +15
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Windowing;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several unused using directives detected that should be removed:

  • System.Collections.Generic
  • System.IO
  • System.Linq
  • System.Runtime.InteropServices.WindowsRuntime
  • Windows.Foundation
  • Windows.Foundation.Collections
  • Microsoft.UI.Xaml.Controls.Primitives
  • Microsoft.UI.Xaml.Data
  • Microsoft.UI.Xaml.Input
  • Microsoft.UI.Xaml.Media

Only the following are actually used: Microsoft.UI.Windowing, Microsoft.UI.Xaml, Microsoft.UI.Xaml.Controls, Microsoft.UI.Xaml.Navigation, and the project-specific Pages namespace.

Suggested change
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Windowing;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Windowing;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;

Copilot uses AI. Check for mistakes.
Comment on lines +59 to +68
switch (item.Tag)
{
case "home":
NavFrame.Navigate(typeof(HomePage));
break;
case "about":
NavFrame.Navigate(typeof(AboutPage));
break;
}
}
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing navigation fallback handling in the switch statement. When neither "home" nor "about" matches the Tag property, no action is taken. Consider adding a default case or logging to handle unexpected navigation items, improving maintainability and debugging.

Copilot uses AI. Check for mistakes.
Comment on lines +2 to +17
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml.Shapes;
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several unused using directives detected that should be removed:

  • System.Collections.Generic
  • System.IO
  • System.Linq
  • System.Runtime.InteropServices.WindowsRuntime
  • Windows.ApplicationModel
  • Windows.ApplicationModel.Activation
  • Windows.Foundation
  • Windows.Foundation.Collections
  • Microsoft.UI.Xaml.Controls
  • Microsoft.UI.Xaml.Controls.Primitives
  • Microsoft.UI.Xaml.Data
  • Microsoft.UI.Xaml.Input
  • Microsoft.UI.Xaml.Media
  • Microsoft.UI.Xaml.Navigation
  • Microsoft.UI.Xaml.Shapes

These are not used by the code in this file and should be removed for clarity and to avoid analyzer warnings.

Suggested change
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml.Shapes;
using Microsoft.UI.Xaml;

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +14
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Several unused using directives detected that should be removed:

  • System.Collections.Generic
  • System.IO
  • System.Linq
  • System.Runtime.InteropServices.WindowsRuntime
  • Windows.Foundation
  • Windows.Foundation.Collections
  • Microsoft.UI.Xaml
  • Microsoft.UI.Xaml.Controls.Primitives
  • Microsoft.UI.Xaml.Data
  • Microsoft.UI.Xaml.Input
  • Microsoft.UI.Xaml.Media
  • Microsoft.UI.Xaml.Navigation

These are not used by the code in this file and should be removed for clarity and to avoid analyzer warnings.

Suggested change
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
using System;
using Microsoft.UI.Xaml.Controls;

Copilot uses AI. Check for mistakes.

<Capabilities>
<rescap:Capability Name="runFullTrust" />
<systemai:Capability Name="systemAIModels"/>
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The systemAIModels capability is declared but the template doesn't appear to use any AI-related functionality. This capability should only be included if the application actually uses Windows AI features. Consider removing this capability or documenting why it's needed in the template.

Copilot uses AI. Check for mistakes.
Comment on lines +107 to +120

<!-- Content dialog item template -->
<ItemGroup>
<None Include="templates\item-content-dialog\.template.config\**\*.*"
Pack="true"
PackagePath="content/WinAppSdk.CSharp.Item.ContentDialog/.template.config/%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="templates\item-content-dialog\ContentDialogItem.xaml"
Pack="true"
PackagePath="content/WinAppSdk.CSharp.Item.ContentDialog/ContentDialogItem.xaml" />
<None Include="templates\item-content-dialog\ContentDialogItem.xaml.cs"
Pack="true"
PackagePath="content/WinAppSdk.CSharp.Item.ContentDialog/ContentDialogItem.xaml.cs" />
<Compile Remove="templates\item-content-dialog\**" />
</ItemGroup>
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ContentDialog dotnet new template references files in "templates\item-content-dialog" directory, but this directory and its files (ContentDialogItem.xaml, ContentDialogItem.xaml.cs, and .template.config) are missing from this PR. The template configuration cannot work without these files being added to the repository.

Suggested change
<!-- Content dialog item template -->
<ItemGroup>
<None Include="templates\item-content-dialog\.template.config\**\*.*"
Pack="true"
PackagePath="content/WinAppSdk.CSharp.Item.ContentDialog/.template.config/%(RecursiveDir)%(Filename)%(Extension)" />
<None Include="templates\item-content-dialog\ContentDialogItem.xaml"
Pack="true"
PackagePath="content/WinAppSdk.CSharp.Item.ContentDialog/ContentDialogItem.xaml" />
<None Include="templates\item-content-dialog\ContentDialogItem.xaml.cs"
Pack="true"
PackagePath="content/WinAppSdk.CSharp.Item.ContentDialog/ContentDialogItem.xaml.cs" />
<Compile Remove="templates\item-content-dialog\**" />
</ItemGroup>

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +63
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>$DotNetVersion$-windows10.0.19041.0</TargetFramework>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<RootNamespace>$safeprojectname$</RootNamespace>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Platforms>x86;x64;ARM64</Platforms>
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
<PublishProfile>win-$(Platform).pubxml</PublishProfile>
<UseWinUI>true</UseWinUI>
<WinUISDKReferences>false</WinUISDKReferences>
<EnableMsixTooling>true</EnableMsixTooling>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<Content Include="Assets\SplashScreen.scale-200.png" />
<Content Include="Assets\LockScreenLogo.scale-200.png" />
<Content Include="Assets\Square150x150Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Content Include="Assets\StoreLogo.png" />
<Content Include="Assets\AppIcon.ico" />
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>

<ItemGroup>
<Manifest Include="$(ApplicationManifest)" />
</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>

<!-- This is a temporary workaround to test dotnet new template - it will block vstemplate from working -->
<ItemGroup>
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="*" />
<PackageReference Include="Microsoft.WindowsAppSDK" Version="*" />
</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>

<!-- Publish Properties -->
<PropertyGroup>
<PublishReadyToRun Condition="'$(Configuration)' == 'Debug'">False</PublishReadyToRun>
<PublishReadyToRun Condition="'$(Configuration)' != 'Debug'">True</PublishReadyToRun>
<PublishTrimmed Condition="'$(Configuration)' == 'Debug'">False</PublishTrimmed>
<PublishTrimmed Condition="'$(Configuration)' != 'Debug'">True</PublishTrimmed>
</PropertyGroup>
</Project>
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The NavigationApp project template is missing required files for Visual Studio integration:

  1. A .vstemplate file (e.g., WinUI.Desktop.Cs.NavigationApp.vstemplate) to define the template metadata and structure
  2. The template is not added to the WindowsAppSDK.Extension.sln solution file
  3. The template is not referenced in the VSIX extension project files

Without these, the template cannot be discovered or used in Visual Studio. Compare with dev/VSIX/ProjectTemplates/Desktop/CSharp/PackagedApp/ which has all required files.

Copilot uses AI. Check for mistakes.
@MuyuanMS
Copy link
Contributor

If the intention is to make new templates for dotnet new only for now, I would say place these templates under DotnetNewTemplates folder. VSIX/ItemTemplates and VSIX/ProjectTemplates are templates that can be converted to both DotnetNew templates and Visual Studio templates. If the intention is to make these changes both for dotnet new and vs templates, then current way is totally fine, but just need to make sure that it can be built to vsix extension as well.

Yeah, ideally we'd want both. NavView and ContentDialog (the ones that are new) + the changes to existing templates should be available on both as a bare minimum. We can then iterate in the future with more advanced templates in dotnetnew first before bringing them to vsix!

Let me know if I need to update anything for this to be merged in :)!

Then I have no concerns! Just making sure that you are aware that new templates also need to work for vstemplate - I actually don't exactly know how to verify it , assumingly by building dev/VSIX/WindowsAppSDK.Extension.sln

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants