VS2012驱动程序包使用错误的输出目录在x64

VS2012 driver package using wrong output directory in x64

本文关键字:x64 输出 驱动程序 包使用 错误 VS2012      更新时间:2023-10-16

这似乎是VS2012中的一个bug,但我想知道是否有人有解决方法或可以解释什么是错的。我在vs2012中创建了一个简单的KMDF驱动程序。在构建之前,我将驱动程序包项目的输出目录设置为"$(SolutionDir) output $(ConfigurationName)",主要区别在于将"output"添加到路径中。

当我以Win32为目标构建时,它工作得很好,一切都在我期望的地方。但是,当我以x64为目标构建时,输出转到"$(SolutionDir)$(ConfigurationName)"。无论我为输出目录输入什么,它总是从SolutionDir开始。

当我选择输出目录时,如果我点击宏,我可以看到OutDir是实际输出的地方,它与我在项目属性中为"输出目录"指定的内容不匹配。还有什么东西重写了OutDir吗?我试过在。vcxproj文件中设置OutDir,但它仍然表现相同。

对于任何有此问题的人;我已经为自己找到了一个解决办法。

您需要手动编辑项目文件(。vcxproj文件)。

你会发现这一行:

<Import Project="$(VCTargetsPath)Microsoft.Cpp.props" />

将包含OutDir定义的属性组移动到该行的正下方,如下所示:

<Import Project="$(VCTargetsPath)Microsoft.Cpp.props" />
<PropertyGroup Label="Globals">
    <OutDir>$(SolutionDir)outbin$(Configuration)$(Platform)</OutDir>
    <OutputPath>$(SolutionDir)outbin$(Configuration)$(Platform)</OutputPath>
</PropertyGroup>

在我的设置中,microsoft . cp .props覆盖了这些路径,所以我需要首先包含这些路径,然后覆盖在那里配置的内容。