c++ - 如何在 Visual Studio 2005 及更高版本中自动更改项目设置

标签 c++ visual-studio visual-c++

我有一个 visual studio 2005/2010 项目,每个项目都由 20 个项目组成,所有这些项目都由一个解决方案文件 (.sln) 管理

现在,如果我必须更改任何编译器或链接器设置,我必须为所有 20 个项目手动执行此操作,是否可以使用脚本或插件或任何其他方法自动执行此操作。

感谢您的时间和关注

最佳答案

您正在寻找的是属性表。 Visual Studio 已经有了一种机制,几乎可以让您完成您所要求的一切。

属性表 ( *.props ) 基本上是一个单独的设置文件,您可以将其附加到您喜欢的任意多个项目,并且所有配置的属性都应用于这些项目。可以把它想象成项目是从另一个配置“继承”的——而这正是正在发生的事情。

假设您有包含目录、链接器目录、库包含、预处理器定义等的基本配置,并且您知道每个项目在每个配置(调试、发布等)中都使用它们。您可以创建一个属性表 defaults.props并将其应用于所有 20 个项目。然后,如果您需要更改,只需编辑属性表文件,所有更改将反射(reflect)到所有 20 个项目。

要创建属性表,请单击 View -> Property Manager (不要与“属性窗口”混淆!)。应该会弹出一个窗口,您可以在其中查看所有项目及其所有配置。现在右键单击您的任何项目并选择 Add New Property Sheet ,输入名称并将其保存在某处。这将创建一个 .props文件并将其添加到单个项目的所有配置中。然后,您可以从此窗口编辑此属性表,就像它是真实项目一样(右键单击属性表并选择 Properties)。

创建属性表后,您可以继续并右键单击其他 19 个项目并执行 Add Existing Property Sheet。 .当然,您必须为所有项目执行一次此操作,但之后您的属性表使您能够一次更改所有项目的设置。

另外值得注意的是,您可以将多个属性表应用于一个项目。如果您这样做,它们将按顺序应用(您可以根据需要重新排序)以便您能够更详细地配置您的项目。例如,你可以有这个 default.props适用于一切,然后你可以得到一个default_debug.props仅用于调试配置。第一个设置所有包含和库目录,第二个设置库规范并定义特定的调试配置。

最后一个重要注意事项:如果您直接在项目中设置了一些属性(您显然已经拥有),它将自动覆盖您在属性表中指定的任何设置。如果项目中的设置具有粗体 值,您就会看到这一点。如果要将其恢复为属性表值,请清除设置并选择 <inherit from parent or project defaults>从设置的下拉菜单中。 Include- 和 Linker-Directories 是一种特殊情况,在这种情况下,您将始终继承属性表中指定的所有内容,除非明确禁用。

编辑:我不太确定 VS2005/VS2008,iirc 它们与 *.vsprops 具有相同的原理。文件,但这可能与 *.props 不兼容来自 VS2010+ 的文件

关于c++ - 如何在 Visual Studio 2005 及更高版本中自动更改项目设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913714/

相关文章:

c++ - 如何修复 "faulting module msvcr100.dll"

c++ - 前向声明类的成员函数指针

c++ - 从控制台读取 UTF-8 字符

c++ - 使用静态链接到 OpenCV (C++) 在 VS2013 中编译项目

c++ - 抛出未处理的异常 : write access violation. bunnies_array 是 0x5CB3CBA

c++ - Rcpparmadillo C++ 创建 bool vector

visual-studio - CSS文件不断变化

c++ - 将字符串转换为 const *json 后,在传递 json 对象时,显示失败 : (IsObject()), 如何解决?

c# - 受此声明影响的记录数

c# - 2 个项目上的 Webapi 2 Controller