【问题标题】:Windows 10 UWP Desktop Bridge Application (C++): VCLibs dependencies in a debug buildWindows 10 UWP 桌面桥应用程序 (C++):调试版本中的 VCLibs 依赖项
【发布时间】:2018-02-17 10:31:50
【问题描述】:

我正在开发一个带有用 C++ 编写的桌面桥的 Windows 10 UWP 应用程序 (用 /ZW 编译)。 可执行文件依赖于 Visual C++ 运行时。

  • 当我添加依赖项时

<PackageDependency Name="Microsoft.VCLibs.140.00.UWPDesktop" MinVersion="14.0.24123.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />

到发布版本中的应用程序清单一切正常。我安装应用程序侧加载。 (MinVersion 是构建过程中复制到“Dependencies”输出文件夹中的 VCLibs 包的版本)

  • 当我添加依赖项时

<PackageDependency Name="Microsoft.VCLibs.140.00.Debug.UWPDesktop" MinVersion="14.0.25022.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />

到调试版本中的应用程序清单(如此处所述:https://blogs.msdn.microsoft.com/vcblog/2016/07/07/using-visual-c-runtime-in-centennial-project/,请参阅“用于调试”),我无法安装包并出现错误“Windows 无法安装包...因为此包依赖于框架找不到。提供由...发布的框架“Microsoft.VCLibs.140.00.Debug.UWPDesktop”。

  • 当我完全跳过添加依赖项时,我可以安装应用程序,但正如预期的那样,桌面桥进程无法启动,并出现错误“vccorlib140.DLL 未找到”(或 vccorlib140d.DLL,如果调试构建)。 但是,从构建输出“Dependencies”文件夹手动安装 Microsoft.VCLibs.140.00.Debug 包不会改变任何内容。

  • 当我添加依赖时(不带 UWPDesktop 后缀)

<PackageDependency Name="Microsoft.VCLibs.140.00.Debug" MinVersion="14.0.25022.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />

到调试版本中的应用程序清单,我可以安装应用程序,但它也无法启动,并显示“vccorlib140d.DLL 未找到”。

如何使调试版本正常工作? 当然,我可以将 VCLibs-DLL 复制到系统的 System32 目录中,但如果调试版本也可以“开箱即用”,那就太好了。

我使用的是 64 位 Windows 10 企业版 15063.540。

问候, 多米尼克

【问题讨论】:

    标签: c++ uwp desktop-bridge


    【解决方案1】:

    为了测试调试版本,您需要先手动安装调试 VCLIB appx 包。更多信息可以在这里找到:

    https://docs.microsoft.com/en-us/troubleshoot/cpp/c-runtime-packages-desktop-bridge

    【讨论】:

    • 感谢您的回答!这行得通。构建输出只复制“Microsoft.VCLibs.x64.Debug.14.00”包,而不是“Microsoft.VCLibs.x64.14.00.Desktop”包,这似乎有所不同。安装第二个时,它可以工作。
    • 我对不同的后缀“UWPDesktop”、“Desktop”、“Debug”有点困惑......你知道为什么在使用 MSBuild 构建项目时桌面 VCLib 不会复制到依赖项中吗输出文件夹虽然在清单中说明?
    • 两者都没有实际打包appx。依赖框架包的工作方式是它们来自商店,以避免每个应用程序包相同的东西。但是,调试 VCLib 包不在 Store 中,因此要通过侧载进行调试测试,您必须手动安装它们。
    • 似乎没有可用的 ARM64 调试包,你知道在哪里可以下载吗?
    • @Chris Anderson 谢谢 - 更新了更全面信息的链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2023-03-21
    • 2018-04-26
    • 2015-11-08
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多