【发布时间】: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