VS 2012 Bug? - 驱动程序包项目并不总是使用输出目录

时间:2013-04-25 15:38:33

标签: visual-studio-2012 driver wdk vspackage

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

  1. 打开VS 2012并从起始页面选择新项目
  2. 在“新建项目”对话框中,选择“已安装”模板| VisualC ++ | Windows驱动程序|网络|过滤器驱动程序:NDIS。 将位置更改为C:\ Projects,选择“Createdirectory for solution”,然后单击“确定”。
  3. 在“标准”工具栏中,在“解决方案平台”中选择x64 下拉列表。
  4. 在解决方案资源管理器中,选择两个项目,右键单击和 从快捷菜单中选择“属性”。
  5. 在配置下拉列表中选择“所有配置”,然后设置 配置属性|一般|输出目录到 “$(SolutionDir)bin \ $(平台)\ $(ConfigurationName)\”放置全部 在解决方案目录的bin子目录中输出,然后单击“确定”。 此时,dir \Projects\ndislsf1返回:

         Directory of 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目录已创建,进一步检查显示所有输出文件都已正确放置在那里:

    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 Release” 配置下拉列表并再次按F6以构建解决方案

         Directory of C:\Projects\ndislwf1
    
    
    {{1}}
  8. 不幸的是,Vista Release输出被写入x64而不是bin子目录。实际上,所有其他项目的“输出”也会忽略bin子目录并写入x64。

    是否有其他人遇到此问题,如果有,是否有预期的解决方法或修复方法?

1 个答案:

答案 0 :(得分:4)

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

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

  • 注意到上面的构建配置(vista | debug | win32)的条目是自己定位的,通过“PropertyGroup”条目与所有其他配置条目分开,除其他外,设置“PackageDir” $(OUTDIR)nnn_package “/ PackageDir”

(替换“少于/多于”)

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

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

希望这有帮助。