1

在将我的驱动程序项目移动到 WDK8 和 Visual Studio 2012 的过程中,我遇到了一个关于驱动程序包输出目录配置的小问题。幸运的是,使用标准项目模板和以下步骤很容易重现:

  1. 打开 VS 2012 并从开始页面选择 New Project
  2. 在“新建项目”对话框中,选择已安装 | 模板 | 视觉C++ | Windows 驱动程序 | 网络 | 过滤器驱动程序:NDIS。将位置更改为 C:\Projects,选择“为解决方案创建目录”,然后单击“确定”。
  3. 在标准工具栏中,在解决方案平台下拉列表中选择 x64。
  4. 在解决方案资源管理器中,选择两个项目,右键单击并从快捷菜单中选择属性。
  5. 在配置下拉菜单中选择“所有配置”,设置配置属性 | 一般 | 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
    
  6. 现在,按 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
    
  7. 在标准工具栏中,在解决方案配置下拉列表中选择“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 写入。

有没有其他人遇到过这个问题,如果有,是否有任何已知的解决方法或修复?

4

1 回答 1

4

我在大多数但不是全部的构建配置上都遇到了相同的问题(Vista Debug Win32 出于某种原因正确出现)。这是我解决它/解决它的方法:

  • 在另一个编辑器中打开 nnn_package.vcxproj 文件。

  • 请注意,上述构建配置 (vista|debug|win32) 的条目是自己定位的,通过“PropertyGroup”条目与所有其他配置条目分开,其中设置“PackageDir”$(OutDir)nnn_package“ /包目录"

(将“替换为小于/大于)

  • 将此部分移至所有构建配置条目并保存。

  • 在 VS2012 中重新打开解决方案,现在所有包都输出到正确的文件夹,无论配置名称和平台如何。

希望这可以帮助。

于 2013-05-05T22:16:02.713 回答