Anpassen von SDK-Versionen
Architekturbewertung erforderlich: Diese Dokumentation wurde zur Unterstützung der Entwicklung gegen die "alte" oder "Legacy"-Architektur von React Native geschrieben. Sie ist möglicherweise nicht direkt auf die Entwicklung mit der neuen Architektur anwendbar und muss überprüft und möglicherweise aktualisiert werden. Informationen zu React Native-Architekturen in React Native Windows finden Sie unter Neu vs. Alt Architektur.
Es ist einfach für eine App, anzupassen, welche Versionen des Windows SDK und WinUI 2.x verwendet werden sollen.
Details
Jede App verfügt über eine Datei ExperimentalFeatures.props, die die verschiedenen SDK- und Bibliotheksversionen beschreibt, von denen die App abhängt. Diese Datei befindet sich im selben Verzeichnis wie die .sln-Datei der App.
Native Module, die in Version 0.64.3+ erstellt wurden, lokalisieren und importieren diese Datei zur Build-Zeit, wenn sie in eine App eingebunden werden. Das bedeutet, dass native Module die vom App gewählten Windows SDK- und WinUI 2.x-Versionen verwenden.
Die Datei ExperimentalFeatures.props kann verwendet werden, um eine Reihe von Eigenschaften festzulegen, die bestimmen, welche Abhängigkeiten verwendet werden sollen, darunter:
| Eigenschaftsname | Beschreibung |
|---|---|
WinUI2xVersion | Version des zu verwendenden WinUI 2.x-Pakets, z. B. 2.6.0 |
WindowsTargetPlatformVersion | Version des zu verwendenden Windows-Plattform-SDK, z. B. 10.0.19041.0 |
UseHermes | Ob die Hermes JavaScript-Engine verwendet werden soll. |
Weitere Eigenschaften
Sie können dieser Datei weitere Eigenschaften hinzufügen, und diese werden zur Build-Zeit von der App und ihren eingebundenen Modulen verwendet. Um sicherzustellen, dass der von Ihnen eingegebene Eigenschaftswert verwendet wird, stellen Sie sicher, dass entweder
- die Eigenschaft nach dem Einschließen von
ExperimentalFeatures.propsnicht zurückgesetzt wird, oder - die Eigenschaft nur zurückgesetzt wird, wenn sie leer ist (z. B.
Condition="'$(MyProperty)'=''")
Fehlerbehebung & Debugging des Builds
Sie können Einblicke in den Zustand einer Eigenschaft während des Build-Prozesses erhalten, indem Sie eine binäre Build-Protokolldatei (ein CLI-Build erledigt dies) erstellen und die resultierende .binlog-Datei im MSBuild Structured Log Viewer öffnen. es und Ziele
Aktualisieren Ihrer App
Die Verwendung einer Abhängigkeit umfasst die folgenden beiden Aufgaben
- Referenzieren des entsprechenden NuGet-Pakets, damit es heruntergeladen wird
- Importieren der Build-Eigenschaften und -Ziele des Pakets
Für C#-Apps werden die beiden Schritte dank der integrierten <PackageReference>-Unterstützung kombiniert. C#-Apps stellen jedoch NuGet-Pakete in einem Verzeichnis unter Ihrem Benutzerprofil wieder her, während C++-Projekte erwarten, dass NuGet-Pakete im Lösungsverzeichnis liegen. Das Microsoft.ReactNative-Projekt, das das RNW-Framework implementiert, ist ein C++-Projekt und muss daher das WinUI-Paket im packages-Verzeichnis der Lösung finden können. Eine Problemumgehung hierfür ist das Bearbeiten der Datei node_modules\react-native-windows\Microsoft.ReactNative\packages.config, um die WinUI-Version zu aktualisieren und sicherzustellen, dass sie korrekt im Lösungsverzeichnis wiederhergestellt wird.
C++-Apps verwenden packages.config, um die Menge der NuGet-Pakete anzugeben, und importieren dann manuell die richtigen .props- und .targets-Dateien aus dem Paket.
Wenn Sie eine C#- oder C++-React Native for Windows-App erstellen, wird diese so geschrieben, dass die verwendete WinUI-Version parametrisiert ist (d. h. sie hängt vom Wert der WinUI2xVersion-Eigenschaft ab).
Für C++-Apps müssen Sie zusätzlich zum Festlegen des Eigenschaftswerts auch die Datei packages.config bearbeiten, die sich neben der .vcxproj-Datei des App-Projekts befindet, um auf die aktualisierte Paketversion zu verweisen.
windows\ExperimentalFeatures.props
<PropertyGroup>
<!-- other properties -->
<WinUI2xVersion>2.6.0</WinUI2xVersion>
</PropertyGroup>