C# 如何使用MSBuild为不同的用户自定义生成
我有一个名为TestProduct.sln的C#项目 不幸的是,这取决于程序的用户 必须在某一点上做出不同的反应。我怎么知道 为哪个用户编译它的程序? 我在构建时是否必须使用DefineConstants,例如:C# 如何使用MSBuild为不同的用户自定义生成,c#,visual-studio,msbuild,C#,Visual Studio,Msbuild,我有一个名为TestProduct.sln的C#项目 不幸的是,这取决于程序的用户 必须在某一点上做出不同的反应。我怎么知道 为哪个用户编译它的程序? 我在构建时是否必须使用DefineConstants,例如: msbuild /p:DefineConstants=USER1 TestProduct.sln 在我的代码中: #if USER1 // do something USER1 specific #endif 还是我必须做一些完全不同的事情来记录被通缉的行为 提前感谢你的帮
msbuild /p:DefineConstants=USER1 TestProduct.sln
在我的代码中:
#if USER1
// do something USER1 specific
#endif
还是我必须做一些完全不同的事情来记录被通缉的行为
提前感谢你的帮助
编辑:很抱歉我表达错了,我必须澄清一下情况。用户是错误的措辞,我不得不称之为客户。对于每个客户,都有一个启动msbuild命令的批处理文件。在msbuild命令中,我想告诉buildbinary将为哪个客户提供它。我过去也遇到过类似的问题,我用这种方式解决了这个问题 我使用
$(username)
环境变量获取用户名。
然后我有多个名为
USERNAME.doit.bat
的批处理文件,在构建后事件VS运行$(USERNAME.doit.bat
)。通过这种方式,每个用户都有自己的自定义生成后操作的文件批处理。我过去也遇到过类似的问题,我用这种方式解决了这个问题
我使用$(username)
环境变量获取用户名。
然后我有多个名为
USERNAME.doit.bat
的批处理文件,在构建后事件VS运行$(USERNAME.doit.bat
)。这样,每个用户都有自己的自定义生成后操作文件批。您可以使用$(USERNAME)读取USERNAME环境变量。@Action Heinz,您能从dude和cristallo的建议中获得有用的信息吗?我同意他们的观点,使用环境变量将是解决这个问题的好方法。不是同一个问题,但是一个很好的参考:您可以使用$(USERNAME)来读取USERNAME环境变量。@Action Heinz,您能从dude和cristallo的建议中获得有用的信息吗?我同意他们的观点,使用环境变量将是解决这个问题的好方法。不是同一个问题,而是一个很好的参考: