4

我是 Windows 应用程序开发的新手。我已经构建了一个面向 Windows 10 桌面和移动平台的 C# 应用程序。我的 C# 应用调用用 C++ (c++/cx) 编写的 Windows 运行时组件。

我按照这个MSDN Link运行 WACK 测试。

我的机器上安装了Windows App Certification Kit 10.0。要运行测试,我执行Validate Store App -> Select my app from list of installed apps on the machine。我的应用程序以发布模式安装。当我运行 WACK 测试时,支持的 API 测试失败并显示以下内容:

此应用程序类型不支持 vccorlib140.dll 中的 API ??0Delegate@Platform@@Q$AAA@XZ。sample.dll 调用此 API。
    
此应用程序类型不支持 vccorlib140.dll 中的 API ??0Exception@Platform@@Q$AAA@H@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ??0NotImplementedException@Platform@@Q$AAA@XZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ??0Object@Platform@@Q$AAA@XZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?AlignedFree@Heap@Details@Platform@@SAXAX@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?Allocate@Heap@Details@Platform@@SAPAXII@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?AllocateException@Heap@Details@Platform@@SAPAXII@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?Free@Heap@Details@Platform@@SAXPAX@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?GetActivationFactory@Details@Platform@@YGJPAVModuleBase@1WRL@Microsoft@@PAUHSTRING__@@PAPAUIActivationFactory@@@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?GetActivationFactoryByPCWSTR@@YGJPAXAAVGuid@Platform@@PAPAX@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?GetIBoxArrayVtable@Details@Platform@@YGPAXPAX@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?GetIidsFn@@YGJHPAKPBU__s_GUID@@PAPAVGuid@Platform@@@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?InitializeData@Details@Platform@@YAJH@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?ReleaseTarget@ControlBlock@Details@Platform@@AAEXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?TerminateModule@Details@Platform@@YG_NPAVModuleBase@1WRL@Microsoft@@@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?UninitializeData@Details@Platform@@YAXH@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseAccessDeniedException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseCOMException@@YGXJ@Z。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseChangedStateException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseClassNotRegisteredException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseDisconnectedException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseFailureException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseInvalidArgumentException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseInvalidCastException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseNotImplementedException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseNullReferenceException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseObjectDisposedException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseOperationCanceledException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseOutOfBoundsException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseOutOfMemoryException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_WinRTraiseWrongThreadException@@YGXXZ。sample.dll 调用此 API。
此应用程序类型不支持 vccorlib140.dll 中的 API ?__abi_translateCurrentException@@YGJ_N@Z。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API _CxxThrowException。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __CxxFrameHandler3。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __std_exception_copy。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __std_exception_destroy。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __std_terminate。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __std_type_info_destroy_list。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __telemetry_main_invoke_trigger。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __telemetry_main_return_trigger。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API __vcrt_InitializeCriticalSectionEx。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API _except_handler4_common。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API _purecall。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API memcpy。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API memmove。sample.dll 调用此 API。
此应用程序类型不支持 vcruntime140.dll 中的 API memset。sample.dll 调用此 API。
此应用程序类型不支持 msvcp140.dll 中的 API ?_Xbad_alloc@std@@YAXXZ。sample.dll 调用此 API。
此应用程序类型不支持 msvcp140.dll 中的 API ?_Xlength_error@std@@YAXPBD@Z。sample.dll 调用此 API。
此应用程序类型不支持 msvcp140.dll 中的 API ?_Xout_of_range@std@@YAXPBD@Z。sample.dll 调用此 API。
此应用程序类型不支持 concrt140.dll 中的 API ??1_StructuredTaskCollection@details@Concurrency@@QAE@XZ。sample.dll 调用此 API。
此应用程序类型不支持 concrt140.dll 中的 API ?Free@Concurrency@@YAXPAX@Z。sample.dll 调用此 API。
此应用程序类型不支持 concrt140.dll 中的 API ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ。sample.dll 调用此 API。
此应用程序类型不支持 concrt140.dll 中的 API ?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z。sample.dll 调用此 API。
此应用程序类型不支持 kernel32.dll 中的 API GetModuleHandleW。sample.dll 调用此 API。
此应用程序类型不支持 kernel32.dll 中的 API TlsAlloc。sample.dll 调用此 API。
此应用程序类型不支持 kernel32.dll 中的 API TlsFree。sample.dll 调用此 API。
此应用程序类型不支持 kernel32.dll 中的 API TlsGetValue。sample.dll 调用此 API。
此应用程序类型不支持 kernel32.dll 中的 API TlsSetValue。sample.dll 调用此 API。
此应用程序类型不支持 kernel32.dll 中的 API UnhandledExceptionFilter。sample.dll 调用此 API。

在进一步的谷歌搜索中,我发现了这些Link-1Link-2


上述链接中可能的解决方案是卸载 KB 2976978更新并重新运行 WACK 测试MS 支持错误链接
虽然我的机器似乎没有此KB 2976978更新。
控制面板\程序\程序和功能 查看已安装的更新搜索已安装的更新似乎找不到上述更新。
我已经检查了这个:SO post正如这个 SO 帖子中提到的,即使在我的情况下,一切都可以用/ZW /EHsc /D标志 编译
我的 VS 详细信息是:

MS Visual Studio Professional 2015 

版本 14.0.25123.00 更新 2
MS .NET Framework
版本 4.6.01038

任何帮助将不胜感激。

4

1 回答 1

10

问题是,我的 C++ 本机库引用了桌面 CRT dll(vccorlib140.dll)而不是存储 CRT dll(vccorlib140_app.dll)。

该应用程序引用了桌面 CRT,因为我将我的应用程序与该位置的库链接:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib

原来要构建一个商店应用程序,我们需要从这个位置引用库:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\store

于 2016-08-05T23:28:30.193 回答