Paquetes de marco de tiempo de ejecución de C++ para Puente de dispositivo de escritorio
En este artículo se describe cómo crear un contenedor de Puente de dispositivo de escritorio que incluya las bibliotecas correctas de C++ Runtime.
Versión original del producto: Windows 10
Número de KB original: 3176696
Resumen
Windows aplicaciones de escritorio que tienen una dependencia en las bibliotecas en tiempo de ejecución de C++ deben especificar la versión correspondiente del paquete del marco de tiempo de ejecución de C++ para Puente de dispositivo de escritorio durante la creación del paquete de aplicación. Esto debe hacerse en lugar de simplemente redistribuir las bibliotecas en tiempo de ejecución de C++ que se incluyen con Visual Studio o visual C++ Runtime redistribuible (VCRedist). Windows aplicaciones de escritorio que se ejecutan en un contenedor de Puente de dispositivo de escritorio no pueden usar las bibliotecas en tiempo de ejecución de C++ que se incluyen con Visual Studio o VCRedist. Una aplicación que se ejecuta en un contenedor de Puente de dispositivo de escritorio y que usa una versión incorrecta de las bibliotecas en tiempo de ejecución de C++ puede producir un error cuando intenta acceder a recursos como el sistema de archivos o el Registro. En este artículo se describe cómo crear un contenedor de Puente de dispositivo de escritorio que incluya las bibliotecas correctas de C++ Runtime.
Instalación y actualización de paquetes del marco de trabajo de Escritorio
Microsoft proporciona paquetes de marco de tiempo de ejecución de C++ para permitir que las aplicaciones hagan referencia al entorno de ejecución de C++ desde aplicaciones de escritorio distribuidas a través de Windows Store. Estos paquetes se distribuyen y actualizan a través de la Tienda Windows y se controlan de forma similar a los paquetes del marco de trabajo de C++ para UWP.
Con fines de desarrollo, la versión actual (v14.0) de los paquetes appx de depuración y venta minorista se incluye con Visual Studio 2019 al elegir la carga de trabajo desarrollo de Plataforma universal de Windows con el componente opcional C++ (v142) Universal Windows Tools. Los paquetes se pueden encontrar en %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0.
En algunos escenarios, como Espacio aislado de Windows o en los que las aplicaciones se ejecutan en máquinas sin conexión, es posible que a los desarrolladores les resulte más fácil descargar los paquetes correspondientes a sus arquitecturas de implementación desde uno de los vínculos siguientes e instalarlos manualmente mediante el Add-AppxPackage cmdlet de PowerShell:
- 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
Paquetes de marcos de escritorio heredados
Los paquetes de marco de tiempo de ejecución de C++ anteriores para aplicaciones de escritorio, v11.0 y v12.0, se pueden descargar e instalar desde estas ubicaciones:
- Paquete de marco de tiempo de ejecución de C++ v11.0 para Puente de dispositivo de escritorio (Project centenario)
- Paquete de marco de tiempo de ejecución de C++ v12 para Puente de dispositivo de escritorio (Project centenario)
Los paquetes del marco de trabajo en tiempo de ejecución de C++ se copiarán en una subcarpeta en %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop. Puede instalar los paquetes manualmente mediante el cmdlet de Add-AppxPackage PowerShell.
Cómo hacer referencia a los paquetes del marco de trabajo de escritorio
En el archivo AppxManifest.xml de la aplicación, especifique un PackageDependency valor que corresponda al paquete de marco adecuado:
Versión 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>Versión 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>Versión 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>
La aplicación ahora instalará los archivos DLL en tiempo de ejecución de C++ desde el paquete de dependencias cuando se implemente.
Referencias
Uso del entorno de ejecución de Visual C++ en el proyecto del centenario