是否可以将 Windows 10 WDK 与 Visual Studio 2013 集成?

Is it possible to integrate the Windows 10 WDK with Visual Studio 2013?

我需要处理 Windows 10 特定的驱动程序类型。获取并安装 WDK 10.0.10075 没有问题。我在安装 WDK 之前安装了 Visual Studio 2013 Pro。

现在如何将 WDK 集成到 Visual Studio?我知道 Visual Studio 2015 RC 可用,但我现在更愿意使用 Visual Studio 2013 IDE 和 Windows driver samples contain Visual Studio 2013 年解决方案.

但是,当我打开解决方案并尝试构建它时,我得到:

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for WindowsKernelModeDriver10.0 (Platform Toolset = 'WindowsKernelModeDriver10.0') cannot be found. To build using the WindowsKernelModeDriver10.0 build tools, please install WindowsKernelModeDriver10.0 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...".
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

引用全文更方便阅读:

error MSB8020: The build tools for WindowsKernelModeDriver10.0 (Platform Toolset = 'WindowsKernelModeDriver10.0') cannot be found. To build using the WindowsKernelModeDriver10.0 build tools, please install WindowsKernelModeDriver10.0 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...".

毫不奇怪,我没有在解决方案的上下文菜单中看到 "Upgrade Solution..." 作为一个选项,而且我在主菜单的 "Project" 子菜单中也没有看到它。

有没有办法让 Windows 10 WDK 工具集为 MSBuild 所知,以便 Visual Studio 2013 可以处理它?


所以 Windows 10 WDK 在 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140 中注册了自己(与 VS 2013 的 v120 相反,我猜有人迷信了 VS 使用内部版本号 13.x 2015?).

我首先尝试的是分别备份 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v120

然后我将 v140 下的文件和文件夹合并到 v120 中。顺便说一下,在此过程中没有 文件 被覆盖。

尝试使用它再次构建,我又遇到了另一个错误:

1>C:\Program Files (x86)\Windows Kits\build\WindowsDriver.common.targets(178,5): error : An SDK corresponding to WDK version '' was not found. Please install the SDK before building.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

作为块引用:

error : An SDK corresponding to WDK version '' was not found. Please install the SDK before building.

前途无量。我确实还没有安装相应的 SDK。所以我去做了(Windows 10 SDK 10.0.10069)。不幸的是,错误消息在安装该 SDK 后保持不变。

在线示例应该是针对 VS 2015 RC 的。许多示例甚至已转换为通用驱动程序示例。

对于内核模式驱动程序,应该可以通过移动各种 MSBuild 文件并编辑其中的一些文件来实现,这与您尝试执行的操作类似。请注意,这在任何方面都不受官方支持。对于用户模式驱动程序,它不太可能起作用。 Windows 10 WDK 依赖于匹配的 SDK 版本,并且由于为支持通用应用程序和驱动程序开发所做的所有更改,SDK 与 VS 2015 紧密结合。

在 MSBuild 工具集中,还有一堆假定已定义的属性,其中一些只有在使用 VS 2015 时才会定义。

请注意,您的 SDK 和 WDK 版本必须匹配。 SDK 10.0.10069 与 WDK 版本 10.0.10075 不匹配。

$(LatestTargetPlatformVersion) 而不是像 10 或 8.1 这样的硬编码 TargetPlatform 版本