【问题标题】:How to make custom builds for different users with MSBuild如何使用 MSBuild 为不同用户进行自定义构建
【发布时间】:2016-11-02 14:42:15
【问题描述】:

我有一个名为 TestProduct.sln 的 C# 项目 不幸的是,取决于用户的程序 必须在某一时刻做出不同的反应。我怎么知道 它是为哪个用户编译的程序? 在构建时我是否必须使用DefineConstants:

msbuild /p:DefineConstants=USER1 TestProduct.sln

在我的代码中:

#if USER1
    // do something USER1 specific
#endif

或者我必须做一些完全不同的事情来实现想要的行为?

提前感谢您的帮助。

编辑:抱歉表达错误,我必须澄清情况。用户是错误的措辞,我不得不称其为客户。对于每个客户,都有一个启动 msbuild 命令的批处理文件。在 msbuild 命令中,我想告诉构建的二进制文件将为哪个客户提供。

【问题讨论】:

  • 您可以使用 $(USERNAME) 来读取 USERNAME 环境变量。
  • @Action Heinz,你能从老兄和 cristallo 的建议中获得有用的信息吗?我同意他们的观点,使用环境变量将是解决这个问题的好方法。不是同一个问题,但很好的参考:stackoverflow.com/questions/11690574/…

标签: c# visual-studio msbuild


【解决方案1】:

我过去也遇到过类似的问题,我就是这样解决的。

我使用$(USERNAME) 环境变量获取用户名。 然后我有多个名为USERNAME.doit.bat 的批处理文件,并且在构建后事件VS 运行$(USERNAME).doit.bat。这样,每个用户都有自己的文件批处理,用于自定义后期构建操作。

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 2020-08-17
    • 2015-08-18
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多