【发布时间】: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