Windows SDK

Το Windows SDK (10.0.22621) για Windows 11 έκδοση 22H2 παρέχει τις τελευταίες κεφαλίδες, βιβλιοθήκες, μετα-δεδομένα και εργαλεία για τη δημιουργία εφαρμογών των Windows. Χρησιμοποιήστε αυτό το SDK για να δημιουργήσετε εφαρμογές Ενιαία πλατφόρμα των Windows (UWP) και Win32 για Windows 11 έκδοση 22H2 και προηγούμενες εκδόσεις των Windows.

Συμβουλή

Windows App SDK
Η Windows App SDK παρέχει ένα ενοποιημένο σύνολο API και εργαλείων που αποσυνδέονται από το λειτουργικό σύστημα και κυκλοφορούν στους προγραμματιστές μέσω πακέτων NuGet. Αυτά τα API και εργαλεία μπορούν να χρησιμοποιηθούν με συνεπή τρόπο από οποιαδήποτε εφαρμογή υπολογιστή σε Windows 11 και downlevel για να Windows 10, έκδοση 1809.

Γρήγορα αποτελέσματα

Μπορείτε να λάβετε το Windows SDK με δύο τρόπους: να το εγκαταστήσετε από αυτή τη σελίδα επιλέγοντας τη σύνδεση λήψης ή επιλέγοντας "Windows 11 SDK (10.0.22621.0)" στα προαιρετικά στοιχεία του Visual Studio 2022 Installer. Πριν από την εγκατάσταση αυτού του SDK:

Τελευταία ενημέρωση: 4 Οκτωβρίου 2021

Απαιτήσεις συστήματος

Το Windows SDK έχει τις ακόλουθες ελάχιστες απαιτήσεις συστήματος:

