تمت ترجمة هذا المنشور تلقائيًا. للاطلاع على النص الأصلي، انقر هنا.
تجربة F5 في Visual Studio رائعة. لكن فتح VS لمجرد تشغيل تطبيق Windows مُحزَّم وتنقيحه — سواء في خط أنابيب CI، أو سير عمل آلي، أو عندما يُجري وكيل ذكاء اصطناعي الاختبارات — يُشكّل عبئًا زائدًا.
صدر الإصدار v0.3 من Windows App Development CLI للتو، ويعالج هذا الأمر مباشرةً بميزتين رئيسيتين: winapp run وwinapp ui.
winapp run: F5 من أي مكان
يستقبل winapp run مجلد تطبيق غير مُحزَّم وملف manifest، وينفّذ كل ما يفعله VS عند تشغيل التنقيح: تسجيل حزمة loose، وتشغيل التطبيق، والحفاظ على LocalState بين عمليات إعادة النشر.
# قم ببناء التطبيق، ثم شغّله كتطبيق مُحزَّم
winapp run ./bin/Debug
يعمل مع WinUI وWPF وWinForms وConsole وAvalonia والمزيد. صُمِّمت الأوضاع للمطورين وسير العمل الآلي على حد سواء:
--detach: يُشغَّل التطبيق ويُعاد التحكم فورًا إلى الطرفية. مثالي لـ CI.--unregister-on-exit: يُزيل الحزمة المُسجَّلة عند إغلاق التطبيق.--debug-output: يلتقط رسائلOutputDebugStringوالاستثناءات في الوقت الفعلي.
حزمة NuGet جديدة: dotnet run للتطبيقات المُحزَّمة
يتوفر للمطورين العاملين بـ .NET حزمة NuGet جديدة: Microsoft.Windows.SDK.BuildTools.WinApp. بعد التثبيت، يتولى dotnet run إدارة الحلقة الداخلية بأكملها: البناء، وتحضير حزمة loose-layout، والتسجيل في Windows، والتشغيل — كل ذلك في خطوة واحدة.
winapp init
# أو
dotnet add package Microsoft.Windows.SDK.BuildTools.WinApp
winapp ui: أتمتة واجهة المستخدم من سطر الأوامر
هذه هي الميزة التي تفتح سيناريوهات الوكلاء الذكيين. يوفر winapp ui وصولًا كاملًا عبر UI Automation لأي تطبيق Windows قيد التشغيل — WPF وWinForms وWin32 وElectron وWinUI3 — مباشرةً من الطرفية.
ما يمكن تحقيقه:
- سرد جميع النوافذ على المستوى الأعلى
- التنقل في شجرة UI Automation الكاملة لأي نافذة
- البحث عن عناصر بالاسم أو النوع أو معرّف الأتمتة
- النقر والاستدعاء وتعيين القيم
- التقاط لقطات الشاشة
- انتظار ظهور العناصر — مثالي لمزامنة الاختبارات
يُتيح الجمع بين winapp ui وwinapp run سير عملًا كاملًا من الطرفية: بناء ← تشغيل ← تحقق. يمكن للوكيل تشغيل التطبيق، وفحص حالة الواجهة، والتفاعل برمجيًا، والتحقق من النتيجة.
مستجدات أخرى
winapp unregister: يحذف حزمة sideloaded عند الانتهاء.winapp manifest add-alias: يُضيف اسمًا مستعارًا لتشغيل التطبيق بالاسم من الطرفية.- إكمال تلقائي بـ Tab: تهيئة إكمال PowerShell بأمر واحد.
كيفية التثبيت
winget install Microsoft.WinAppCli
# أو
npm install -g @microsoft/winappcli
الأداة في معاينة عامة. راجع مستودع GitHub للتوثيق الكامل، والإعلان الأصلي لجميع التفاصيل.
