Microsoft Windows App SDK 1.0 Stable วางจำหน่ายแล้ว พร้อมให้ดาวน์โหลด (Release Notes)

ไอคอนเวลาอ่านหนังสือ 12 นาที. อ่าน


ผู้อ่านช่วยสนับสนุน MSpoweruser เราอาจได้รับค่าคอมมิชชันหากคุณซื้อผ่านลิงก์ของเรา ไอคอนคำแนะนำเครื่องมือ

อ่านหน้าการเปิดเผยข้อมูลของเราเพื่อดูว่าคุณจะช่วย MSPoweruser รักษาทีมบรรณาธิการได้อย่างไร อ่านเพิ่มเติม

winUI

หลังจากสร้างตัวอย่างหลายครั้ง Microsoft ได้เปิดตัว Windows App SDK 1.0.0 Stable ซึ่งเป็นชุดเครื่องมือที่ช่วยให้นักพัฒนาแอปเดสก์ท็อปสร้างแอปด้วย Windows UI, API และคุณลักษณะแพลตฟอร์มที่ทันสมัย

ในรุ่นนี้ Microsoft ได้เพิ่มคุณสมบัติใหม่หลายรายการจาก Windows App SDK 0.8 และปัญหาที่เสถียรจากรุ่นตัวอย่าง 1.0

[lwptoc title=”WindowsAppSDK 1.0 เสถียร” width=”30%” float=”right”]

WindowsUI 3

WinUI 3 เป็นเฟรมเวิร์กประสบการณ์ผู้ใช้ดั้งเดิม (UX) สำหรับ Windows App SDK

คุณสมบัติและการอัปเดตใหม่:

  • Microsoft ได้เพิ่มการควบคุมใหม่ (PipsPager, Expander, BreadcrumbBar) และอัปเดตการควบคุมที่มีอยู่เพื่อสะท้อนสไตล์ Windows ล่าสุดจาก WindowsUI 2.6.
  • รองรับแพ็คเกจ MSIX โปรเจ็กต์เดียวใน WinUI โดยการสร้างแอปพลิเคชันใหม่โดยใช้เทมเพลต “Blank App, Packaged…”
  • Microsoft รองรับการปรับใช้แอป WinUI 3 โดยไม่มีแพ็คเกจ MSIX บน Windows เวอร์ชัน 1809 ขึ้นไป โปรดดู สร้างแอพเดสก์ท็อป WinUI 3 ที่ไม่มีแพ็คเกจ สำหรับข้อมูลเพิ่มเติม
  • โปรเจ็กต์ WinUI 3 สามารถตั้งค่าเวอร์ชันเป้าหมายเป็น Windows 10 เวอร์ชัน 1809 ได้ ก่อนหน้านี้ ตั้งค่าได้เพียงเวอร์ชัน 1903 เท่านั้น
  • แถบเครื่องมือในแอพ Hot Reload และ Live Visual Tree สำหรับแอพที่เป็นแพ็คเกจ WinUI ได้รับการสนับสนุนใน Visual Studio 2022 Preview 5 และ GA

