【发布时间】:2017-10-22 17:22:17
【问题描述】:
我正在开发一款游戏及其引擎,并且一直在同时开发它们,因此有一个解决方案文件引用了以下(简化)目录结构中的所有项目:
Root
├───Engine
│ ├───Library1
│ ├───Library2
│ └───Library3
├───Game
│ ├───Game
│ ├───Tool1
│ └───Tool2
└───GlobalSolution.sln
构建过程编译所有引擎库并将它们链接到一个静态库,而游戏是一个可执行文件,它与生成的静态库链接,类似于某些工具。
不幸的是,我将所有内容都放在同一个 git 存储库中,而我希望为引擎和当前游戏分别拥有一个存储库,因为引擎本身并不是很有用(尽管它可以自行编译),但我可能会想要创建另一个我应该能够在其自己的存储库中托管的游戏。
我能想到的唯一结构如下:
Root
├───Engine
│ ├───Library1
│ ├───Library2
│ ├───Library3
│ └───EngineSpecificSolution.sln
├───GameA
│ ├───GameASpecifics
│ ├───ToolA1
│ ├───ToolA2
│ └───GameASpecificSolution.sln
└───GameB
├───GameBSpecifics
├───ToolB1
└───GameBSpecificSolution.sln
在这种情况下,我只需要通过将$(SolutionDir)\..\Engine\Build\ 添加到游戏解决方案的库路径来引用引擎库。不幸的是,我失去了在一个 VS 窗口中拥有所有东西(引擎和游戏)的便利性,并且需要在单独的窗口中编码,不是吗?当然,每次我对引擎进行更改时,我都必须手动编译游戏解决方案,而不是让 VS 一次性处理所有项目。
对于如何将项目正确地解耦到多个存储库并尽可能方便地使用这些存储库,有什么建议吗?
【问题讨论】:
标签: git visual-studio projects-and-solutions