Visual C ++属性表是否可以引用项目位置?

时间:2011-07-12 18:58:14

标签: visual-studio visual-c++

是否可以使用Visual Studio属性表来指定项目文件所在的目录?

我有一个解决方案文件,其中包含公共目录中的多个项目。例如,如果我想更改该目录名称,我需要更改解决方案中每个项目的项目路径。如果我可以使用属性表来指定该顶级目录的名称,我可以在需要更改目录名时更新它。


在属性表中,您可以定义(包括其他内容)包含目录,您的解决方案中将使用此属性表的任何项目都将使用该目录。这使得同时在多个项目中更改包含目录变得微不足道。您还可以添加宏,然后可以由所有项目使用。

基本上,我想知道是否有某种方法可以使用Property Sheets(或其他东西)添加指定一些宏来解决方案,这将允许项目的路径为变量。

想象一下这种情况,我有一个版本v1.0的项目,它是几个解决方案的一部分。我想升级到v1.1,所以我使用属性表宏来重新定义头文件和输出库文件的Include目录。

C:\myproject\somelibrary\v1.0\some_project.proj
C:\myproject\somelibrary\v1.1\some_project.proj

$(LibraryPath)可以在我的属性表中从v1.0更改为v1.1。

如果我有许多引用相同属性表的解决方案,这会让我的生活更轻松。但是,在每个解决方案中,我还需要删除旧的v1.0项目文件并添加新的v1.1项目文件。

有没有一种方法可以定义宏或类似的东西,从而可以在一个位置更改多个解决方案的项目路径? Property Sheets可能无法工作,因为它们是在项目级而不是解决方案级别添加的,所以我正在寻找类似的东西。

2 个答案:

答案 0 :(得分:0)

您不能使用属性表执行此操作。 .sln文件引用.vcproj(或其他项目文件类型)文件。然后项目文件依次引用属性表。所以Visual Studio必须以某种方式找到属性表,然后返回并加载项目文件。

您尝试做的更简单的解决方案是在文本编辑器中打开.sln并使用find / replace来更改项目文件的路径。您甚至可以使用Visual Studio本身使用File-> Open-> File ...然后单击“Open With ...”按钮而不是常规打开按钮。我不确定Visual Studio 2010,但在2005和2008年,您必须单击打开按钮上的向下箭头才能进入“打开方式...”按钮。然后,您可以选择XML编辑器或源代码编辑器。完成更改后,保存并关闭.sln文件,然后以正常方式打开它。

答案 1 :(得分:0)

我要做的是创建一个脚本(可以做c ++,python对os和基于文件的任务更友好),编辑解决方案文件并替换路径的一部分。

还可以使用环境变量,使其更容易......