我目前正在进行的项目由多个团队开发,每个团队负责项目的不同部分。他们都建立了自己的 C# 项目和解决方案,并使用特定于他们自己需求的配置设置。但是,现在我们需要创建另一个全局解决方案,它将所有项目组合并构建到同一个输出目录中。
我遇到的问题是,我发现只有一种方法可以让所有项目都构建到同一个输出目录中——我需要修改所有项目的配置。这是我们想要避免的。我们希望所有这些项目都不了解这种“全球”解决方案。每个团队都必须保留仅使用自己的子解决方案的可能性。
一种可能的解决方法是仅为此“全局”解决方案为所有项目创建一个特殊配置,但这可能会产生额外的问题,因为现在您必须不断地将此配置设置与该特定团队使用的常规设置同步。我们要做的最后一件事是花几个小时试图弄清楚为什么在全局解决方案下构建时某些东西不起作用,仅仅是因为开发人员在他们的配置中检查了一些复选框,但在全局配置中忘记了这样做。
因此,为简化起见,我们需要某种输出目录设置或构建后事件,这些设置仅在从该全局、包罗万象的解决方案构建时才会出现。有没有办法在不改变项目配置的情况下实现这一点?
更新 1
我想我需要提及一些额外的细节:
我们需要这个全局解决方案尽可能接近最终用户在安装我们的应用程序时获得的结果,因为我们打算在需要确定应用程序的哪个部分不工作时使用它来调试整个应用程序在将此错误发送给从事该部分工作的团队之前。
这意味着在全局解决方案下构建时,输出目录层次结构应该与安装后在 Program Files 中的目录层次结构相同,例如,如果我们有 Program Files/MyApplication/Addins 文件夹,其中包含由开发的所有插件不同的团队,我们需要全局解决方案来从插件项目中复制二进制文件并将它们相应地放置在输出目录中。
问题是,开发插件的团队不需要知道它是插件并且应该放在那个文件夹中,所以他们不能将他们的相对输出目录更改为 build/bin/Debug/Addins。