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:

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:

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