我有一个名为TestProduct.sln的C#项目 不幸的是取决于用户的程序 必须在一点上做出不同的反应。我该怎么说呢 用户编译的程序? 我必须在构建时使用DefineConstants:
msbuild /p:DefineConstants=USER1 TestProduct.sln
并在我的代码中:
#if USER1
// do something USER1 specific
#endif
或者,我是否必须做一些完全不同的事情才能达到想要的行为?
提前感谢您的帮助。
编辑:对不起表达自己的错误,我必须澄清情况。用户是错误的措辞我不得不称之为客户。 Foreach客户有一个批处理文件,它启动msbuild命令。在msbuild命令中,我想告诉构建的二进制文件,它将为哪个客户提供。
答案 0 :(得分:0)
我过去遇到过类似的问题,我也是这样解决的。
我使用$(USERNAME)
环境变量获取用户名。
然后我有多个名为USERNAME.doit.bat
的批处理文件,在后期构建事件VS中运行$(USERNAME).doit.bat
。通过这种方式,每个用户都有自己的文件批量用于自定义后期构建操作。