【问题标题】:How can one globally define a variable in a visual studio 2010 solution?如何在 Visual Studio 2010 解决方案中全局定义变量?
【发布时间】:2011-06-17 16:13:43
【问题描述】:

有什么方法可以为解决方案定义一个全局变量,该全局变量可由解决方案中包含的任何项目文件或项目属性表访问?

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

这是理想的解决方案。 环境变量可以,但不太理想。

**(视觉工作室 2010)

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

问题是我想定义一个 $(tree of projects root),任何引用特定项目的项目都可以访问它,并且根将与该项目相关。

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

似乎每个用 VS 构建大系统的人都有同样的问题。

【问题讨论】:

    标签: visual-studio-2010 visual-c++-2010


    【解决方案1】:

    我不知道您的用例,但这听起来不是最好的主意。这会将您的所有项目紧密地联系在一起,这违反了良好的 OO 设计。出于这个原因,Microsoft 没有包含任何解决方案级别的属性。然而,如果你真的想做这样的事情,你有两种方法(至少)去做。

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

    第二种方法,也是保留一些 OO 原则的方法,是创建一个所有项目都查看变量的配置文件。这可以是 XML 文件、CSV 文件,甚至是简单的文本文件。如果你想变得更复杂,你可以指向一个数据库位置,因为这是数据库的角色之一。

    【讨论】:

    • 正确的第一种方式是糟糕的项目不应该相互了解。这适用于 VisualStudio - 不适用于 MSBuild。
    • 哎呀 5 分钟规则 :) 正确的第一个方法是糟糕的项目不应该相互了解。这适用于 VisualStudio - 不适用于 MSBuild。我认为可以有一个与解决方案名称相同的属性表吗?并且所有项目都可以导入 $(SolutionDir)$(SolutionName).vsprops ??我基本上想要它,因此解决方案可以指定一组相关项目的根目录的路径,并配置影响以通用方式、库集等方式填充项目的构建或配置覆盖。如果上述工作有效,则解决方案可以有效地定义要包含哪个全局属性表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多