From bd724746b7d410054f8828abba5f72686bc5459a Mon Sep 17 00:00:00 2001 From: "Muyuan Li (from Dev Box)" Date: Fri, 27 Feb 2026 17:36:26 +0800 Subject: [PATCH 1/2] Enhance copilot instructions and project spec --- dev/VSIX/DotnetNewTemplates/README.md | 35 ++++++- ...WinAppSdk.CSharp.DotnetNewTemplates.csproj | 26 ++--- .../templates/single-project/Agents.md | 94 ++++++++++++++----- .../accessibility.instructions.md | 4 +- .../instructions/code-quality.instructions.md | 4 +- .../design-principles.instructions.md | 4 +- .../globalization.instructions.md | 4 +- .../instructions/performance.instructions.md | 4 +- .../instructions/security.instructions.md | 4 +- .../instructions/testing.instructions.md | 8 +- .../instructions/windows-apis.instructions.md | 44 ++++----- .../winui-best-practices.instructions.md | 54 ++++++----- 12 files changed, 189 insertions(+), 96 deletions(-) diff --git a/dev/VSIX/DotnetNewTemplates/README.md b/dev/VSIX/DotnetNewTemplates/README.md index 28527e75d7..381cc8c089 100644 --- a/dev/VSIX/DotnetNewTemplates/README.md +++ b/dev/VSIX/DotnetNewTemplates/README.md @@ -27,6 +27,32 @@ is installed. Item templates only surface when `dotnet new` is executed inside a WinUI project folder (or when `--project` points to one) so that commands stay context-aware. +### Choosing a Target Framework + +All templates currently default to `net8.0` for compatibility with the widest +set of Windows App SDK tooling. To target a newer .NET version you can either: + +1. Pass `--dotnet-version ` (for example `--dotnet-version net10.0`) when + running `dotnet new ...`. +2. Edit the generated `.csproj` afterward and change `` (and + any related `` entries) to your preferred TFM. + +`dotnet new winui --dotnet-version net10.0 -n MyApp` is the quickest way to spin +up a project that targets .NET 10 while still using the same template payload. + +### CLI Quick Reference + +- Create a blank WinUI app: `dotnet new winui -n MyApp` +- Add a page to an existing project: `dotnet new winui-page -n SettingsPage --project .\MyApp.csproj` +- Add a user control: `dotnet new winui-usercontrol -n ProfileCard --project .\MyApp.csproj` +- Launch the packaged app directly: `dotnet run -c Debug -p:Platform=$env:PROCESSOR_ARCHITECTURE` +- Launch with WinApp Runtime tooling (after building/registering): `winapp run .\MyApp\bin\x64\Debug\\MyApp.exe` + +Whenever possible prefer the CLI scaffolding over hand authoring new files so +token replacements, namespaces, and resource wiring stay consistent. +Replace `` with the exact folder emitted by your build (for +example `net8.0-windows10.0.19041.0`). + ## Local testing workflow 1. Pack the templates: `dotnet pack dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj -c Release -o localpackages`. @@ -47,8 +73,9 @@ dotnet pack dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.cspr `BuildAll.ps1` also runs the same packing step so official builds automatically emit the template pack alongside the other Windows App SDK artifacts. -## Azure Pipelines validation +## Validation checklist -- Windows builds run through [ProjectReunion Template Pack](https://dev.azure.com/microsoft/ProjectReunion/_build?definitionId=186691). To trigger it, first mirror your changes into the internal Foundation repo, then queue the pipeline manually. -- Before running the pipeline, bump the `` in [WinAppSdk.CSharp.DotnetNewTemplates.csproj](WinAppSdk.CSharp.DotnetNewTemplates.csproj#L3-L38) to avoid conflicts when the “publish to internal feed” option is enabled. -- Successful runs publish the resulting `.nupkg` both as a pipeline artifact and (if that option is selected) to the internal feed [Project.Reunion.nuget.internal](https://dev.azure.com/microsoft/ProjectReunion/_artifacts/feed/Project.Reunion.nuget.internal/NuGet/Microsoft.WindowsAppSDK.WinUI.CSharp.Templates). +- Run `dotnet pack` locally (as shown above) and use `dotnet new install` to verify each template still scaffolds and runs. +- Execute `dotnet new --list | findstr winui` (PowerShell: `dotnet new --list | Select-String winui`) to confirm the pack metadata surfaces correctly. +- Open the generated projects in Visual Studio or VS Code, build them for x86/x64/ARM64, and ensure packaged deployments succeed on Windows 10 version 1809 or later. +- When contributing changes, note the updated template version in your PR description so downstream publishing systems pick up the new package. diff --git a/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj b/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj index a99330a9eb..69fe5125a1 100644 --- a/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj +++ b/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj @@ -9,18 +9,18 @@ Template Microsoft.WindowsAppSDK.WinUI.CSharp.Templates 0.0.1-experimental - Microsoft - Microsoft - dotnet new templates that mirror the Windows App SDK WinUI 3 Visual Studio templates. - windows;winappsdk;winui;desktop;csharp - https://github.com/microsoft/WindowsAppSDK - https://github.com/microsoft/WindowsAppSDK + Microsoft + Microsoft + Official WinUI 3 project and item templates for the Windows App SDK. Install this pack to use dotnet new for blank apps, navigation views, libraries, unit tests, and common WinUI UI items that match the Visual Studio experience. + windows;winappsdk;winui;winui3;desktop;dotnet-new;templates;csharp + https://learn.microsoft.com/windows/apps/windows-app-sdk/ + https://github.com/microsoft/WindowsAppSDK git - MIT - README.md - © Microsoft Corporation. All rights reserved. - false - See https://github.com/microsoft/WindowsAppSDK/releases for release notes. + MIT + README.md + (c) Microsoft Corporation. All rights reserved. + false + See https://github.com/microsoft/WindowsAppSDK/releases for release notes. true $(NoWarn);NU5128;CS2008 $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\..\..\localpackages')) @@ -37,10 +37,10 @@ PackagePath="content/winui.blankapp/.template.config/%(RecursiveDir)%(Filename)%(Extension)" /> + PackagePath="content/winui.blankapp/.github/agents/Agents.md" /> + PackagePath="content/winui.blankapp/.github/instructions/%(RecursiveDir)%(Filename)%(Extension)" /> ` from `.csproj` | | Nullable | Read `` from `.csproj` | +> **Default TFM:** Templates ship with `net8.0` by default. Pass +> `--dotnet-version ` (for example `net10.0`) when running `dotnet new ...` +> or edit `` inside the generated `.csproj` before the first +> build if you need a newer framework. Keep `` synchronized +> with the framework you pick. + ## Instruction Files Index -All detailed agent instructions are organized under `instructions/`: +All detailed agent instructions are organized under `.github/instructions/`: | File | Scope | |---|---| -| [design-principles.instructions.md](instructions/design-principles.instructions.md) | DRY, KISS, SOLID, YAGNI | -| [globalization.instructions.md](instructions/globalization.instructions.md) | Globalization & Localization | -| [accessibility.instructions.md](instructions/accessibility.instructions.md) | Accessibility | -| [security.instructions.md](instructions/security.instructions.md) | Security | -| [performance.instructions.md](instructions/performance.instructions.md) | Performance | -| [code-quality.instructions.md](instructions/code-quality.instructions.md) | Static Analysis, StyleCop, Code Cleanup | -| [winui-best-practices.instructions.md](instructions/winui-best-practices.instructions.md) | WinUI 3 / WinAppSDK patterns & references | -| [windows-apis.instructions.md](instructions/windows-apis.instructions.md) | WinAppSDK & Platform SDK API namespace catalog & lookup guidance | -| [testing.instructions.md](instructions/testing.instructions.md) | Unit Testing, Build & Run | +| [design-principles.instructions.md](.github/instructions/design-principles.instructions.md) | DRY, KISS, SOLID, YAGNI | +| [globalization.instructions.md](.github/instructions/globalization.instructions.md) | Globalization & Localization | +| [accessibility.instructions.md](.github/instructions/accessibility.instructions.md) | Accessibility | +| [security.instructions.md](.github/instructions/security.instructions.md) | Security | +| [performance.instructions.md](.github/instructions/performance.instructions.md) | Performance | +| [code-quality.instructions.md](.github/instructions/code-quality.instructions.md) | Static Analysis, StyleCop, Code Cleanup | +| [winui-best-practices.instructions.md](.github/instructions/winui-best-practices.instructions.md) | WinUI 3 / WinAppSDK patterns & references | +| [windows-apis.instructions.md](.github/instructions/windows-apis.instructions.md) | WinAppSDK & Platform SDK API namespace catalog & lookup guidance | +| [testing.instructions.md](.github/instructions/testing.instructions.md) | Unit Testing, Build & Run | ## Core Agent Workflow @@ -42,27 +48,27 @@ Every time you work on this codebase, follow this checklist: ### Before Writing Code 1. **Review the original goal** ΓÇö Re-read the user's request and confirm you understand the intent. 2. **Check existing code** ΓÇö Search for related implementations to avoid duplication (DRY). -3. **Find the right API** ΓÇö If the task involves a platform capability (AI, UI controls, file access, notifications, windowing, widgets, sensors, etc.), first check the [Windows APIs catalog](instructions/windows-apis.instructions.md) and then look up the correct API in the [WinUI 3 API Reference](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/) before writing code. +3. **Find the right API** ΓÇö If the task involves a platform capability (AI, UI controls, file access, notifications, windowing, widgets, sensors, etc.), first check the [Windows APIs catalog](.github/instructions/windows-apis.instructions.md) and then look up the correct API in the [WinUI 3 API Reference](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/) before writing code. 4. **Plan the approach** ΓÇö Consider SOLID principles and identify which classes/interfaces are involved. ### While Writing Code > **Agent Rule ΓÇö MANDATORY:** Steps 5ΓÇô8 are **not** passive references. You **must** actually open and read the linked instruction file before writing code that falls within its scope. Do not skip this ΓÇö these files contain rules, anti-patterns, and checklists that must be applied. -5. **Apply Design Principles** ΓÇö **Read** [design-principles](instructions/design-principles.instructions.md) before adding/refactoring classes or logic. Apply DRY, KISS, SOLID, YAGNI. +5. **Apply Design Principles** ΓÇö **Read** [design-principles](.github/instructions/design-principles.instructions.md) before adding/refactoring classes or logic. Apply DRY, KISS, SOLID, YAGNI. 6. **Follow Fundamentals** ΓÇö **Read the applicable instruction files** based on what you're changing: - - Adding or changing **UI controls / XAML**? ΓåÆ Read [accessibility](instructions/accessibility.instructions.md) (AutomationProperties, keyboard nav, contrast) AND [performance](instructions/performance.instructions.md) (x:Bind, x:Load, virtualization). - - Adding or changing **user-facing strings** (labels, messages, tooltips)? ΓåÆ Read [globalization](instructions/globalization.instructions.md) (`.resw` files, `x:Uid`, `ResourceLoader`). - - Handling **secrets, user input, HTTP, or permissions**? ΓåÆ Read [security](instructions/security.instructions.md) (no hard-coded secrets, input validation, least privilege). - - Working on **data binding, collections, async/IO, or layout**? ΓåÆ Read [performance](instructions/performance.instructions.md) (x:Bind, virtualization, async patterns). -7. **Respect Code Quality Rules** ΓÇö **Read** [code-quality](instructions/code-quality.instructions.md) before writing code. Follow all CA*/SA*/IDE* analyzer rules and naming conventions. -8. **Follow WinUI Patterns** ΓÇö **Read** [winui-best-practices](instructions/winui-best-practices.instructions.md) for MVVM, x:Bind, community toolkit, and API verification. + - Adding or changing **UI controls / XAML**? ΓåÆ Read [accessibility](.github/instructions/accessibility.instructions.md) (AutomationProperties, keyboard nav, contrast) AND [performance](.github/instructions/performance.instructions.md) (x:Bind, x:Load, virtualization). + - Adding or changing **user-facing strings** (labels, messages, tooltips)? ΓåÆ Read [globalization](.github/instructions/globalization.instructions.md) (`.resw` files, `x:Uid`, `ResourceLoader`). + - Handling **secrets, user input, HTTP, or permissions**? ΓåÆ Read [security](.github/instructions/security.instructions.md) (no hard-coded secrets, input validation, least privilege). + - Working on **data binding, collections, async/IO, or layout**? ΓåÆ Read [performance](.github/instructions/performance.instructions.md) (x:Bind, virtualization, async patterns). +7. **Respect Code Quality Rules** ΓÇö **Read** [code-quality](.github/instructions/code-quality.instructions.md) before writing code. Follow all CA*/SA*/IDE* analyzer rules and naming conventions. +8. **Follow WinUI Patterns** ΓÇö **Read** [winui-best-practices](.github/instructions/winui-best-practices.instructions.md) for MVVM, x:Bind, community toolkit, and API verification. ### After Writing Code 9. **Remove unused code** ΓÇö Delete unused `using` statements, dead code, commented-out blocks. -10. **Write unit tests** ΓÇö Every new public method/class needs tests. **Read** [testing](instructions/testing.instructions.md) for framework setup, naming conventions (`MethodName_Scenario_ExpectedResult`), AAA pattern, and `dotnet test` commands. +10. **Write unit tests** ΓÇö Every new public method/class needs tests. **Read** [testing](.github/instructions/testing.instructions.md) for framework setup, naming conventions (`MethodName_Scenario_ExpectedResult`), AAA pattern, and `dotnet test` commands. 11. **Build the project** ΓÇö Detect the platform first (`$Platform = $env:PROCESSOR_ARCHITECTURE`), then run `dotnet build -c Debug -p:Platform=$Platform` from the project folder and fix all warnings/errors. **If build errors occur, follow the Troubleshooting Build Errors workflow below.** -12. **Run tests** ΓÇö Run tests related to the change using `--filter` (see [testing](instructions/testing.instructions.md)). Run the full suite only when the change is cross-cutting. +12. **Run tests** ΓÇö Run tests related to the change using `--filter` (see [testing](.github/instructions/testing.instructions.md)). Run the full suite only when the change is cross-cutting. 13. **Register the MSIX package** ΓÇö See [Build, Run & Deploy](#build-run--deploy) below. 14. **Re-review against original goal** ΓÇö Confirm the implementation matches the user's request. @@ -71,13 +77,13 @@ Every time you work on this codebase, follow this checklist: > **Agent Rule ΓÇö MANDATORY:** When a build fails due to an unknown type, missing namespace, unresolved API, or similar definition error, follow this escalation order. **Do NOT jump straight to reading `.winmd` files or using `ildasm`/decompilers** ΓÇö always try web search first. **Step 1 ΓÇö Web Search (ALWAYS try first):** -1. Open and read [windows-apis.instructions.md](instructions/windows-apis.instructions.md) ΓÇö it contains the API namespace catalog and lookup guidance. +1. Open and read [windows-apis.instructions.md](.github/instructions/windows-apis.instructions.md) ΓÇö it contains the API namespace catalog and lookup guidance. 2. Translate the unknown type/namespace into search keywords (e.g., `ImageDescription` ΓåÆ "WinAppSDK ImageDescription API"). 3. Use `web_search` or `web_fetch` to search the [WinAppSDK API Reference](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/) and the [Platform SDK API Reference](https://learn.microsoft.com/en-us/uwp/api/) for the correct namespace, class name, and method signatures. 4. Check the [release notes](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel) to verify the API is available in the project's SDK version (read from `.csproj`). **Step 2 ΓÇö Sample Repos:** -If web search finds the API but usage is unclear, search the sample repositories listed in [windows-apis.instructions.md](instructions/windows-apis.instructions.md) for working examples. +If web search finds the API but usage is unclear, search the sample repositories listed in [windows-apis.instructions.md](.github/instructions/windows-apis.instructions.md) for working examples. **Step 3 ΓÇö WinMD / Decompiler (last resort only):** Only if Steps 1ΓÇô2 fail to resolve the issue, then inspect `.winmd` metadata files or use decompilation tools to discover the exact type definitions. This is a fallback, not the default approach. @@ -86,6 +92,19 @@ Only if Steps 1ΓÇô2 fail to resolve the issue, then inspect `.winmd` metadata This is an MSIX-packaged WinUI 3 app. You **must** pass both `-c` (Configuration) and `-p:Platform=` to every `dotnet` command. +### Dotnet CLI Workflow + +- Prefer `dotnet new` for scaffolding projects and items so namespaces, GUIDs, + and resource wiring stay correct. +- Common commands: + - `dotnet new winui -n MyApp` + - `dotnet new winui-page -n SettingsPage --project .\MyApp\MyApp.csproj` + - `dotnet new winui-usercontrol -n ProfileCard --project .\MyApp\MyApp.csproj` +- Discover available scaffolds with `dotnet new winui --list` (shows supported + parameters such as `--dotnet-version`). +- Need a newer TFM? Supply `--dotnet-version net10.0` during scaffold or edit + `` afterward before the first build. + ### Prerequisites - **Developer Mode must be enabled** on Windows. Verify with: @@ -137,6 +156,14 @@ Add-AppxPackage -Register ".\\bin\$Platform\Debug\ > **Note:** Replace `` with the actual value from `.csproj` (e.g., `net8.0-windows10.0.19041.0`). +### Run from the CLI + +- Quick smoke tests: `dotnet run -c Debug -p:Platform=$Platform` from the + project folder. +- Launch a packaged build: `winapp run .\\bin\$Platform\Debug\\.exe` after registering the MSIX output. +- If the launch fails because an old instance is still running, terminate it + with `taskkill /IM .exe /F` before re-running. + ### Run Tests ```powershell @@ -149,5 +176,26 @@ dotnet test -c Debug -p:Platform=$Platform ## Key Rules (Always Enforced) - **Every change must build and pass tests** ΓÇö Run `dotnet build` and `dotnet test` (see [Build, Run & Deploy](#build-run--deploy)) before considering any task complete. -- **Follow all instruction files** ΓÇö The detailed rules in `instructions/` are authoritative. **You must actually open and read them** (not just acknowledge they exist) when working within their scope. See the trigger conditions in steps 5ΓÇô8 above. +- **Follow all instruction files** ΓÇö The detailed rules in `.github/instructions/` are authoritative. **You must actually open and read them** (not just acknowledge they exist) when working within their scope. See the trigger conditions in steps 5ΓÇô8 above. - **Web search before decompilation** ΓÇö When facing unknown types or build errors, always search the web / API docs first. Only use WinMD/ILDASM as a last resort (see [Troubleshooting Build Errors](#troubleshooting-build-errors)). + +## Windows AI Prerequisites + +When integrating Phi Silica, Windows Vision, or other Windows AI APIs (see +[windows-apis.instructions.md](.github/instructions/windows-apis.instructions.md)): + +1. **Manifest capabilities:** Add the required capabilities (for example + `internetClient`, `machineLearning`, `systemManagement`) to the app manifest + before calling these APIs. +2. **LAF token:** Phi Silica endpoints need a Local API key. Acquire it via the + Windows AI documentation, store it securely (never in source), and document + the manual step in the PR. +3. **MSBuild overrides:** Some scenarios need temporary + `` or package-version overrides. Capture the + reasoning in the PR description and remove overrides once upstream fixes + land. +4. **Fallback path:** If LAF or required hardware is unavailable, use the + Windows Vision / AI APIs that do not require the token and describe the + limitations in the instruction files or README so Copilot can pick the right + approach. + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/accessibility.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/accessibility.instructions.md index 7e93ae3325..e54c035577 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/accessibility.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/accessibility.instructions.md @@ -31,7 +31,7 @@ These rules apply to **every UI change**. They are not optional add-ons. ## Validation -- Build & register the MSIX package — see **Build, Run & Deploy** in `Agents.md`. +- Build & register the MSIX package — see **Build, Run & Deploy** in `.github/agents/Agents.md`. - Test keyboard navigation: tab through every new/changed UI area. - Test High Contrast: switch to Windows High Contrast theme and verify readability. - Run Accessibility Insights for Windows on the app. @@ -58,3 +58,5 @@ These rules apply to **every UI change**. They are not optional add-ons. | 3 | [Accessibility Insights](https://accessibilityinsights.io/docs/windows/overview/) | Testing tool — run before finalizing UI changes | | 4 | [Keyboard Accessibility](https://learn.microsoft.com/en-us/windows/apps/design/accessibility/keyboard-accessibility) | Adding navigation, focus management, or shortcut keys | | 5 | [High Contrast Themes](https://learn.microsoft.com/en-us/windows/apps/design/accessibility/high-contrast-themes) | Adding custom styles, colours, or theme resources | + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/code-quality.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/code-quality.instructions.md index 6ccfa036e8..d18b4b8983 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/code-quality.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/code-quality.instructions.md @@ -145,7 +145,7 @@ Each `.cs` file should follow this order: ## Validation -- Build & register the MSIX package — see **Build, Run & Deploy** in `Agents.md`. +- Build & register the MSIX package — see **Build, Run & Deploy** in `.github/agents/Agents.md`. - Fix **all** warnings — do not suppress without justification in a code comment. - Verify no unused `using` statements remain after every edit. - Verify no commented-out code remains. @@ -166,3 +166,5 @@ Each `.cs` file should follow this order: | 5 | [StyleCop Rules Reference](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/DOCUMENTATION.md) | Understanding specific SA* rule violations | | 6 | [EditorConfig Reference](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/code-style-rule-options) | Modifying `.editorconfig` style or severity settings | | 7 | [.NET Naming Conventions](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/identifier-names) | Verifying naming patterns for types, members, parameters | + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/design-principles.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/design-principles.instructions.md index fe296070a7..296f716464 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/design-principles.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/design-principles.instructions.md @@ -116,7 +116,7 @@ Before submitting any code change, verify: - Review every new/changed class for SRP violations — ask "does this class have more than one reason to change?" - Search the codebase for duplicate logic before adding new helpers: `grep_search` for similar method names or patterns. - Verify no speculative code was added — every line must trace back to the original request. -- Build & register the MSIX package — see **Build, Run & Deploy** in `Agents.md`. +- Build & register the MSIX package — see **Build, Run & Deploy** in `.github/agents/Agents.md`. --- @@ -130,3 +130,5 @@ Before submitting any code change, verify: | 2 | [.NET Design Guidelines](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/) | Designing public APIs, naming, type design | | 3 | [Framework Design Guidelines (Book)](https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/) | Deep-dive on member design, exception patterns, collections | | 4 | [Clean Code Summary](https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29) | Code readability, function size, naming clarity | + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/globalization.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/globalization.instructions.md index 34314afd39..6816b6df50 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/globalization.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/globalization.instructions.md @@ -35,7 +35,7 @@ These rules apply to **every feature and change** involving user-facing text. Th ## Validation -- Build & register the MSIX package — see **Build, Run & Deploy** in `Agents.md`. +- Build & register the MSIX package — see **Build, Run & Deploy** in `.github/agents/Agents.md`. - Check for hard-coded strings: search `Content="` and `Text="` in `.xaml` files — replace with `x:Uid`. ### Verification Checklist @@ -51,3 +51,5 @@ These rules apply to **every feature and change** involving user-facing text. Th | 1 | [Globalize your WinUI app](https://learn.microsoft.com/en-us/windows/apps/design/globalizing/guidelines-and-checklist-for-globalizing-your-app) | Adding any new user-facing strings or culture-aware formatting | | 2 | [Resource Management System](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/mrtcore/localize-strings) | Setting up or modifying `.resw` files and `ResourceLoader` usage | | 3 | [WinUI Localization with x:Uid](https://learn.microsoft.com/en-us/windows/apps/develop/ui-input/localizing-strings) | Binding XAML controls to localized resources via `x:Uid` | + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/performance.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/performance.instructions.md index 6c93e2369a..09eed79a92 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/performance.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/performance.instructions.md @@ -30,7 +30,7 @@ These rules apply to **every feature and change**. They are not optional add-ons ## Validation -- Build & register the MSIX package — see **Build, Run & Deploy** in `Agents.md`. +- Build & register the MSIX package — see **Build, Run & Deploy** in `.github/agents/Agents.md`. ### Verification Checklist @@ -49,3 +49,5 @@ These rules apply to **every feature and change**. They are not optional add-ons | 3 | [x:Load attribute](https://learn.microsoft.com/en-us/windows/uwp/xaml-platform/x-load-attribute) | Deferring UI element loading | | 4 | [Optimize XAML layout](https://learn.microsoft.com/en-us/windows/apps/performance/optimize-xaml-layout) | Restructuring XAML panels, reducing visual tree depth | | 5 | [ListView optimization](https://learn.microsoft.com/en-us/windows/apps/performance/optimize-listview) | Working with lists, collections, or `ItemsRepeater` | + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/security.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/security.instructions.md index cf4461a774..c9f8ad312a 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/security.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/security.instructions.md @@ -29,7 +29,7 @@ These rules apply to **every feature and change**. They are not optional add-ons ## Validation -- Build & register the MSIX package — see **Build, Run & Deploy** in `Agents.md`. +- Build & register the MSIX package — see **Build, Run & Deploy** in `.github/agents/Agents.md`. - Check for hard-coded secrets: search for `password`, `apikey`, `secret`, `connectionstring` in `.cs` files. ### Verification Checklist @@ -46,3 +46,5 @@ These rules apply to **every feature and change**. They are not optional add-ons | 2 | [Secure coding guidelines for .NET](https://learn.microsoft.com/en-us/dotnet/standard/security/secure-coding-guidelines) | Input validation, exception handling, type safety | | 3 | [MSIX Security](https://learn.microsoft.com/en-us/windows/msix/msix-container) | Packaging, signing, or distribution changes | | 4 | [Package.appxmanifest capabilities](https://learn.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations) | Adding or modifying app capabilities/permissions | + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/testing.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/testing.instructions.md index 1878872942..f37d9074c8 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/testing.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/testing.instructions.md @@ -194,7 +194,7 @@ dotnet test -c Debug -p:Platform=x64 ## 4. Test-Specific Commands -For general build and register commands, see **Build, Run & Deploy** in `Agents.md`. +For general build and register commands, see **Build, Run & Deploy** in `.github/agents/Agents.md`. For on-demand test filtering, see **Running Tests On-Demand** above. Below are additional test commands: @@ -220,7 +220,7 @@ When you write or modify code, follow this sequence: 1. **Implement the feature or fix** in the main project. 2. **Write unit tests** for every new/changed public method. -3. **Build** — see **Build, Run & Deploy** in `Agents.md`. Fix all errors and warnings. +3. **Build** — see **Build, Run & Deploy** in `.github/agents/Agents.md`. Fix all errors and warnings. 4. **Run tests** — `dotnet test -c Debug -p:Platform=x64` (from the test project folder) and ensure all pass. 5. **Review** — Confirm tests cover the happy path, edge cases, and error cases. @@ -254,7 +254,7 @@ When you write or modify code, follow this sequence: ## Validation -- Build & run tests — see **Build, Run & Deploy** in `Agents.md`. +- Build & run tests — see **Build, Run & Deploy** in `.github/agents/Agents.md`. - Verify all tests pass — zero failures, zero skipped without justification. - Verify naming follows `MethodName_Scenario_ExpectedResult` pattern. - Verify AAA structure (Arrange/Act/Assert) in every test method. @@ -274,3 +274,5 @@ When you write or modify code, follow this sequence: | 4 | [FluentAssertions Documentation](https://fluentassertions.com/introduction) | Writing expressive assertions (`Should().Be()`, collections, exceptions) | | 5 | [dotnet test CLI](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test) | Running tests from terminal, filtering, verbosity options | | 6 | [Test Explorer in Visual Studio](https://learn.microsoft.com/en-us/visualstudio/test/run-unit-tests-with-test-explorer) | Debugging tests, viewing coverage, understanding test output | + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/windows-apis.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/windows-apis.instructions.md index 5e4c458de6..002e776fb7 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/windows-apis.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/windows-apis.instructions.md @@ -1,13 +1,13 @@ --- -description: 'WinAppSDK & Windows Platform SDK ΓÇö API namespace catalog and lookup guidance' +description: 'WinAppSDK & Windows Platform SDK -- API namespace catalog and lookup guidance' applyTo: '**/*.cs, **/*.xaml, **/*.csproj' --- -# Windows APIs ΓÇö WinAppSDK & Windows Platform SDK +# Windows APIs -- WinAppSDK & Windows Platform SDK ## Sample-First Rule -> **Agent Rule ΓÇö MANDATORY:** Before implementing **any** WinAppSDK or Windows Platform SDK API you have not used before, you **must** search the sample repositories below for a working example first. **Do not guess API usage patterns from documentation alone** ΓÇö the docs often omit critical details that only the sample code reveals. Search **all** of the following repos, not just one: +> **Agent Rule -- MANDATORY:** Before implementing **any** WinAppSDK or Windows Platform SDK API you have not used before, you **must** search the sample repositories below for a working example first. **Do not guess API usage patterns from documentation alone** -- the docs often omit critical details that only the sample code reveals. Search **all** of the following repos, not just one: | # | Repository | What it covers | |---|---|---| @@ -17,30 +17,30 @@ applyTo: '**/*.cs, **/*.xaml, **/*.csproj' ### How to apply -1. **Find the right API** ΓÇö Translate the user's scenario/requirement into common API/programming keywords, then search the API references (Part AΓÇôB below) using those keywords to identify which API fits. -2. **Search for samples** ΓÇö Once you know which API to use, search each sample repo above for the class name to find a working example. -3. **Study the sample** ΓÇö Read the sample's Model / ViewModel / Service layer to understand how the API is actually called ΓÇö object lifetime, required parameters, data preparation, error handling. -4. **Adapt** the sample pattern into our MVVM architecture ΓÇö don't copy the sample structure wholesale, but match its API call sequence exactly. +1. **Find the right API** -- Translate the user's scenario/requirement into common API/programming keywords, then search the API references (Part A-B below) using those keywords to identify which API fits. +2. **Search for samples** -- Once you know which API to use, search each sample repo above for the class name to find a working example. +3. **Study the sample** -- Read the sample's Model / ViewModel / Service layer to understand how the API is actually called -- object lifetime, required parameters, data preparation, error handling. +4. **Adapt** the sample pattern into our MVVM architecture -- don't copy the sample structure wholesale, but match its API call sequence exactly. --- -> **Agent Rule:** Before implementing any feature that involves a platform capability, **consult this file** to check whether a built-in API already exists. Always verify exact class names, method signatures, and availability by following the reference links ΓÇö do not guess API shapes. +> **Agent Rule:** Before implementing any feature that involves a platform capability, **consult this file** to check whether a built-in API already exists. Always verify exact class names, method signatures, and availability by following the reference links -- do not guess API shapes. --- -## Part A ΓÇö Windows App SDK APIs +## Part A -- Windows App SDK APIs **Full API reference:** -> **Agent Rule:** Do not rely on a hardcoded namespace list ΓÇö the SDK is updated frequently. Instead, **search** the API reference above by converting the user's scenario into common programming keywords. +> **Agent Rule:** Do not rely on a hardcoded namespace list -- the SDK is updated frequently. Instead, **search** the API reference above by converting the user's scenario into common programming keywords. ### How to search 1. **Translate** the user's request into API/programming terms. Examples: - - "I want to describe an image" ΓåÆ search for: `image description`, `ImageDescription`, `describe image` - - "Add a notification" ΓåÆ search for: `notification`, `toast`, `AppNotification` - - "Pick a file" ΓåÆ search for: `file picker`, `StoragePicker`, `FileOpenPicker` - - "Make the window always on top" ΓåÆ search for: `AppWindow`, `presenter`, `compact overlay` + - "I want to describe an image" -> search for: `image description`, `ImageDescription`, `describe image` + - "Add a notification" -> search for: `notification`, `toast`, `AppNotification` + - "Pick a file" -> search for: `file picker`, `StoragePicker`, `FileOpenPicker` + - "Make the window always on top" -> search for: `AppWindow`, `presenter`, `compact overlay` 2. **Search** the [WinAppSDK API reference](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/) using `web_search` or `web_fetch` with those keywords. 3. **Verify** the class/method exists in the SDK version used by this project (check `.csproj` `` for `Microsoft.WindowsAppSDK` version). @@ -48,7 +48,7 @@ applyTo: '**/*.cs, **/*.xaml, **/*.csproj' | # | Link | When to consult | |---|---|---| -| 1 | [WinAppSDK API Reference (full)](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/) | **Always** ΓÇö search and look up exact class/method signatures here | +| 1 | [WinAppSDK API Reference (full)](https://learn.microsoft.com/en-us/windows/windows-app-sdk/api/winrt/) | **Always** -- search and look up exact class/method signatures here | | 2 | [Windows App SDK overview](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/) | Feature overview, architecture | | 3 | [Release notes (stable)](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel) | API availability, version support, breaking changes | | 4 | [Windows AI overview](https://learn.microsoft.com/en-us/windows/ai/) | All AI options: Windows AI APIs, Windows ML, Foundry Local | @@ -58,7 +58,7 @@ applyTo: '**/*.cs, **/*.xaml, **/*.csproj' --- -## Part B ΓÇö Windows Platform SDK (UWP / WinRT APIs) +## Part B -- Windows Platform SDK (UWP / WinRT APIs) **Full API reference:** @@ -67,12 +67,12 @@ applyTo: '**/*.cs, **/*.xaml, **/*.csproj' ### How to search 1. **Translate** the user's request into API/programming terms. Examples: - - "Send a Bluetooth message" ΓåÆ search for: `Bluetooth`, `RFCOMM`, `BluetoothDevice` - - "Get the user's location" ΓåÆ search for: `geolocation`, `Geolocator`, `position` - - "Read text from an image" ΓåÆ search for: `OCR`, `text recognition`, `OcrEngine` - - "Copy to clipboard" ΓåÆ search for: `clipboard`, `DataTransfer`, `DataPackage` + - "Send a Bluetooth message" -> search for: `Bluetooth`, `RFCOMM`, `BluetoothDevice` + - "Get the user's location" -> search for: `geolocation`, `Geolocator`, `position` + - "Read text from an image" -> search for: `OCR`, `text recognition`, `OcrEngine` + - "Copy to clipboard" -> search for: `clipboard`, `DataTransfer`, `DataPackage` 2. **Search** the [Platform SDK API reference](https://learn.microsoft.com/en-us/uwp/api/) using `web_search` or `web_fetch` with those keywords. -3. **Check for WinAppSDK equivalent** ΓÇö some Platform SDK APIs have newer equivalents in Part A. Always prefer the WinAppSDK version when both exist. +3. **Check for WinAppSDK equivalent** -- some Platform SDK APIs have newer equivalents in Part A. Always prefer the WinAppSDK version when both exist. ### Key reference links @@ -88,3 +88,5 @@ applyTo: '**/*.cs, **/*.xaml, **/*.csproj' - Before implementing any platform feature, confirm the API is available in the current Windows App SDK version by checking the [release notes](https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel). - For features requiring specific hardware (NPU), provide a graceful fallback for unsupported devices. - When both WinAppSDK and Platform SDK offer a similar API, prefer the WinAppSDK version. + + diff --git a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/winui-best-practices.instructions.md b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/winui-best-practices.instructions.md index 0e3fba0d15..dfa5d52ddd 100644 --- a/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/winui-best-practices.instructions.md +++ b/dev/VSIX/DotnetNewTemplates/templates/single-project/instructions/winui-best-practices.instructions.md @@ -3,13 +3,13 @@ description: 'WinUI 3 / WinAppSDK architecture, MVVM, XAML patterns, DI, theming applyTo: '**/*.cs, **/*.xaml, **/*.csproj' --- -# WinUI 3 / WinAppSDK ΓÇö Best Practices & Patterns +# WinUI 3 / WinAppSDK -- Best Practices & Patterns This file covers WinUI 3-specific patterns, conventions, and architecture guidance for this project. --- -## 1. Architecture ΓÇö MVVM Pattern +## 1. Architecture -- MVVM Pattern ### Overview @@ -18,7 +18,7 @@ Use **Model-View-ViewModel (MVVM)** for all UI features: | Layer | Responsibility | Example | |---|---|---| | **Model** | Data structures & business entities | `Item.cs`, `UserProfile.cs` | -| **View** | XAML UI ΓÇö layout, styles, animations | `MainPage.xaml` | +| **View** | XAML UI -- layout, styles, animations | `MainPage.xaml` | | **ViewModel** | UI state, commands, data transformation | `MainViewModel.cs` | | **Service** | Business logic, data access, navigation | `IDataService.cs`, `NavigationService.cs` | @@ -26,17 +26,17 @@ Use **Model-View-ViewModel (MVVM)** for all UI features: ``` / - Models/ ΓåÉ Data classes - ViewModels/ ΓåÉ ViewModels (one per page/dialog) - Views/ ΓåÉ XAML pages and windows - Services/ ΓåÉ Business logic & platform services - Converters/ ΓåÉ IValueConverter implementations - Helpers/ ΓåÉ Static utility methods - Controls/ ΓåÉ Custom/reusable controls + Models/ -> Data classes + ViewModels/ -> ViewModels (one per page/dialog) + Views/ -> XAML pages and windows + Services/ -> Business logic & platform services + Converters/ -> IValueConverter implementations + Helpers/ -> Static utility methods + Controls/ -> Custom/reusable controls Strings/ en-us/ Resources.resw - Assets/ ΓåÉ Images, icons, splash screens + Assets/ -> Images, icons, splash screens ``` ### ViewModel Base @@ -128,10 +128,10 @@ public partial class MainViewModel : ObservableObject Prefer the WinUI 3 controls from `Microsoft.UI.Xaml.Controls`, **not** the older UWP `Windows.UI.Xaml.Controls`: ```csharp -// GOOD ΓÇö WinUI 3 +// GOOD -- WinUI 3 using Microsoft.UI.Xaml.Controls; -// AVOID ΓÇö UWP (won't work in WinUI 3 desktop) +// AVOID -- UWP (won't work in WinUI 3 desktop) // using Windows.UI.Xaml.Controls; ``` @@ -147,7 +147,7 @@ using Microsoft.UI.Xaml.Controls; ``` - One attribute per line for controls with 3+ attributes. -- Order: `x:Name` ΓåÆ `x:Uid` ΓåÆ `AutomationProperties` ΓåÆ layout ΓåÆ data ΓåÆ style. +- Order: `x:Name` -> `x:Uid` -> `AutomationProperties` -> layout -> data -> style. --- @@ -340,7 +340,7 @@ Alternatives: | Pitfall | Solution | |---|---| | Using `Windows.UI.Xaml` namespace | Use `Microsoft.UI.Xaml` for WinUI 3 | -| Calling `Window.Current` | Not available in WinUI 3 ΓÇö pass window reference explicitly | +| Calling `Window.Current` | Not available in WinUI 3 -- pass window reference explicitly | | Using `CoreDispatcher` | Use `DispatcherQueue` instead | | `REGDB_E_CLASSNOTREG` error | Ensure Developer Mode is enabled; re-register the MSIX package with `Add-AppxPackage -Register` | | XAML Designer crashes | Clean & rebuild; ensure platform matches (x64 vs AnyCPU) | @@ -350,23 +350,23 @@ Alternatives: ## 10. Validation -Build & register the MSIX package ΓÇö see **Build, Run & Deploy** in `Agents.md`. +Build & register the MSIX package -- see **Build, Run & Deploy** in `.github/agents/Agents.md`. ### Verify - Run the app and verify the changed UI renders correctly on x64. -- Search XAML for `{Binding` ΓÇö replace with `x:Bind`. -- Search XAML for `Foreground="#` or `Background="#` ΓÇö replace with `{ThemeResource}`. -- Search C# for `Windows.UI.Xaml` ΓÇö replace with `Microsoft.UI.Xaml`. -- Search C# for `Window.Current` ΓÇö replace with explicit window reference. -- Search C# for `CoreDispatcher` ΓÇö replace with `DispatcherQueue`. +- Search XAML for `{Binding` -- replace with `x:Bind`. +- Search XAML for `Foreground="#` or `Background="#` -- replace with `{ThemeResource}`. +- Search C# for `Windows.UI.Xaml` -- replace with `Microsoft.UI.Xaml`. +- Search C# for `Window.Current` -- replace with explicit window reference. +- Search C# for `CoreDispatcher` -- replace with `DispatcherQueue`. - Test Light, Dark, and High Contrast themes. --- ## 11. Must Read & Research -> **Agent Rule:** Before making any WinUI/WinAppSDK-related change, you **must** fetch and review the relevant references below using `fetch_webpage`. Consult the appropriate section based on the type of change. Apply what you learn ΓÇö do not skip this step. +> **Agent Rule:** Before making any WinUI/WinAppSDK-related change, you **must** fetch and review the relevant references below using `fetch_webpage`. Consult the appropriate section based on the type of change. Apply what you learn -- do not skip this step. ### Official Documentation @@ -392,7 +392,7 @@ Build & register the MSIX package ΓÇö see **Build, Run & Deploy** in `Agents. | # | Reference | When to consult | |---|---|---| | 10 | [WinUI 3 Gallery (GitHub)](https://github.com/microsoft/WinUI-Gallery) | Example implementations of any WinUI control | -| 11 | [Windows Community Toolkit (GitHub)](https://github.com/CommunityToolkit/Windows) | Before building custom controls ΓÇö check if the toolkit already has one | +| 11 | [Windows Community Toolkit (GitHub)](https://github.com/CommunityToolkit/Windows) | Before building custom controls -- check if the toolkit already has one | | 12 | [Fluent Design System](https://learn.microsoft.com/en-us/windows/apps/design/) | Spacing, typography, colour, motion, layout decisions | | 13 | [XAML Controls Gallery](https://apps.microsoft.com/store/detail/winui-3-gallery/9P3JFPWWDZRC) | Interactive demo of all controls and their properties | @@ -400,18 +400,20 @@ Build & register the MSIX package ΓÇö see **Build, Run & Deploy** in `Agents. | # | Reference | When to consult | |---|---|---| -| 14 | [Windows APIs instruction file](windows-apis.instructions.md) | **First stop** ΓÇö check if a built-in API already exists for the capability you need (AI, windowing, notifications, widgets, lifecycle, etc.) | +| 14 | [Windows APIs instruction file](windows-apis.instructions.md) | **First stop** -- check if a built-in API already exists for the capability you need (AI, windowing, notifications, widgets, lifecycle, etc.) | | 15 | [Windows AI APIs](https://learn.microsoft.com/en-us/windows/ai/apis/) | On-device AI: Phi Silica (text gen), OCR, imaging (super-res, description, object extract, erase) | | 16 | [Windows ML](https://learn.microsoft.com/en-us/windows/ai/new-windows-ml/overview) | Custom ONNX model inference on CPU/GPU/NPU | | 17 | [Foundry Local](https://learn.microsoft.com/en-us/windows/ai/foundry-local/get-started) | Run OSS LLMs (Llama, Mistral, Phi) locally via REST API | -| 18 | [Windows AI on Windows](https://learn.microsoft.com/en-us/windows/ai/) | AI landing page ΓÇö all AI options for Windows apps | +| 18 | [Windows AI on Windows](https://learn.microsoft.com/en-us/windows/ai/) | AI landing page -- all AI options for Windows apps | ### Samples -> **Agent Rule ΓÇö MANDATORY:** Before implementing any WinAppSDK or Platform SDK API you have not used before, **search the samples repo first** and study the working example. Do not guess API usage from docs alone ΓÇö see the [Sample-First Rule](windows-apis.instructions.md#sample-first-rule) for details and known pitfalls. +> **Agent Rule -- MANDATORY:** Before implementing any WinAppSDK or Platform SDK API you have not used before, **search the samples repo first** and study the working example. Do not guess API usage from docs alone -- see the [Sample-First Rule](windows-apis.instructions.md#sample-first-rule) for details and known pitfalls. | # | Reference | When to consult | |---|---|---| | 19 | [Windows App SDK Samples](https://github.com/microsoft/WindowsAppSDK-Samples) | **Always search here first** before implementing any SDK API for the first time | | 20 | [WinUI 3 Demos](https://github.com/microsoft/WinUI-Gallery) | Reference implementations and patterns | | 21 | [Windows AI API Samples](https://github.com/microsoft/WindowsAppSDK-Samples/tree/main/Samples/WindowsAIFoundry/cs-winui) | AI API usage with WinUI (ImageDescription, TextRecognizer, LanguageModel, etc.) | + + From d843186e68ebd2e70df01fc18dfd44db46ed5da7 Mon Sep 17 00:00:00 2001 From: "Muyuan Li (from Dev Box)" Date: Fri, 27 Feb 2026 17:45:40 +0800 Subject: [PATCH 2/2] Fix indentation --- ...WinAppSdk.CSharp.DotnetNewTemplates.csproj | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj b/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj index 69fe5125a1..4dc373ddbc 100644 --- a/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj +++ b/dev/VSIX/DotnetNewTemplates/WinAppSdk.CSharp.DotnetNewTemplates.csproj @@ -9,18 +9,18 @@ Template Microsoft.WindowsAppSDK.WinUI.CSharp.Templates 0.0.1-experimental - Microsoft - Microsoft - Official WinUI 3 project and item templates for the Windows App SDK. Install this pack to use dotnet new for blank apps, navigation views, libraries, unit tests, and common WinUI UI items that match the Visual Studio experience. - windows;winappsdk;winui;winui3;desktop;dotnet-new;templates;csharp - https://learn.microsoft.com/windows/apps/windows-app-sdk/ - https://github.com/microsoft/WindowsAppSDK + Microsoft + Microsoft + Official WinUI 3 project and item templates for the Windows App SDK. Install this pack to use dotnet new for blank apps, navigation views, libraries, unit tests, and common WinUI UI items that match the Visual Studio experience. + windows;winappsdk;winui;winui3;desktop;dotnet-new;templates;csharp + https://learn.microsoft.com/windows/apps/windows-app-sdk/ + https://github.com/microsoft/WindowsAppSDK git - MIT - README.md - (c) Microsoft Corporation. All rights reserved. - false - See https://github.com/microsoft/WindowsAppSDK/releases for release notes. + MIT + README.md + (c) Microsoft Corporation. All rights reserved. + false + See https://github.com/microsoft/WindowsAppSDK/releases for release notes. true $(NoWarn);NU5128;CS2008 $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\..\..\localpackages'))