適用於 傳統型橋接器 的 C++ 執行時間架構套件

本文說明如何建立包含正確 C++ 執行時間連結庫的 傳統型橋接器 容器。

原始產品版本:Windows 10
原始 KB 編號: 3176696

摘要

相依於 C++ 執行時間連結庫的 Windows 傳統型應用程式必須在建立應用程式套件期間,為 傳統型橋接器 指定對應的 C++ 執行時間架構套件版本。 這必須完成,而不只是轉散發 Visual Studio 或 Visual C++ 執行時間可轉散發套用 (VCRedist) 隨附的 C++ 運行時間連結庫。 在 傳統型橋接器 容器中執行的 Windows 傳統型應用程式無法使用 Visual Studio 或 VCRedist 隨附的 C++ 執行時間連結庫。 在 傳統型橋接器 容器中執行且使用不正確 C++ 執行時間連結庫版本的應用程式,在嘗試存取檔案系統或登錄等資源時,可能會失敗。 本文討論如何建立包含正確 C++ 執行時間連結庫的 傳統型橋接器 容器。

如何安裝和更新桌面架構套件

Microsoft 提供 C++ 執行時間架構套件,可讓應用程式從透過 Windows 市集散發的傳統型應用程式參考 C++ 執行時間。 這些套件會透過 Windows 市集散發和更新,處理方式類似於 C++ UWP 架構套件。

基於開發目的,當您選擇具有選擇性 C++ (v142) 通用 Windows 工具元件的 通用 Windows 平台 開發工作負載時,偵錯和零售 appx 套件的目前版本 (v14.0) 都會隨附於 Visual Studio 2019。 您可以在 下 %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0找到套件。

Windows 沙箱 或應用程式在離線電腦上執行的某些案例中,開發人員可能會發現從下列其中一個鏈接下載與其部署架構對應的套件,並使用 Add-AppxPackage PowerShell Cmdlet 手動安裝這些套件會比較容易:

舊版桌面架構套件

您可以從這些位置下載並安裝適用於傳統型應用程式 v11.0 和 v12.0 的舊版 C++ 執行時間架構套件:

C++ 執行時間架構套件將會複製到 下的 %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop子資料夾。 您可以使用 Add-AppxPackage PowerShell Cmdlet 手動安裝套件。

如何參考桌面架構套件

在應用程式的 AppxManifest.xml 檔案中,指定對 PackageDependency 應至適當架構套件的值:

  • 版本 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>
    
  • 版本 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>
    
  • 版本 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>
    

應用程式現在會在部署時,從相依性套件安裝 C++ 執行時間 DLL。

參考資料

在 Centennial 專案中使用 Visual C++ 執行時間