【发布时间】:2021-05-21 13:21:45
【问题描述】:
在我们的 C# 代码中,我们有一个带有布尔变量 IS_FEATURE_X_ENABLED 的静态类,我们希望能够在编译期间设置此变量,这意味着当我们调用 MSBuild.exe 时,该值将作为参数包含在内。例如:
MSBuild.exe FeatureFlexibleApp.sln -p:IsFeatureXEnabled=true
这样做的原因是我们希望能够构建具有特定配置的二进制文件,但在编译之前这个值是未知的。如果客户想要这个功能,他们可以在我们的网页上选择它,二进制文件将在 Jenkins 服务器上构建和打包,然后下载链接将发送给用户(通过电子邮件或将显示在网页上如果他们等待编译完成)。在这种情况下,只使用了一个变量,但实际上这个数字不必有限制(因此预先构建所有可能的组合不是一个可行的选择)。
【问题讨论】:
-
@Slate 到目前为止,第一个答案是与我的问题最接近的答案,但它缺少使用示例,并且 canton7 在下面的答案中提供了一个(带有预处理器指令)。没有一个例子,我仍然无法弄清楚。不过,我感谢您的评论,因为它会给我一个重要的提示。