在将我的驱动程序项目移动到 WDK8 和 Visual Studio 2012 的过程中,我遇到了一个关于驱动程序包输出目录配置的小问题。幸运的是,使用标准项目模板和以下步骤很容易重现:
- 打开 VS 2012 并从开始页面选择 New Project
- 在“新建项目”对话框中,选择已安装 | 模板 | 视觉C++ | Windows 驱动程序 | 网络 | 过滤器驱动程序:NDIS。将位置更改为 C:\Projects,选择“为解决方案创建目录”,然后单击“确定”。
- 在标准工具栏中,在解决方案平台下拉列表中选择 x64。
- 在解决方案资源管理器中,选择两个项目,右键单击并从快捷菜单中选择属性。
在配置下拉菜单中选择“所有配置”,设置配置属性 | 一般 | Output Directory to "$(SolutionDir)bin\$(Platform)\$(ConfigurationName)\" 将所有输出放在解决方案目录的 bin 子目录中,然后单击 OK。此时,
dir \Projects\ndislsf1
返回:C:\Projects\ndislwf1 目录
04/25/2013 09:42 AM <DIR> . 04/25/2013 09:42 AM <DIR> .. 04/25/2013 09:42 AM <DIR> ndislwf1 04/25/2013 09:42 AM <DIR> ndislwf1 Package 04/25/2013 09:46 AM 14,811,136 ndislwf1.sdf 04/25/2013 09:42 AM 7,627 ndislwf1.sln 2 File(s) 14,818,763 bytes 4 Dir(s) 6,701,723,648 bytes free
现在,按 F6 构建解决方案
到目前为止一切都很好,dir \Projects\ndislsf1 显示我们的 bin 目录已创建,进一步检查显示所有输出文件都正确放置在那里:
C:\Projects\ndislwf1 目录
04/25/2013 09:47 AM <DIR> . 04/25/2013 09:47 AM <DIR> .. 04/25/2013 09:47 AM <DIR> bin 04/25/2013 09:47 AM <DIR> ndislwf1 04/25/2013 09:47 AM <DIR> ndislwf1 Package 04/25/2013 09:46 AM 14,811,136 ndislwf1.sdf 04/25/2013 09:42 AM 7,627 ndislwf1.sln 2 File(s) 14,818,763 bytes 5 Dir(s) 6,695,829,504 bytes free
在标准工具栏中,在解决方案配置下拉列表中选择“Vista 发布”,然后再次按 F6 以构建解决方案
C:\Projects\ndislwf1 目录 2013 年 4 月 25 日上午 9 点 51 分。 2013 年 4 月 25 日上午 9:51 .. 2013 年 4 月 25 日上午 9:47 2013 年 4 月 25 日上午 9:47 2013 年 4 月 25 日上午 9:47 ndislwf1 包 2013 年 4 月 25 日上午 9:46 14,811,136 ndislwf1.sdf 2013 年 4 月 25 日上午 9:42 7,627 ndislwf1.sln 2013 年 4 月 25 日上午 09:51 x64 2 个文件 14,818,763 字节 6 Dir(s) 6,689,509,376 字节空闲
不幸的是,Vista Release 输出被写入 x64 而不是 bin 子目录。事实上,所有其他项目的输出'也忽略了 bin 子目录并以 x64 写入。
有没有其他人遇到过这个问题,如果有,是否有任何已知的解决方法或修复?