Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用MSBuild为不同的用户自定义生成_C#_Visual Studio_Msbuild - Fatal编程技术网

C# 如何使用MSBuild为不同的用户自定义生成

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 还是我必须做一些完全不同的事情来记录被通缉的行为 提前感谢你的帮

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

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的建议中获得有用的信息吗?我同意他们的观点,使用环境变量将是解决这个问题的好方法。不是同一个问题,而是一个很好的参考: