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

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

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

摘要

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

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

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

基於開發目的,當您選擇具有選擇性 C++ (v142) Universal Windows Tools 元件的 通用 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++ 執行時間