如何使用MSBuild为不同的用户进行自定义构建

时间:2016-11-02 14:42:15

标签: c# visual-studio msbuild

我有一个名为TestProduct.sln的C#项目 不幸的是取决于用户的程序 必须在一点上做出不同的反应。我该怎么说呢 用户编译的程序? 我必须在构建时使用DefineConstants:

msbuild /p:DefineConstants=USER1 TestProduct.sln

并在我的代码中:

#if USER1
    // do something USER1 specific
#endif

或者,我是否必须做一些完全不同的事情才能达到想要的行为?

提前感谢您的帮助。

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

1 个答案:

答案 0 :(得分:0)

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

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