C++-Runtime-Frameworkpakete für Desktop-Brücke
In diesem Artikel wird beschrieben, wie Sie einen Desktop-Brücke Container erstellen, der die richtigen C++-Runtime-Bibliotheken enthält.
Originalversion des Produkts: Windows 10
Ursprüngliche KB-Nummer: 3176696
Zusammenfassung
Windows Desktopanwendungen, die von den C++-Runtime-Bibliotheken abhängig sind, müssen die entsprechende Version des C++-Runtime-Framework-Pakets für Desktop-Brücke während der Erstellung des Anwendungspakets angeben. Dies muss erfolgen, anstatt nur die C++-Runtime-Bibliotheken, die in Visual Studio enthalten sind, oder die Visual C++-Runtime redistributable (VCRedist) zu verteilen. Windows Desktopanwendungen, die in einem Desktop-Brücke-Container ausgeführt werden, können die C++-Runtime-Bibliotheken, die in Visual Studio oder VCRedist enthalten sind, nicht verwenden. Eine Anwendung, die in einem Desktop-Brücke Container ausgeführt wird und eine falsche Version der C++-Laufzeitbibliotheken verwendet, schlägt möglicherweise fehl, wenn sie versucht, auf Ressourcen wie das Dateisystem oder die Registrierung zuzugreifen. In diesem Artikel wird erläutert, wie Sie einen Desktop-Brücke Container erstellen, der die richtigen C++-Runtime-Bibliotheken enthält.
Installieren und Aktualisieren von Desktopframeworkpaketen
Microsoft stellt C++-Runtime-Framework-Pakete bereit, mit denen Anwendungen von Desktopanwendungen, die über die Windows Store verteilt werden, auf die C++-Laufzeit verweisen können. Diese Pakete werden über die Windows Store verteilt und aktualisiert und werden ähnlich wie C++-UWP-Frameworkpakete behandelt.
Für Entwicklungszwecke ist die aktuelle Version (v14.0) von Debug- und Einzelhandels-AppX-Paketen in Visual Studio 2019 enthalten, wenn Sie die Universelle Windows-Plattform-Entwicklungsworkload mit der optionalen Komponente "Universelle Windows Tools" (C++ v142) auswählen. Die Pakete finden Sie unter %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0.
In einigen Szenarien wie Windows-Sandbox oder in denen Anwendungen auf Offlinecomputern ausgeführt werden, finden Entwickler es möglicherweise einfacher, die Pakete, die ihren Bereitstellungsarchitekturen entsprechen, von einem der folgenden Links herunterzuladen und manuell mithilfe des Add-AppxPackage PowerShell-Cmdlets zu installieren:
- Microsoft.VCLibs.arm.14.00.Desktop.appx
- Microsoft.VCLibs.arm64.14.00.Desktop.appx
- Microsoft.VCLibs.x64.14.00.Desktop.appx
- Microsoft.VCLibs.x86.14.00.Desktop.appx
Legacy-Desktopframeworkpakete
Ältere C++-Runtime-Framework-Pakete für Desktopanwendungen, v11.0 und v12.0, können von diesen Speicherorten heruntergeladen und installiert werden:
- C++-Runtime v11.0-Frameworkpaket für Desktop-Brücke (Project Centennial)
- C++-Runtime v12-Frameworkpaket für Desktop-Brücke (Project Centennial)
Die C++-Runtime-Frameworkpakete werden in einen Unterordner unter %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktopkopiert. Sie können die Pakete manuell mithilfe des Add-AppxPackage PowerShell-Cmdlets installieren.
So verweisen Sie auf die Desktopframeworkpakete
Geben Sie in der AppxManifest.xml Datei Ihrer Anwendung einen PackageDependency Wert an, der dem entsprechenden Frameworkpaket entspricht:
Version 11.0:
<Dependencies> <PackageDependency Name="Microsoft.VCLibs.110.00.UWPDesktop" MinVersion="11.0.61135.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"/> </Dependencies>Version 12.0:
<Dependencies> <PackageDependency Name="Microsoft.VCLibs.120.00.UWPDesktop" MinVersion="120.40653.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" /> <PackageDependency Name="Microsoft.VCLibs.120.00.UWPDesktop" MinVersion="12.0.40653.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" /> </Dependencies>Version 14.0:
<Dependencies> <PackageDependency Name="Microsoft.VCLibs.140.00.UWPDesktop" MinVersion="14.0.24217.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" /> </Dependencies>
Die Anwendung installiert nun die C++-Runtime-DLLs aus dem Abhängigkeitspaket, wenn sie bereitgestellt wird.