如何使用MSBuild为不同的用户定制构建

本文关键字:用户 构建 何使用 MSBuild | 更新日期: 2023-09-27 18:15:53

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

msbuild /p:DefineConstants=USER1 TestProduct.sln

在我的代码中:

#if USER1
    // do something USER1 specific
#endif

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

提前感谢您的帮助。

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

如何使用MSBuild为不同的用户定制构建

我以前遇到过类似的问题,我用这种方法解决了它。

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