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

Las aplicaciones de escritorio de Windows que tienen una dependencia de 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 realizarse 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). Las aplicaciones de escritorio de Windows 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 de C++ Runtime correctas.

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 la Tienda Windows. Estos paquetes se distribuyen y actualizan a través de la Tienda Windows y se controlan de forma similar a los paquetes de marco 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 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