<?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>Winui | The .NET Blog</title><link>https://thedotnetblog.com/pl/tags/winui/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>pl</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Thu, 23 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/pl/tags/winui/index.xml" rel="self" type="application/rss+xml"/><item><title>Windows App Dev CLI v0.3: F5 z terminala i UI Automation dla agentów</title><link>https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/</guid><description>Windows App Development CLI v0.3 przynosi winapp run do uruchamiania i debugowania z terminala, winapp ui do automatyzacji interfejsu oraz nowy pakiet NuGet umożliwiający działanie dotnet run z zapakowanymi aplikacjami.</description><content:encoded>&lt;p&gt;&lt;em&gt;Ten artykuł został przetłumaczony automatycznie. Aby zobaczyć oryginał, &lt;a href="https://thedotnetblog.com/pl/posts/emiliano-montesdeoca/windows-app-dev-cli-v03-run-ui-automation/"&gt;kliknij tutaj&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Doświadczenie F5 w Visual Studio jest świetne. Ale otwieranie VS tylko po to, żeby uruchomić i debugować zapakowaną aplikację Windows — czy to w potoku CI, zautomatyzowanym workflowie, czy gdy agent AI wykonuje testy — to zbędny narzut.&lt;/p&gt;
&lt;p&gt;Windows App Development CLI v0.3 właśnie &lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;wyszło&lt;/a&gt; i rozwiązuje ten problem bezpośrednio dzięki dwóm głównym funkcjom: &lt;code&gt;winapp run&lt;/code&gt; i &lt;code&gt;winapp ui&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="winapp-run-f5-z-dowolnego-miejsca"&gt;winapp run: F5 z dowolnego miejsca&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;winapp run&lt;/code&gt; przyjmuje folder niezapakowanej aplikacji i manifest, wykonując wszystko, co VS robi przy uruchamianiu debugowania: rejestruje luźny pakiet, uruchamia aplikację i zachowuje &lt;code&gt;LocalState&lt;/code&gt; między ponownymi deploymentami.&lt;/p&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;&lt;span class="c1"&gt;# Zbuduj aplikację, a następnie uruchom ją jako zapakowaną aplikację&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;winapp run ./bin/Debug
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Działa dla WinUI, WPF, WinForms, Console, Avalonia i innych. Tryby są zaprojektowane zarówno dla deweloperów, jak i zautomatyzowanych workflowów:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--detach&lt;/code&gt;&lt;/strong&gt;: Uruchamia i natychmiast zwraca kontrolę do terminala. Idealny dla CI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--unregister-on-exit&lt;/code&gt;&lt;/strong&gt;: Usuwa zarejestrowany pakiet przy zamknięciu aplikacji.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;--debug-output&lt;/code&gt;&lt;/strong&gt;: Przechwytuje komunikaty &lt;code&gt;OutputDebugString&lt;/code&gt; i wyjątki w czasie rzeczywistym.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="nowy-pakiet-nuget-dotnet-run-dla-zapakowanych-aplikacji"&gt;Nowy pakiet NuGet: dotnet run dla zapakowanych aplikacji&lt;/h2&gt;
&lt;p&gt;Dla deweloperów .NET jest nowy pakiet NuGet: &lt;code&gt;Microsoft.Windows.SDK.BuildTools.WinApp&lt;/code&gt;. Po instalacji &lt;code&gt;dotnet run&lt;/code&gt; obsługuje cały inner loop: budowanie, przygotowanie pakietu loose-layout, rejestrację w Windows i uruchomienie — wszystko w jednym kroku.&lt;/p&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;winapp init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# lub&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="winapp-ui-ui-automation-z-wiersza-poleceń"&gt;winapp ui: UI Automation z wiersza poleceń&lt;/h2&gt;
&lt;p&gt;To funkcja otwierająca scenariusze agentyczne. &lt;code&gt;winapp ui&lt;/code&gt; zapewnia pełny dostęp UI Automation do dowolnej działającej aplikacji Windows — WPF, WinForms, Win32, Electron, WinUI3 — bezpośrednio z terminala.&lt;/p&gt;
&lt;p&gt;Co można robić:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wylistować wszystkie okna najwyższego poziomu&lt;/li&gt;
&lt;li&gt;Nawigować po pełnym drzewie UI Automation dowolnego okna&lt;/li&gt;
&lt;li&gt;Wyszukiwać elementy po nazwie, typie lub ID automatyzacji&lt;/li&gt;
&lt;li&gt;Klikać, wywoływać i ustawiać wartości&lt;/li&gt;
&lt;li&gt;Robić zrzuty ekranu&lt;/li&gt;
&lt;li&gt;Czekać na pojawienie się elementów — idealne do synchronizacji testów&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Połączenie &lt;code&gt;winapp ui&lt;/code&gt; z &lt;code&gt;winapp run&lt;/code&gt; daje kompletny workflow build → uruchomienie → weryfikacja z terminala. Agent może uruchomić aplikację, sprawdzić stan UI, programowo z nią interagować i zwalidować wynik.&lt;/p&gt;
&lt;h2 id="inne-nowości"&gt;Inne nowości&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp unregister&lt;/code&gt;&lt;/strong&gt;: Usuwa sideloadowany pakiet po zakończeniu pracy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winapp manifest add-alias&lt;/code&gt;&lt;/strong&gt;: Dodaje alias do uruchamiania aplikacji po nazwie z terminala.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uzupełnianie tabulatorem&lt;/strong&gt;: Jedno polecenie do skonfigurowania uzupełniania w PowerShell.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="jak-zdobyć"&gt;Jak zdobyć&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;winget install Microsoft.WinAppCli
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# lub&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install -g @microsoft/winappcli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;CLI jest w publicznym podglądzie. Pełna dokumentacja dostępna w &lt;a href="https://github.com/microsoft/WinAppCli"&gt;repozytorium GitHub&lt;/a&gt;, a wszystkie szczegóły w &lt;a href="https://devblogs.microsoft.com/ifdef-windows/windows-app-development-cli-v0-3-new-run-and-ui-commands-plus-dotnet-run-support-for-packaged-apps/"&gt;oryginalnym ogłoszeniu&lt;/a&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>