1

使用 Visual Studio 2005,我遇到了一个问题,即 devenv 的行为与 GUI IDE 不同,即使在调用 VCvarsall.bat 并使用 /useenv 切换到 devenv 时也是如此。即使我只在这个项目上运行 clean(当我使用 GUI 时,我需要 devenv 以相同的方式运行),也会调用创建一堆文件的东西。我唯一能找到的可能是预处理器宏。没有预构建或预链接事件,只有构建后事件,这似乎不是创建这些文件的原因。我是 VS 新手,不是程序员,这不是我的项目。我只是负责通过 CLI 将其自动化。请原谅我的无知并帮助我。

TL;DR 当我运行 /rebuild 时,如何确保 devenv 与 GUI 执行完全相同的操作?如何确保 Devenv 使用项目中定义的预处理器宏?

4

1 回答 1

1

它们是不同的动物,可能一直都是,而且有传言说它们不在 VS2013 中,但当我看到它时我会相信。

预处理器宏确实从两者运行。检查 .*proj 文件中的条件,以确定是否<DefineConstants>DEBUG;TRACE</DefineConstants>符合您对预处理器条件的期望。

在 VS 和 msbuild 中运行您的构建,并在/v:diagDefineConstants 属性中查找差异。要使 VS 执行该级别的日志记录,它位于工具菜单 -> 选项 -> 项目和解决方案 -> 构建和运行 -> MSBuild 项目构建输出详细程度。

于 2013-08-16T14:06:42.990 回答