1

这似乎是 VS2012 中的一个错误,但我想知道是否有人有解决方法或可以解释问题所在。我按照这个页面在 vs2012 中创建了一个简单的 KMDF 驱动程序。在构建之前,我将驱动程序包项目的输出目录设置为“$(SolutionDir)Output\$(ConfigurationName)\”,主要区别是在路径中添加了“Output”。

当我以 Win32 为目标构建时,它运行良好,一切都按照我的预期进行。但是,当我构建目标 x64 时,输出改为“$(SolutionDir)$(ConfigurationName)\”。无论我为输出目录输入什么,它总是从 SolutionDir 开始。

当我选择输出目录时,如果我点击宏,我可以看到 OutDir 是输出的实际位置,它与我在项目属性中为“输出目录”指定的内容不匹配。还有其他东西可以覆盖 OutDir 吗?我尝试在 .vcxproj 文件中设置 OutDir,但它的行为仍然相同。

4

1 回答 1

0

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

您需要手动编辑项目文件(.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.Cpp.props 覆盖了这些路径,所以我需要先包含它,然后覆盖其中配置的内容。

于 2015-05-05T22:22:49.117 回答