Pacchetti framework di runtime C++ per Desktop Bridge

Questo articolo descrive come creare un contenitore Desktop Bridge che include le librerie di runtime C++ corrette.

Versione originale del prodotto: Windows 10
Numero KB originale: 3176696

Riepilogo

Le applicazioni desktop Windows che hanno una dipendenza dalle librerie di runtime C++ devono specificare la versione corrispondente del pacchetto del framework di runtime C++ per Desktop Bridge durante la creazione del pacchetto dell'applicazione. Questa operazione deve essere eseguita invece di ridistribuire solo le librerie di runtime C++ incluse in Visual Studio o in Visual C++ Runtime redistributable (VCRedist). Le applicazioni desktop Windows eseguite in un contenitore Desktop Bridge non possono usare le librerie di runtime C++ incluse in Visual Studio o VCRedist. Un'applicazione in esecuzione in un contenitore Desktop Bridge e che usa una versione non corretta delle librerie di runtime C++ potrebbe non riuscire quando tenta di accedere a risorse come il file system o il Registro di sistema. Questo articolo illustra come creare un contenitore Desktop Bridge che include le librerie di runtime C++ corrette.

Come installare e aggiornare i pacchetti del framework desktop

Microsoft fornisce pacchetti del framework di runtime C++ per consentire alle applicazioni di fare riferimento al runtime C++ da applicazioni desktop distribuite tramite Windows Store. Questi pacchetti vengono distribuiti e aggiornati tramite Windows Store e vengono gestiti in modo analogo ai pacchetti del framework UWP C++.

Ai fini dello sviluppo, la versione corrente (v14.0) dei pacchetti appx di debug e retail è inclusa in Visual Studio 2019 quando si sceglie il carico di lavoro sviluppo piattaforma UWP (Universal Windows Platform) con il componente facoltativo C++ (v142) Universal Windows Tools. I pacchetti sono disponibili in %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0.

In alcuni scenari, ad esempio Sandbox di Windows o in cui le applicazioni vengono eseguite in computer offline, gli sviluppatori potrebbero trovare più facile scaricare i pacchetti corrispondenti alle architetture di distribuzione da uno dei collegamenti seguenti e installarli manualmente usando il Add-AppxPackage cmdlet di PowerShell:

Pacchetti del framework desktop legacy

I pacchetti del framework di runtime C++ meno recenti per le applicazioni desktop, v11.0 e v12.0, possono essere scaricati e installati da queste posizioni:

I pacchetti del framework di runtime C++ verranno copiati in una sottocartella in %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop. È possibile installare i pacchetti manualmente usando il Add-AppxPackage cmdlet di PowerShell.

Come fare riferimento ai pacchetti del framework desktop

Nel file diAppxManifest.xml dell'applicazione specificare un PackageDependency valore corrispondente al pacchetto framework appropriato:

  • Versione 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>
    
  • Versione 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>
    
  • Versione 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>
    

L'applicazione installerà ora le DLL di runtime C++ dal pacchetto di dipendenze quando viene distribuito.

Riferimenti

Uso del runtime di Visual C++ nel progetto Centennial