Windows 10 UWP 桌面桥应用程序 (C++):调试版本中的 VCLibs 依赖项
Windows 10 UWP Desktop Bridge Application (C++): VCLibs dependencies in a debug build
我正在开发一个 Windows 10 UWP 应用程序,带有用 C++ 编写的桌面桥
(用 /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/,请参阅 "For Debugging"),我无法安装错误为 "Windows cannot install package ... because this package depends on a framework that could not be found. Provide the framework "Microsoft.VCLibs 的程序包.140.00.Debug.UWPDesktop”由...发布。
当我完全跳过添加依赖项时,我可以安装应用程序,但正如预期的那样,桌面桥进程无法启动并出现错误 "vccorlib140.DLL was not found"(或 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 was not found"。
如何让调试版本正常工作?
当然,我可以将 VCLibs-DLL 复制到系统的 System32 目录中,但如果调试版本也可以工作,那就太好了 "out of the box".
我使用的是 64 位 Windows 10 企业版 15063.540。
此致,
多米尼克
为了测试调试版本,您需要先手动安装调试 VCLIB 应用程序包。可以在这里找到更多信息:
https://docs.microsoft.com/en-us/troubleshoot/cpp/c-runtime-packages-desktop-bridge
我正在开发一个 Windows 10 UWP 应用程序,带有用 C++ 编写的桌面桥 (用 /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/,请参阅 "For Debugging"),我无法安装错误为 "Windows cannot install package ... because this package depends on a framework that could not be found. Provide the framework "Microsoft.VCLibs 的程序包.140.00.Debug.UWPDesktop”由...发布。
当我完全跳过添加依赖项时,我可以安装应用程序,但正如预期的那样,桌面桥进程无法启动并出现错误 "vccorlib140.DLL was not found"(或 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 was not found"。
如何让调试版本正常工作? 当然,我可以将 VCLibs-DLL 复制到系统的 System32 目录中,但如果调试版本也可以工作,那就太好了 "out of the box".
我使用的是 64 位 Windows 10 企业版 15063.540。
此致, 多米尼克
为了测试调试版本,您需要先手动安装调试 VCLIB 应用程序包。可以在这里找到更多信息:
https://docs.microsoft.com/en-us/troubleshoot/cpp/c-runtime-packages-desktop-bridge