【问题标题】:msbuild script utilizing solution information利用解决方案信息的 msbuild 脚本
【发布时间】:2011-04-05 17:50:06
【问题描述】:

我有一个 csproj 文件,它属于两个不同的 Visual Studio 解决方案。项目文件的行为应该会略有不同,具体取决于将使用的解决方案。我需要的是可用作“条件”的东西 - 例如名为 $(SolutionName) 的属性 - 自动填充。 至少,这是我的想法。我没有找到类似的东西。

我还考虑有两个小项目文件导入公共部分。我猜这会阻止从 Visual Studio 中编辑所有这些属性。它只会在活动的“主文件”中写入更改,对吗?

那么,有没有其他方法可以在项目级别使用解决方案信息进行区分?

【问题讨论】:

    标签: visual-studio-2010 msbuild


    【解决方案1】:

    原来有一个名为 $(SolutionName) 的属性。试试这个;首先设置一个环境变量为:

    > set MSBuildEmitSolution=1
    

    然后在同一命令行中使用 MSBuild 构建您的解决方案文件

    > MSBuild My.sln
    

    你会发现你的解决方案文件的 MSBuild 项目转换,它将被命名为 My.sln.metaproj

    只需在文本编辑器中打开它,您就可以看到其他属性。检查此投影文件中的“构建”目标,您可以看到所有这些属性在构建项目时都传递给了 MSBuild 任务,因此您应该能够根据其中任何一个来区分条件。

    【讨论】:

    • metaproj 文件包含 DebugMySolutionName。我在我的 csproj 文件中使用 将开关设置为 块。这有效 - 但仅适用于“调试”配置。对于 'release' $(SolutionName) 似乎是空的,我的 子句将被使用。
    • 我的第一条评论错了。它完全按照描述工作。非常感谢您,特别是您展示了提取此类信息的一般方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 2012-12-16
    相关资源
    最近更新 更多