在我们的一个项目中,我们调整了我们软件的某些部分以适应特定的客户要求(例如徽标和关于框)。每个客户都有自己的版本,其中不包含其他客户的详细信息。目前,这是通过预处理器指令和每个客户的单独构建配置来实现的。然而,随着解决方案中项目数量的增加,维护这些配置变得越来越困难(而且它也变得混乱)。本质上,所有配置都是名为“Release X”、“Release Y”、“Release Z”的“Release”构建。它们都是相同的,除了一个用于区分客户构建的预处理器指令(例如,使用正确的应用程序图标)。此外,配置必须相同,以提供跨构建的一致性。
对于构建服务器上的构建,我可以创建一个 MSBuild 脚本,设置“DefineConstants”属性并在“发布”配置中构建解决方案。在 Visual Studio 中做同样的事情怎么样?我希望开发人员仍然能够在本地为特定客户运行构建(出于调试/测试目的),但我真的想摆脱特定客户的配置。因为如果我在发布版本中更改某些内容,它不会直接传播到客户特定的版本,我必须为它们中的每一个都重新做一次。
任何想法如何简化这些构建?