UWP:WACK 测试在 Windows 运行时元数据验证时失败

UWP: WACK test failing on Windows Runtime metadata validation

我有一个针对 Windows-10 桌面的 C# 应用 platform.The C# 应用调用用 C++ 编写的本机组件。我的本机 C++ 代码具有 Visual C++ 组件扩展 (C++/CX)。
我正在尝试 运行 对我的应用进行 WACK 测试,但我看到了这个错误:

Error Found: The general metadata correctness test detected the following errors: The overloaded method XXX in yyy.winmd have the same number of in parameters without one that has DefaultOverloadAttribute. Exactly one method overload must have DefaultOverloadAttribute
Impact if not fixed: Windows store doesnt allow apps that don't pass Windows Runtime Metadata Validation.
How to fix: Please ensure that the compiler you are using to generate your Windows Runtime types is up to date with the Windows Runtime specifications

这过去在 VS-2015 Update 2 上运行良好。我今天安装了 VS-2015 Update-3,从那时起我就看到了这个故障。
奇怪的是错误报告中提到的重载方法根本没有重载。
我已经检查过这个 MSDN page 但找不到任何解决方案。
我的VS详情如下:

MS VS Professional 2015
Version 14.0.25425.01 Update 3
MS .NET Framework
Version 4.6.01038

我在任何地方都找不到任何 Windows 运行时规范。安装 VS Update-3 后我还需要什么吗?

这似乎是 VS 编译器的问题。基本上 WACK 工具抱怨任何用户定义的方法名称“Close


只要用户定义的 ref class 具有显式析构函数,编译器就会添加一个 IClosable 实现。然后它将析构函数映射到“IClosable::Close”方法。但是编译器并没有抱怨名为“Close”的用户定义方法。


进一步挖掘,我发现 SQLite 似乎也有类似的问题。这正是我遇到的问题。
这是 SQLite 使用的 solution
查看 SQLite 解决方案后,我将方法名称从“Close”修改为“Closedb”,现在我的 WACK测试通过。
截至发帖为止,此问题的唯一解决方案似乎是您的代码中没有名为“Close”的方法。