Υποστηριζόμενα λειτουργικά συστήματα

  • Windows 10 έκδοση 1507 ή νεότερη: Αρχική σελίδα, επαγγελματική, εκπαίδευση και επιχείρηση (το LTSB και το S δεν υποστηρίζονται για UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 και Windows Server 2012 R2 (μόνο γραμμή εντολών)
  • Windows 8.1
  • Windows 7 SP1

(Δεν υποστηρίζονται όλα τα εργαλεία σε προηγούμενα λειτουργικά συστήματα)

Απαιτήσεις υλικού

  • 1,6 GHz ή ταχύτερος επεξεργαστής
  • 1 GB RAM
  • 4 GB διαθέσιμου χώρου στον σκληρό δίσκο

Πρόσθετες απαιτήσεις SDK

Η εγκατάσταση σε Windows 8.1 και παλαιότερα λειτουργικά συστήματα απαιτεί μια Ενημέρωση για το Universal C Runtime στα Windows. Για να εγκαταστήσετε μέσω Windows Update, βεβαιωθείτε ότι έχετε εγκαταστήσει τις πιο πρόσφατες προτεινόμενες ενημερώσεις και ενημερώσεις κώδικα από το Microsoft Update, προτού εγκαταστήσετε το Windows SDK.

Δείγματα

Τα δείγματα εφαρμογών Windows είναι πλέον διαθέσιμα μέσω του GitHub. Μπορείτε να περιηγηθείτε στον κώδικα στο GitHub, να κλωνοποιήσετε ένα προσωπικό αντίγραφο του αποθετηρίου από το Git ή να κάνετε λήψη μιας συμπιεστής αρχειοθήκης με όλα τα δείγματα. Θα χαρούμε να λάβουμε σχόλια, επομένως, μην διστάσετε να ανοίξετε ένα ζήτημα στο αποθετήριο δεδομένων εάν έχετε κάποιο πρόβλημα ή ερώτηση. Αυτά τα δείγματα έχουν σχεδιαστεί για εκτέλεση σε επιτραπέζιες, κινητές και μελλοντικές συσκευές που υποστηρίζουν τις Ενιαία πλατφόρμα των Windows (UWP).

Προηγούμενες εκδόσεις του SDK

Τα SDK και οι προσομοιωτές που κυκλοφόρησαν προηγουμένως, συμπεριλαμβανομένων των λεπτομερειών ενημέρωσης, υπάρχουν στη σελίδα αρχειοθήκης.

Ρύθμιση API

Όταν χρησιμοποιείτε νέα API, εξετάστε το ενδεχόμενο να συντάξετε την εφαρμογή σας ως προσαρμόσιμη ώστε να εκτελείται σωστά στην ευρύτερη γκάμα συσκευών Windows. Μια προσαρμόσιμη εφαρμογή "φωτίζεται" με νέες δυνατότητες όπου τις υποστηρίζουν οι συσκευές και η έκδοση των Windows, αλλά κατά τα άλλα προσφέρει μόνο τη λειτουργικότητα που είναι διαθέσιμη στην έκδοση της εντοπισμένης πλατφόρμας. Για λεπτομέρειες υλοποίησης, ανατρέξτε στο άρθρο Προσαρμόσιμος κώδικας έκδοσης.

Σημειώσεις έκδοσης και γνωστά ζητήματα

Windows SDK για Windows 11, έκδοση 22H2
  • Ενημέρωση συντήρησης 10.0.22621.755. Περιλαμβάνει υποστήριξη ARM64 για την έκδοση VS 17.4
Windows 10 SDK, Έκδοση 2104
  • Καταργήθηκε το api-ms-win-net-isolation-l1-1-0.lib. Οι εφαρμογές που συνδέονταν με api-ms-win-net-isolation-l1-1-0.lib μπορούν να αλλάξουν το OneCoreUAP.lib ως αντικατάσταση.

  • Καταργήθηκε το irprops.lib. Οι εφαρμογές που συνδέονταν με το irprops.lib μπορούν να μεταβούν σε bthprops.lib ως αντικατάσταση drop-in.

  • Μετακινήσαμε το ENUM tagServerSelection από το wuapicommon.h στο wupai.h και καταργήσαμε την κεφαλίδα. Εάν θα θέλατε να χρησιμοποιήσετε την ετικέτα ENUMServerSelection, θα πρέπει να συμπεριλάβετε τα wuapi.h ή wuapi.idl.

  • Το πακέτο Windows 10 WinRT API σάς επιτρέπει να προσθέσετε τις πιο πρόσφατες χρόνος εκτέλεσης των Windows υποστήριξη API στις βιβλιοθήκες και τις εφαρμογές σας .NET Framework 4.5+ και .NET Core 3.0+. Για να αποκτήσετε πρόσβαση στο πακέτο Windows 10 WinRT API, ανατρέξτε στο πακέτο nuget Microsoft.Windows.SDK.Contracts.

  • Η οικογένεια συναρτήσεων printf συμμορφώνεται πλέον με τους κανόνες στρογγυλοποίησης του IEEE 754 κατά την εκτύπωση ακριβώς αντιπροσωπευτικών αριθμών κινητής υποδιαστολής και θα τιμήσει τη λειτουργία στρογγυλοποίησης που ζητήθηκε μέσω κλήσεων προς fesetround. Η συμπεριφορά παλαιού τύπου είναι διαθέσιμη κατά τη σύνδεση με το legacy_stdio_float_rounding.obj.

  • Κιτ πιστοποίησης εφαρμογών Windows. Πολλά νέα API προστέθηκαν στη λίστα υποστηριζόμενων API στο Κιτ πιστοποίησης εφαρμογής και το Windows Store. Εάν υπάρχουν API στη λίστα υποστηριζόμενων που εμφανίζονται απενεργοποιημένα ή απενεργοποιημένα στο Visual Studio, μπορείτε να κάνετε μια μικρή αλλαγή στο αρχείο προέλευσής σας, για να αποκτήσετε πρόσβαση σε αυτά. Για περισσότερες λεπτομέρειες, ανατρέξτε σε αυτό το γνωστό πρόβλημα. Βρείτε περισσότερες ενημερώσεις για δοκιμές.

  • Ενημερώσεις προγράμματος μεταγλώττισης μηνυμάτων (mc.exe):

    • Τώρα εντοπίζει το σημάδι σειράς byte Unicode (BOM) σε αρχεία .mc. Εάν το αρχείο .mc ξεκινά με μια τεχνική προδιαγραφή UTF-8, θα διαβαστεί ως αρχείο UTF-8. Διαφορετικά, εάν ξεκινά με μια BOM UTF-16LE, θα διαβαστεί ως αρχείο UTF-16LE. Εάν έχει καθοριστεί η παράμετρος -u, θα διαβαστεί ως αρχείο UTF-16LE. Διαφορετικά, θα διαβαστεί χρησιμοποιώντας την τρέχουσα σελίδα κώδικα (CP_ACP).
    • Τώρα αποτρέπει τα προβλήματα ενός ορισμού (ODR) σε βοηθητικά προγράμματα C/C++ ETW που δημιουργούνται από διενέξεις παραμέτρων (π.χ. όταν δύο αρχεία .cpp με ορισμούς διένεξης των MCGEN_EVENTWRITETRANSFER συνδέονται με το ίδιο δυαδικό, οι βοηθητικοί φορείς ETW που δημιουργούνται από το MC θα σέβονται τώρα τον ορισμό των MCGEN_EVENTWRITETRANSFER σε κάθε αρχείο .cpp αντί να επιλέγουν αυθαίρετα τη μία ή την άλλη).
  • Ενημερώσεις προεπεξεργασίας ανίχνευσης των Windows (tracewpp.exe):

    • Υποστηρίζει αρχεία Εισόδου Unicode (.ini, .tpl και πηγαίο κώδικα). Τα αρχεία εισόδου που ξεκινούν με ένα σημάδι σειράς byte (BOM) UTF-8 ή UTF-16 θα διαβάζονται ως Unicode. Τα αρχεία εισόδου που δεν ξεκινούν με μια bom θα διαβάζονται χρησιμοποιώντας την τρέχουσα σελίδα κώδικα (CP_ACP). Για συμβατότητα με προηγούμενες εκδόσεις, εάν έχει καθοριστεί η παράμετρος γραμμής εντολών UnicodeIgnore, τα αρχεία που ξεκινούν με bom UTF-16 θα αντιμετωπίζονται ως κενά.
    • Υποστηρίζει αρχεία εξόδου Unicode (.tmh). Από προεπιλογή, τα αρχεία εξόδου θα κωδικοποιούνται με χρήση της τρέχουσας σελίδας κώδικα (CP_ACP). Χρησιμοποιήστε παραμέτρους γραμμής εντολών -cp:UTF-8 ή -cp:UTF-16 για να δημιουργήσετε αρχεία εξόδου Unicode.
    • Αλλαγή συμπεριφοράς: Το tracewpp μετατρέπει τώρα όλο το κείμενο εισόδου σε Unicode, εκτελεί επεξεργασία στο Unicode και μετατρέπει το κείμενο εξόδου στην καθορισμένη κωδικοποίηση εξόδου. Παλαιότερες εκδόσεις του tracewpp απέφευγαν τις μετατροπές Unicode και εκτελούσαν επεξεργασία κειμένου με την προϋπόθεση ενός συνόλου χαρακτήρων μονού byte. Αυτό μπορεί να οδηγήσει σε αλλαγές συμπεριφοράς σε περιπτώσεις όπου τα αρχεία εισόδου δεν συμμορφώνονται με την τρέχουσα σελίδα κώδικα. Σε περιπτώσεις όπου αυτό αποτελεί πρόβλημα, εξετάστε το ενδεχόμενο μετατροπής των αρχείων εισόδου σε UTF-8 (με BOM) ή/και να χρησιμοποιήσετε την παράμετρο -cp:UTF-8 γραμμής εντολών για να αποφύγετε την κωδικοποίηση.
  • Ενημερώσεις του TraceLoggingProvider.h:

    • Αποφύγετε προβλήματα ενός ορισμού (ODR) που οφείλονται σε διενέξεις μακροεντολών ρύθμισης παραμέτρων (π.χ. όταν δύο αρχεία .cpp με ορισμούς σε διένεξη των TLG_EVENT_WRITE_TRANSFER συνδέονται με τον ίδιο δυαδικό τύπο, οι βοηθητικοί φορείς TraceLoggingProvider.h θα σέβονται πλέον τον ορισμό των TLG_EVENT_WRITE_TRANSFER σε κάθε αρχείο .cpp αντί να επιλέγουν αυθαίρετα τη μία ή την άλλη).
    • Στον κώδικα C++, η μακροεντολή TraceLoggingWrite έχει ενημερωθεί για να παρέχει καλύτερη κοινή χρήση κώδικα μεταξύ παρόμοιων συμβάντων με χρήση ποικίλων προτύπων.
  • Υπογραφή των εφαρμογών σας. Η υπογραφή του Device Guard είναι μια δυνατότητα του Device Guard που είναι διαθέσιμη στο Microsoft Store για επιχειρήσεις και στην Εκπαίδευση, η οποία επιτρέπει στις εταιρείες να εγγυώνται ότι κάθε εφαρμογή προέρχεται από μια αξιόπιστη προέλευση. Ανατρέξτε στην τεκμηρίωση σχετικά με την Υπογραφή φρουράς συσκευών.

  • Οι κεφαλίδες SDK έχουν ενημερωθεί για την αντιμετώπιση σφαλμάτων κατά τη μεταγλώττιση με χρήση του προεπεξεργασία προτύπου C στο πρόγραμμα μεταγλώττισης MSVC cl.exe (/Zc:προεπεξεργασία, που παρουσιάζεται στο VS 2019 v16.6).

  • Σταθερή: Το "GdiplusTypes.h δεν μεταγλωττίζεται με NOMINMAX". Ανατρέξτε στο θέμα Σχόλια στο Visual Studio.

  • Όταν δημιουργείτε με /std:c11 ή /std:c17, λαμβάνετε τώρα:

    • C99 tgmath.h
    • C11 static_assert στο assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM για Windows v11 η στόχευση ARM64 δεν είναι συμβατή με το πιο πρόσφατο winnt.h

    • Ως λύση, χρησιμοποιήστε την προηγούμενη έκδοση του Windows 10 SDK (δομή 19041) ή clang/LLVM για Windows v10 κατά τη στόχευση πλατφορμών ARM64
  • Το DirectXMath (συμπεριλαμβανομένης της έκδοσης 3.16 σε αυτή την έκδοση) δεν είναι συμβατό με το Clang/LLVM για Windows στο ARM64.

  • Η περίπτωση ορισμένων αρχείων κεφαλίδας άλλαξε, για να κανονικοποιήσετε τα συστήματα αρχείων με διάκριση πεζών-κεφαλαίων:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h, και OleCtl.h έγιναν όλα πεζά.
    • Για τις εκδόσεις Clang/LLVM για Windows, για την υποστήριξη παλαιότερης έκδοσης και των πιο πρόσφατων Windows 10 SDK χωρίς προειδοποιήσεις, προσθέστε -Wno-nonportable-system-include-path στο CLI ή στο ακόλουθο #pragma στην προέλευση:

    #ifdef __clang__

    #pragma clang diagnostic ignored "-Wnonportable-system-include-path"

    #endif

Windows 10 SDK, ενημέρωση συντήρησης έκδοσης 2004 (κυκλοφόρησε στις 16/12/2020)

Αυτή η έκδοση περιέχει τα ακόλουθα αρχεία. Εάν αντιμετωπίσετε αυτά τα προβλήματα, συνιστούμε να ενημερώσετε την έκδοση του SDK σας το συντομότερο δυνατό για να τα αποφύγετε:

  • Επιλύθηκε απρόβλεπτα και δύσκολο να διαγνωστούν συντριβές κατά τη σύνδεση βιβλιοθηκών ομπρέλας και εγγενών βιβλιοθηκών λειτουργικού συστήματος (για παράδειγμα, onecoreuap.lib και kernel32.lib)
  • Επιλυμένη έκδοση που απέτρεψε τη λειτουργία του AppVerifier
  • Επιλύθηκε το ζήτημα που προκάλεσε αποτυχία του WACK με την επιλογή "Η εργασία απέτυχε να ενεργοποιήσει την HighVersionLie"

Περισσότεροι πόροι