ข้อจำกัดที่สำคัญ:

  • ปัญหาที่ทราบสำหรับ แอปพลิเคชั่น WinUI ทั้งแบบแพ็คเกจและที่ไม่ได้แพ็คเกจ:
    • ข้อผิดพลาดรันไทม์ในแอป C++ ที่อ้างอิง C++ Windows Runtime Component: ในการแก้ไข ให้เพิ่มเป้าหมายด้านล่างต่อท้าย .vcxproj ของ Windows Runtime Component:

      XML

      <Target Name="GetPriIndexName">
      <PropertyGroup>
          <!-- Winmd library targets use the default root namespace of the project for the App package name -->
          <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
          <!-- If RootNamespace is empty fall back to TargetName -->
          <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
      </PropertyGroup>
      </Target>
      
  • ปัญหาที่ทราบสำหรับ แอปพลิเคชัน WinUI พร้อม MSIX โปรเจ็กต์เดียว (แอพเปล่า เทมเพลตแพ็คเกจ):
    • ไม่มีรายการเมนู Package & Publish จนกว่าคุณจะรีสตาร์ท Visual Studio: เมื่อสร้างแอปใหม่ด้วย MSIX โปรเจ็กต์เดียวทั้งใน Visual Studio 2019 และ Visual Studio 2022 โดยใช้เทมเพลตโปรเจ็กต์ Blank App, Packaged (WinUI 3 ในเดสก์ท็อป) คำสั่งเพื่อเผยแพร่โครงการจะไม่ปรากฏในเมนูจนกว่าคุณจะปิด และเปิด Visual Studio อีกครั้ง
    • แอป AC# ที่มี MSIX โปรเจ็กต์เดียวจะไม่คอมไพล์โดยไม่ได้ติดตั้งส่วนประกอบเสริม “C++ (v14x) Universal Windows Platform Tools” ดู ติดตั้งเครื่องมือสำหรับนักพัฒนา สำหรับข้อมูลเพิ่มเติม
    • ข้อผิดพลาดรันไทม์ที่อาจเกิดขึ้นในแอปที่มี MSIX โปรเจ็กต์เดียวที่ใช้ประเภทที่กำหนดไว้ในคอมโพเนนต์รันไทม์ของ Windows ที่อ้างอิง: หากต้องการแก้ไข ให้เพิ่ม . ด้วยตนเอง รายการชั้นเรียนที่เปิดใช้งานได้ ไปที่ appxmanifest.xml
      • ข้อผิดพลาดที่คาดหวังในแอปพลิเคชัน C# คือ "COMException: คลาสไม่ได้ลงทะเบียน (0x80040154 (REGDB_E_CLASSNOTREG))
      • ข้อผิดพลาดที่คาดหวังในแอปพลิเคชัน C++/WinRT คือ “winrt::hresult_class_not_registered”
  • ปัญหาที่ทราบสำหรับ แอปพลิเคชัน WinUI ที่ไม่มีแพ็คเกจ MSIX (แอพที่ไม่ได้บรรจุ):
  • ปัญหาที่ทราบสำหรับ บรรจุภัณฑ์และการปรับใช้แอปพลิเคชัน WinUI:
    • พื้นที่ Package ไม่รองรับคำสั่งในแอป WinUI ที่มี MSIX โปรเจ็กต์เดียว (แอปเปล่า เทมเพลตแพ็กเกจ) ให้ใช้ .แทน Package & Publish คำสั่งสร้างแพ็คเกจ MSIX
    • ในการสร้างแพ็คเกจ NuGet จากไลบรารี C # Class ด้วย Pack คำสั่งตรวจสอบให้แน่ใจว่าใช้งานอยู่ Configuration is Release.
    • พื้นที่ Pack ไม่รองรับคำสั่งใน C++ Windows Runtime Components เพื่อสร้างแพ็คเกจ NuGet

หน้าต่าง

Windows App SDK ให้ หน้าต่างแอพ คลาสที่พัฒนาคลาสแสดงตัวอย่าง Windows.UI.WindowManagement.AppWindow ที่ใช้งานง่ายก่อนหน้านี้ และทำให้พร้อมใช้งานกับแอป Windows ทั้งหมด รวมถึง Win32, WPF และ WinForms

