2011-06-17 114 views
3

有没有什么办法可以为解决方案定义全局变量可以通过解决方案中包含的任何项目文件或项目属性表访问?如何在Visual Studio 2010解决方案中全局定义变量?

如果可以为每个项目都可以包含的属性表定义路径,那么一个变量就足够了。

这是理想的解决方案。 尽管不太理想,环境变量仍然可以。

* *(视觉studion 2010)

它再次戳,我看不出如何设置一个用户定义的$(XXX)vartiable在一个项目 - 是的,你可以在属性表,但在一个项目中我引用了$(ProjectDir) -

问题是我想定义一个$(项目树根),任何引用特定项目的项目都可以访问,并且根将相对于该项目。

另一种方法是,如果一个属性表可以访问自己的路径并定义项目集合根(与具有公共资源的相关项目树相关)。

似乎每一个建造VS系统都有同样的问题。

回答

1

我不知道你的使用案例,但它听起来不像是最好的主意。这将把你所有的项目紧密地联系在一起,这违反了良好的面向对象设计。由于这个原因,微软并没有包含任何解决方案级别的属性。但是,如果你真的想做这样的事情,你有两种方法(至少)去做。

第一种方式和我推荐的方式是将变量存储在您的项目中并将其公开。然后,只要包含项目作为参考,您的所有项目都可以访问它。

第二种方式,以及将保留一些面向对象原则的方式,将创建一个配置文件,所有项目都会查找该变量。这可能是一个XML文件,一个CSV文件,甚至是一个简单的文本文件。如果你想变得更复杂,你可以指向一个数据库位置,因为这是数据库的一个角色。

+0

正确的第一种方式是不好的项目不应该彼此了解。这是VisualStudio - 不适用于MSBuild。 – peterk

+0

哎呀5分钟规则:)正确的第一种方式是不好的项目不应该知道彼此。这是VisualStudio - 不适用于MSBuild。我想你可以有一个名为与解决方案相同的属性表?并且所有项目都可以导入$(SolutionDir)$(SolutionName).vsprops?我基本上想要它,所以解决方案可以指定一组相关项目的根目录,并配置影响以常见方式构建项目的配置文件,库集等。如果以上工作正常,那么解决方案可以有效地定义包括哪些全球性的财产表。 – peterk

相关问题