<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Desktop | The .NET Blog</title><link>https://thedotnetblog.com/tags/desktop/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/desktop/index.xml" rel="self" type="application/rss+xml"/><item><title>WinApp VS Code Extension: Run, Debug, and Package Windows Apps Without Leaving the Editor</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/winapp-vscode-extension-run-debug-windows-apps/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/winapp-vscode-extension-run-debug-windows-apps/</guid><description>The WinApp VS Code extension brings the full Windows App Development CLI into VS Code — run, debug with package identity, package, and sign Windows apps (WPF, WinUI, .NET, C++) without touching Visual Studio.</description><content:encoded>&lt;p&gt;If you&amp;rsquo;ve ever tried to build a Windows app in VS Code, you know the moment it happens. You&amp;rsquo;re flowing along, editing code in your editor of choice, and then you need package identity for a Windows API. Or you need to create an MSIX. Or you need to sign a package. And suddenly you&amp;rsquo;re reaching for Visual Studio, or digging through SDK command-line tools, or Googling &amp;ldquo;msix packaging without visual studio&amp;rdquo; at 11pm.&lt;/p&gt;
&lt;p&gt;That friction is gone now. The &lt;a href="https://marketplace.visualstudio.com/items?itemName=Microsoft-WinAppCLI.winapp"&gt;WinApp VS Code extension&lt;/a&gt; is in public preview — and it&amp;rsquo;s the full &lt;a href="https://github.com/microsoft/WinAppCli"&gt;Windows App Development CLI&lt;/a&gt; wrapped directly into VS Code. No separate installation, no Visual Studio required.&lt;/p&gt;
&lt;h2 id="package-identity-from-f5"&gt;Package Identity From F5&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the thing about Windows APIs — notifications, background tasks, on-device AI features, share targets — many of them require your app to have &lt;strong&gt;package identity&lt;/strong&gt;. Without it, those APIs just won&amp;rsquo;t work.&lt;/p&gt;
&lt;p&gt;Getting package identity traditionally meant building a full MSIX installer or running from Visual Studio. The WinApp extension changes this completely with a custom &lt;code&gt;winapp&lt;/code&gt; debug type.&lt;/p&gt;
&lt;p&gt;Add this to your &lt;code&gt;launch.json&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0.2.0&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;configurations&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;winapp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;request&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;launch&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;WinApp: Launch and Attach&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hit F5. The extension locates your build output and manifest, gives your app package identity via &lt;code&gt;winapp run&lt;/code&gt;, and attaches the debugger. For .NET apps that&amp;rsquo;s &lt;code&gt;coreclr&lt;/code&gt; (needs C# Dev Kit). C/C++ uses &lt;code&gt;cppvsdbg&lt;/code&gt;. Node/Electron uses the built-in debugger.&lt;/p&gt;
&lt;p&gt;You can wire up a &lt;code&gt;preLaunchTask&lt;/code&gt; so the project builds automatically before each F5 press — same as Visual Studio&amp;rsquo;s build-and-launch flow, just in VS Code.&lt;/p&gt;
&lt;h2 id="everything-in-the-command-palette"&gt;Everything in the Command Palette&lt;/h2&gt;
&lt;p&gt;Open &lt;code&gt;Ctrl+Shift+P&lt;/code&gt;, type &lt;code&gt;WinApp&lt;/code&gt;, and you get the full toolkit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Initialize Project&lt;/strong&gt; — configure your project with Windows SDK and/or Windows App SDK&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run Application&lt;/strong&gt; — launch as a loose-layout packaged app with package identity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create MSIX Package&lt;/strong&gt; — package your app with certificate and runtime options&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update Manifest Assets&lt;/strong&gt; — auto-generate all required app icons from a single source image&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generate / Install Certificate&lt;/strong&gt; — development certificate management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sign Package&lt;/strong&gt; — sign an MSIX or executable&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run SDK Tool&lt;/strong&gt; — run &lt;code&gt;makeappx&lt;/code&gt;, &lt;code&gt;signtool&lt;/code&gt;, &lt;code&gt;mt&lt;/code&gt;, or &lt;code&gt;makepri&lt;/code&gt; directly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No WinApp CLI installation needed either. It&amp;rsquo;s bundled with the extension.&lt;/p&gt;
&lt;h2 id="works-across-frameworks"&gt;Works Across Frameworks&lt;/h2&gt;
&lt;p&gt;This isn&amp;rsquo;t just a .NET WPF/WinUI tool. The extension works with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;.NET&lt;/strong&gt;: WPF, WinForms, Console, WinUI 3&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;C/C++&lt;/strong&gt;: Win32, CMake, MSBuild&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Electron&lt;/strong&gt; / Node.js&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rust&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tauri&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flutter&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That breadth is deliberate. VS Code is where web and cross-platform developers live. If you&amp;rsquo;re building a Tauri or Electron app that needs Windows packaging and notarization, this extension covers you without requiring you to adopt Visual Studio.&lt;/p&gt;
&lt;h2 id="why-this-matters-for-net-developers"&gt;Why This Matters for .NET Developers&lt;/h2&gt;
&lt;p&gt;I work a lot in VS Code — it&amp;rsquo;s where I write Markdown, manage configs, edit small projects, and run terminals. But for .NET Windows desktop work, Visual Studio has been the only real option the moment you need anything packaging-related.&lt;/p&gt;
&lt;p&gt;This extension closes that gap. You can now have a complete Windows .NET desktop development cycle — edit, build, run with package identity, debug, package, sign — without leaving VS Code. That&amp;rsquo;s a genuine quality-of-life improvement.&lt;/p&gt;
&lt;p&gt;It also matters for agentic and automation scenarios. The Windows App Development CLI v0.3 (which this extension wraps) unlocked &lt;code&gt;run&lt;/code&gt;, &lt;code&gt;debug&lt;/code&gt;, and &lt;code&gt;ui&lt;/code&gt; commands that agents and scripts can use. The extension brings all of that into a VS Code context, which means AI coding agents working in VS Code can now interact with Windows apps too.&lt;/p&gt;
&lt;h2 id="getting-started"&gt;Getting Started&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;code --install-extension Microsoft-WinAppCLI.winapp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Or search for &lt;strong&gt;WinApp&lt;/strong&gt; in the Extensions view (&lt;code&gt;Ctrl+Shift+X&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows 10 or later&lt;/li&gt;
&lt;li&gt;VS Code 1.109.0 or later&lt;/li&gt;
&lt;li&gt;The debugger extension for your app&amp;rsquo;s language (C# Dev Kit for .NET, C/C++ extension for C++)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Full docs are at the &lt;a href="https://github.com/microsoft/winappCli/blob/main/src/winapp-VSC/README.md"&gt;WinApp VS Code extension README&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a public preview, and the team is actively collecting feedback. If you hit a rough edge, &lt;a href="https://github.com/microsoft/winappCli/issues/new?template=bug-report.yml"&gt;file a bug&lt;/a&gt;. If something&amp;rsquo;s missing, &lt;a href="https://github.com/microsoft/winappCli/issues/new?template=feature_request.yml"&gt;open a feature request&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Read the &lt;a href="https://devblogs.microsoft.com/ifdef-windows/announcing-the-winapp-vs-code-extension-run-debug-and-package-windows-apps-in-vs-code/"&gt;full announcement from Chiara Mooney&lt;/a&gt; for more details.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping Up&lt;/h2&gt;
&lt;p&gt;The WinApp VS Code extension is a welcome addition for .NET Windows desktop developers who live in VS Code but have had to bounce to Visual Studio for packaging work. Package identity from F5, MSIX packaging from the command palette, certificate management built in — it&amp;rsquo;s the right set of things to bring together.&lt;/p&gt;
&lt;p&gt;Give it a try on your next WPF or WinUI project. The friction you&amp;rsquo;ve been working around just got a lot smaller.&lt;/p&gt;</content:encoded></item></channel></rss>