คุณสมบัติใหม่

  • หน้าต่างแอพ เป็น API การทำหน้าต่างระดับสูงที่ช่วยให้ใช้สถานการณ์จำลองหน้าต่างที่ใช้งานง่าย ซึ่งรวมเข้ากับประสบการณ์ผู้ใช้ Windows และแอปอื่นๆ ได้ดี แสดงถึงนามธรรมระดับสูงของคอนเทนเนอร์ที่จัดการโดยระบบของเนื้อหาของแอป นี่คือคอนเทนเนอร์ที่โฮสต์เนื้อหาของคุณ และแสดงถึงเอนทิตีที่ผู้ใช้โต้ตอบด้วยเมื่อปรับขนาดและย้ายแอปของคุณบนหน้าจอ สำหรับนักพัฒนาที่คุ้นเคยกับ Win32 AppWindow ถือได้ว่าเป็นนามธรรมระดับสูงของ HWND
  • พื้นที่แสดงผล แสดงถึงนามธรรมระดับสูงของ HMONITOR ตามหลักการเดียวกันกับ AppWindow
  • DisplayAreaWatcher อนุญาตให้นักพัฒนาสังเกตการเปลี่ยนแปลงในโทโพโลยีการแสดงผลและระบุ DisplayAreas ที่กำหนดไว้ในปัจจุบันในระบบ

อินพุต

นี่คือ API อินพุตที่รองรับ WinUI และมอบพื้นผิว API ระดับล่างสำหรับนักพัฒนาเพื่อให้เกิดการโต้ตอบอินพุตขั้นสูงขึ้น

คุณสมบัติใหม่

ข้อจำกัดที่สำคัญ

  • ทั้งหมด พอยน์เตอร์พอยต์ ฟังก์ชันโรงงานแบบคงที่ถูกลบออก: รับจุดปัจจุบันGetCurrentPoint แปลงแล้วรับคะแนนระดับกลางและ GetIntermediatePoints แปลงร่างแล้ว.
  • Windows App SDK ไม่รองรับการดึงข้อมูล พอยน์เตอร์พอยต์ ออบเจ็กต์ที่มี ID ตัวชี้ คุณสามารถใช้ .แทนได้ พอยน์เตอร์พอยต์ ฟังก์ชั่นสมาชิก GetTransformedPoint เพื่อดึงเวอร์ชันที่แปลงแล้วของที่มีอยู่ พอยน์เตอร์พอยต์ วัตถุ. สำหรับจุดกลาง คุณสามารถใช้ ตัวชี้เหตุการณ์ Args ฟังก์ชั่นสมาชิก รับคะแนนระดับกลาง และ  รับ TransformedIntermediatePoints.
  • ใช้โดยตรงของแพลตฟอร์ม SDK API Windows.UI.Core.CoreDragOperation จะไม่ทำงานกับแอปพลิเคชัน WinUI
  • พอยน์เตอร์พอยต์ คุณสมบัติ ตำแหน่งดิบ และ  ติดต่อRectRaw ถูกลบออกเนื่องจากอ้างถึงค่าที่ไม่ได้คาดการณ์ ซึ่งเหมือนกับค่าปกติในระบบปฏิบัติการ ใช้ ตำแหน่ง และ  ติดต่อRect แทนที่. ขณะนี้การทำนายตัวชี้ได้รับการจัดการด้วย Microsoft.UI.Input.PointerPredictor ออบเจ็กต์ API

วงจรชีวิตแอป

ฟีเจอร์ App Lifecycle ส่วนใหญ่มีอยู่แล้วในแพลตฟอร์ม UWP และถูกนำเข้ามาใน Windows App SDK สำหรับใช้งานตามประเภทแอปเดสก์ท็อป โดยเฉพาะแอป Console ที่ไม่มีแพ็คเกจ, แอป Win32, แอป Windows Forms และแอป WPF การใช้งาน Windows App SDK ของคุณลักษณะเหล่านี้ไม่สามารถใช้ในแอป UWP ได้ เนื่องจากมีคุณลักษณะที่เทียบเท่ากันในแพลตฟอร์ม UWP

 สำคัญ

หากคุณกำลังใช้งานแอป UWP โปรดดูที่ คำแนะนำการย้ายถิ่นของ UWP เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการย้ายแอปของคุณไปยัง Windows App SDK

