考虑一个解决方案有 2 个项目:ProjectA 和 ProjectB(都是 MonoTouch 应用程序)和 ProjectBase。ProjectBase 包含整个应用程序,但 Main.cs 文件(带有入口点)位于 ProjectA 和 ProjectB(引用 ProjectBase)中。这样,运行任何 A/B 项目都会从 ProjectBase 启动应用程序。
现在,我只想为 ProjectA 覆盖一些东西(它可能是 XIB 文件、图像或 .NET 类)。有什么方法可以设置解决方案,以便 ProjectBase 生成的代码和资源与 ProjectA/ProjectB 中的代码和资源合并,后者获胜?
我发现(可能是一种古怪且有点未定义的行为驱动方式)覆盖 XIB:我只是将 XIB 放入 ProjectA 和 ProjectB,将其命名为与 ProjectBase 中的名称相同,然后将其从 ProjectBase 中排除。虽然 MonoDevelop 会编译所有项目,但似乎启动项目的 XIB 优先,因此我在启动 ProjectA 时会看到特定于 ProjectA 的 XIB,而在启动 ProjectB 时会看到特定于 ProjectB 的 XIB。但是,我不确定它的行为方式是否应该如此,此外,从构建日志中可以看出,所有项目最终都会产生资源。
PS如果之前有人问过这个问题,我很抱歉,但我无法在 SO 上找到类似的问题。