使用 Visual Studio 2012
我想我想通了。我在我的 Extension SDK 的 redist 文件夹下的 Debug 和 Retail 文件夹中包含了 C++/CX WinRT 组件的相同二进制文件。
因此,此二进制文件始终依赖于 Visual Studio 2012 的发布 CRT。
现在,当我远程运行我的应用程序的发布版本时,应用程序二进制文件和 SDK 组件二进制文件都依赖于发布 CRT。并且在系统上也可以找到发布 CRT,因为该应用程序依赖于发布 VCLibs 包。所以发布应用程序工作正常。
但是,当我远程运行我的应用程序的调试版本时,该应用程序依赖于 Visual Studio 2012 中的调试 CRT,但 SDK 组件依赖于发布 CRT。由于该应用程序仅依赖于调试 VCLibs 包,因此它仅在运行时找到调试 CRT。因此 SDK 组件无法加载。
解决方案是确保在创建 SDK 时,发布二进制文件依赖于发布 CRT,而调试二进制文件依赖于调试 CRT。
有关 C++ 运行时如何用于 Windows 应用商店应用程序的详细信息,请参阅以下链接:http:
//blogs.msdn.com/b/vcblog/archive/2012/09/28/10354327.aspx
更新它现在可以在 Visual Studio 2013 中使用
使用 Visual Studio 2013
在 Visual Studio 2013 中,VCLibs 调试 AppX 包包含调试和发布 CRT DLL。因此,在调试配置中,应用程序依赖于调试 CRT,而扩展 SDK 二进制文件依赖于发布 CRT。这两个 DLL 都可以在 VCLibs Debug AppX 包中找到。所以它有效。