แอพที่ไม่ใช่ UWP สามารถจัดแพ็คเกจลงในแพ็คเกจ MSIX ได้ แม้ว่าแอปเหล่านี้สามารถใช้คุณลักษณะวงจรชีวิตของแอป Windows App SDK บางอย่างได้ แต่ต้องใช้วิธีการแสดงรายการที่มีให้ใช้งาน ตัวอย่างเช่น ไม่สามารถใช้ Windows App SDK ลงทะเบียนสำหรับXXXActivation API และต้องลงทะเบียนเพื่อเปิดใช้งานแบบสมบูรณ์ผ่านรายการแทน

ข้อจำกัดทั้งหมดสำหรับแอปที่เป็นแพ็กเกจยังใช้กับแอป WinUI ซึ่งจัดเป็นแพ็กเกจ และมีข้อควรพิจารณาเพิ่มเติมตามที่อธิบายไว้ด้านล่าง

ข้อควรพิจารณาที่สำคัญ:

  • การเปิดใช้งานที่หลากหลาย: GetActivatedEventArgs
    • แอพที่ไม่ได้บรรจุ: ใช้งานได้เต็มประสิทธิภาพ
    • แอพแพ็คเกจ: ใช้ได้ แต่แอพเหล่านี้ยังใช้แพลตฟอร์มได้ GetActivatedEventArgs. โปรดทราบว่าแพลตฟอร์มกำหนด Windows.ApplicationModel.AppInstance ในขณะที่ Windows App SDK กำหนด Microsoft.Windows.AppLifecycle.AppInstance. และในขณะที่แอพ UWP สามารถใช้ ActivatedEventArgs ชั้นเรียนเช่น FileActivatedEventArgs และ  LaunchActivatedEventArgsแอพที่ใช้คุณลักษณะ Windows App SDK AppLifecycle ต้องใช้อินเทอร์เฟซไม่ใช่คลาส (เช่น IFileActivatedEventArgsILaunchActivatedEventArgsและอื่น ๆ )
    • แอพ WinUi: App.OnLaunched ของ WinUI จะได้รับ a Microsoft.UI.Xaml.LaunchActivatedEventArgsในขณะที่แพลตฟอร์ม GetActivatedEventArgs ส่งคืน a Windows.ApplicationModel.IActivatedEventArgsและ WindowsAppSDK GetActivatedEventArgs ส่งคืน a Microsoft.Windows.AppLifecycle.AppActivationArguments วัตถุที่สามารถเป็นตัวแทนของแพลตฟอร์ม LaunchActivatedEventArgs.
    • สำหรับข้อมูลเพิ่มเติมดู การเปิดใช้งานที่หลากหลาย.
  • ลงทะเบียน/ยกเลิกการลงทะเบียนสำหรับการเปิดใช้งานที่หลากหลาย
    • แอพที่ไม่ได้บรรจุ: ใช้งานได้เต็มประสิทธิภาพ
    • แอพแพ็คเกจ: ใช้งานไม่ได้ ให้ใช้รายการ MSIX ของแอปแทน
    • สำหรับข้อมูลเพิ่มเติมดู การเปิดใช้งานที่หลากหลาย.
  • เดี่ยว/หลายอินสแตนซ์
    • แอพที่ไม่ได้บรรจุ: ใช้งานได้เต็มประสิทธิภาพ
    • แอพแพ็คเกจ: ใช้งานได้เต็มประสิทธิภาพ
    • แอพ WinUI: หากแอปต้องการตรวจหาอินสแตนซ์อื่นและเปลี่ยนเส้นทางการเปิดใช้งาน แอปจะต้องดำเนินการโดยเร็วที่สุด และก่อนที่จะเริ่มต้นหน้าต่างใดๆ ฯลฯ ในการเปิดใช้งาน แอปต้องกำหนด DISABLE_XAML_GENERATED_MAIN และเขียน Main ที่กำหนดเอง (C#) หรือ WinMain (C++) ที่สามารถตรวจจับและเปลี่ยนเส้นทางได้
    • เปลี่ยนเส้นทางการเปิดใช้งานเป็น Async เป็นการโทรแบบอะซิงโครนัส และคุณไม่ควรรอในการโทรแบบอะซิงโครนัสหากแอปของคุณทำงานใน STA สำหรับแอป Windows Forms และ C# WinUI คุณสามารถกำหนดให้ Main เป็น async ได้ หากจำเป็น สำหรับแอป C++ WinUI และ C# WPF คุณไม่สามารถประกาศให้ Main เป็น async ได้ ดังนั้นคุณต้องย้ายการเรียกเปลี่ยนเส้นทางไปยังเธรดอื่นแทนเพื่อให้แน่ใจว่าคุณจะไม่บล็อก STA
    • สำหรับข้อมูลเพิ่มเติมดู อินสแตนซ์แอป.
  • การแจ้งเตือนพลังงาน/สถานะ
    • แอพที่ไม่ได้บรรจุ: ใช้งานได้เต็มประสิทธิภาพ
    • แอพแพ็คเกจ: ใช้งานได้เต็มประสิทธิภาพ
    • สำหรับข้อมูลเพิ่มเติมดู การจัดการพลังงาน.

ปัญหาที่ทราบ:

  • การเชื่อมโยงประเภทไฟล์เข้ารหัส %1 ให้เป็น %251 อย่างไม่ถูกต้องเมื่อตั้งค่าเทมเพลตบรรทัดคำสั่งของตัวจัดการ Verb ซึ่งทำให้แอป Win32 ที่ไม่มีแพ็คเกจขัดข้อง คุณสามารถแก้ไขค่า Registry ด้วยตนเองให้เป็น %1 แทนเพื่อแก้ปัญหาชั่วคราวบางส่วนได้ หากเส้นทางไฟล์เป้าหมายมีช่องว่าง แสดงว่าเส้นทางนั้นยังคงล้มเหลว และไม่มีวิธีแก้ปัญหาสำหรับสถานการณ์นั้น
  • บั๊กเดี่ยว/หลายอินสแตนซ์เหล่านี้จะได้รับการแก้ไขในแพตช์การบริการที่จะมาถึง:
    • การเปลี่ยนเส้นทาง AppInstance ไม่ทำงานเมื่อคอมไพล์สำหรับ x86
    • การลงทะเบียนคีย์ การยกเลิกการลงทะเบียน และการลงทะเบียนใหม่ทำให้แอปขัดข้อง

DWriteCore

DWriteCore คือการใช้งาน Windows App SDK ของ ไดเร็กไรท์ซึ่งเป็น DirectX API สำหรับการแสดงข้อความคุณภาพสูง แบบอักษรเค้าร่างที่ไม่ขึ้นกับความละเอียด และการรองรับข้อความ Unicode และเค้าโครงแบบเต็ม DWriteCore คือรูปแบบหนึ่งของ DirectWrite ที่ทำงานบน Windows เวอร์ชันต่างๆ จนถึง Windows 10 เวอร์ชัน 1809 (10.0; Build 17763) และเปิดประตูให้คุณใช้งานข้ามแพลตฟอร์มได้

คุณสมบัติ DWriteCore มีคุณสมบัติทั้งหมดของ DirectWrite โดยมีข้อยกเว้นบางประการ

ข้อจำกัดที่สำคัญ

  • DWriteCore ไม่มีคุณสมบัติ DirectWrite ต่อไปนี้:
    • แบบอักษรต่อเซสชัน
    • แบบอักษรที่กำหนดโดยผู้ใช้ปลายทาง (EUDC) แบบอักษร
    • API การสตรีมแบบอักษร
  • การสนับสนุน API การแสดงผลระดับต่ำเป็นเพียงบางส่วน
  • DWriteCore ไม่ได้ทำงานร่วมกับ Direct2D แต่คุณสามารถใช้ IDWriteGlyphRunAnalysis และ  IWriteBitmapRenderTarget.

MRT คอร์

MRT Core เป็นเวอร์ชันปรับปรุงของ Windows® ที่ทันสมัย ระบบการจัดการทรัพยากร ที่แจกจ่ายเป็นส่วนหนึ่งของ Windows App SDK

ข้อจำกัดที่สำคัญ

  • ในโปรเจ็กต์ .NET ไฟล์ทรัพยากรที่คัดลอกและวางลงในโฟลเดอร์โปรเจ็กต์จะไม่ถูกสร้างดัชนีบน F5 หากแอปนั้นถูกสร้างขึ้นแล้ว เพื่อเป็นการแก้ปัญหาชั่วคราว ให้สร้างแอปใหม่ ดู ปัญหา 1503 สำหรับข้อมูลเพิ่มเติม
  • ในโครงการ .NET เมื่อมีการเพิ่มไฟล์ทรัพยากรลงในโครงการโดยใช้ Visual Studio UI ไฟล์อาจไม่ได้รับการสร้างดัชนีตามค่าเริ่มต้น ดู ปัญหา 1786 สำหรับข้อมูลเพิ่มเติม เพื่อแก้ไขปัญหานี้ โปรดลบรายการด้านล่างในไฟล์ CSPROJ:

    XML

    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • สำหรับแอป C++ WinUI ที่ไม่ได้ทำแพ็กเกจ URI ของทรัพยากรไม่ได้สร้างอย่างถูกต้อง เมื่อต้องการแก้ไขปัญหานี้ เพิ่มสิ่งต่อไปนี้ใน vcxproj:

    XML

    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

การใช้งาน

คุณสมบัติและการอัปเดตใหม่

  • คุณสามารถเริ่มต้น Windows App SDK โดยอัตโนมัติได้ผ่านทาง WindowsPackageType project เพื่อโหลดรันไทม์ Windows App SDK และเรียกใช้ Windows App SDK API ดู สร้างแอป WinUI 3 สำหรับคำแนะนำ
  • แอพที่ไม่มีแพ็คเกจสามารถปรับใช้ Windows App SDK ได้โดยการรวมเข้ากับ Windows App SDK แบบสแตนด์อโลน .exe โปรแกรมติดตั้งใน MSI หรือโปรแกรมติดตั้งที่มีอยู่ของคุณ ดูข้อมูลเพิ่มเติมได้ที่ คู่มือการปรับใช้ Windows App SDK สำหรับแอปที่ไม่ได้บรรจุหีบห่อ.
  • แอป .NET ที่ไม่ได้บรรจุหีบห่อยังสามารถใช้ .NET wrapper สำหรับ API บูตสแตรปเปอร์ เพื่อใช้การขึ้นต่อกันบนแพ็คเกจเฟรมเวิร์ก SDK ของ Windows App ณ รันไทม์แบบไดนามิก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ .NET wrapper โปรดดูที่ .NET wrapper ไลบรารี่.
  • แอพที่ทำแพ็คเกจสามารถใช้ API การปรับใช้เพื่อตรวจสอบและให้แน่ใจว่าแพ็คเกจที่จำเป็นทั้งหมดได้รับการติดตั้งบนเครื่อง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของ API การปรับใช้ โปรดดูที่ คู่มือการปรับใช้สำหรับแอพที่เป็นแพ็คเกจ.

ข้อจำกัดที่สำคัญ

  • .NET wrapper สำหรับ bootstrapper API มีไว้สำหรับใช้โดยแอปพลิเคชัน .NET ที่ไม่ได้ทำแพ็กเกจเท่านั้น เพื่อทำให้การเข้าถึง Windows App SDK ง่ายขึ้น
  • เฉพาะแอพแพ็คเกจ MSIX ที่ไว้วางใจอย่างเต็มที่หรือมี การจัดการแพ็คเกจ ความสามารถที่จำกัดได้รับอนุญาตให้ใช้ API การนำไปใช้เพื่อติดตั้งการพึ่งพาแพ็คเกจหลักและซิงเกิลตัน การสนับสนุนสำหรับแอพแพ็คเกจความน่าเชื่อถือบางส่วนจะมาในรุ่นต่อๆ ไป
  • เมื่อ F5 ทดสอบแอป x86 ที่ใช้ DeploymentManager เริ่มต้น วิธีบนระบบ x64 ตรวจสอบให้แน่ใจว่าเฟรมเวิร์ก x64 ได้รับการติดตั้งก่อนโดยเรียกใช้ WindowsAppRuntimeInstall.exe. มิเช่นนั้นจะพบกับ ไม่พบ ข้อผิดพลาดเนื่องจาก Visual Studio ไม่ได้ปรับใช้เฟรมเวิร์ก x64 ซึ่งปกติจะเกิดขึ้นผ่านการปรับใช้ Store หรือไซด์โหลด

ข้อจำกัดอื่นๆ และปัญหาที่ทราบ

  • ไม่รองรับการกำหนดค่าการสร้าง CPU ใด ๆ: เมื่อไหร่ เพิ่ม Windows App SDK ไปยังแอปพลิเคชันหรือส่วนประกอบ .NET ที่มีอยู่ซึ่งรองรับ ซีพียูใดก็ได้คุณต้องระบุสถาปัตยกรรมที่ต้องการ: x86x64 or arm64.
  • การอัพเกรดจาก .NET 5 เป็น .NET 6: เมื่ออัปเกรดใน Visual Studio UI คุณอาจพบข้อผิดพลาดในการสร้าง ในการแก้ไขปัญหาชั่วคราว ให้อัปเดต TargetFrameworkPackage ของไฟล์โครงการด้วยตนเองเป็นด้านล่าง:

    XML

        <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> 
    
  • แอป MSIX โปรเจ็กต์ C # เดียวจะไม่คอมไพล์หากไม่ได้ติดตั้งเครื่องมือ C++ UWP หากคุณมีโปรเจ็กต์ MSIX โปรเจ็กต์เดียว C# คุณจะต้องติดตั้ง เครื่องมือแพลตฟอร์ม Windows สากล C++ (v14x) ส่วนประกอบเสริม
  • ภาษาที่ตามมา VSIX ล้มเหลวในการติดตั้งลงใน Visual Studio 2019 เมื่อมีการติดตั้ง Visual Studio 2019 หลายเวอร์ชัน หากคุณมี Visual Studio 2019 หลายเวอร์ชันติดตั้งอยู่ (เช่น การเปิดตัวและการแสดงตัวอย่าง) จากนั้นติดตั้ง Windows App SDK VSIX สำหรับทั้ง C ++ และ  C# การติดตั้งครั้งที่สองจะล้มเหลว หากต้องการแก้ไข ให้ถอนการติดตั้งเครื่องมือบรรจุภัณฑ์ MSIX ของโครงการเดียวสำหรับ Visual Studio 2019 หลังจากภาษาแรก VSIX ดู ข้อเสนอแนะนี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้
  • ถ้าคุณต้องการ co_await บน DispatcherQueue ลองเข้าคิว วิธีแล้วใช้ ประวัติย่อ_เบื้องหน้า ฟังก์ชั่นตัวช่วยใน ไลบรารีการใช้งาน Windows (WIL):
    1. เพิ่มการอ้างอิงถึง Microsoft.Windows.ImplementationLibrary แพ็คเกจ NuGet
    2. เพิ่ม #include <wil/cppwinrt_helpers.h> คำสั่งไปยังไฟล์รหัสของคุณ
    3. ใช้ wil::resume_foreground(your_dispatcher); ไปยัง co_await ผลลัพธ์.

อ่านเพิ่มเติมและค้นหาลิงก์ดาวน์โหลดที่ Microsoft โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม.

ข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อต่างๆ: Windows App SDK 1.0.0, วินุย3

เขียนความเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมาย *