【问题标题】:How should I manage/declare dependencies between open source C# projects?我应该如何管理/声明开源 C# 项目之间的依赖关系?
【发布时间】:2011-03-01 00:19:15
【问题描述】:

我有一个 C# 游戏(具体来说是 roguelike),我正在清理它以开源。我想采取的一个步骤是将其分成三个不同的部分:

  1. A simple package of utility classes,二维数组、向量等。
  2. 一个终端 UI 包,为您提供类似诅咒的显示。这取决于 1。
  3. 实际游戏,使用 1 和 2。

现在,这些都是同一个解决方案中的独立项目,但我有点想让它们完全独立的项目(在“开源项目”的意义上,而不是“Visual Studio 项目”一词的使用) 拥有自己的名称和存储库。我认为,至少,即使您不构建游戏,#1 通常也很有用,而且我不希望有人为了获得一些方便的功能而必须构建整个游戏。

如果我拆分解决方案,我不确定如何处理依赖关系。如果有人决定要同步游戏,我应该如何确保他们也获得 1 和 2?

  1. 在游戏存储库中包含构建的依赖 .dll?
  2. 只需记录“您需要这些其他项目,并且它们必须位于与游戏相关的路径中”。
  3. 只需将其全部留给一个大型解决方案和一个存储库即可。
  4. 我没有想到什么?

【问题讨论】:

  • 你的内容管理系统是什么(Subversion、git、Mercurial)?
  • bitbucket.org 上的 Mercurial,很有可能。

标签: c# open-source project-management dependencies


【解决方案1】:

我会选择你的选项 1。如果我作为用户想要从事游戏项目,我不关心其他两个项目,但游戏需要它,所以包含 dll。

如果我想对实用程序类进行更改,那么我就对实用程序项目进行更改。

这就像我在自己的地方使用别人的开源项目一样。当对方的 lib 需要更改时,我会去那里进行更改,然后获取该项目的最新 .dll 作为依赖项。

【讨论】:

  • 这也是我倾向于的。感谢您的第二意见!
  • 生成的文件从不属于源代码管理。 -1
  • 你在说什么?什么生成的文件和什么源代码控制?我的帖子中没有提到任何生成的文件或源代码管理?请澄清。
猜你喜欢
  • 2017-09-24
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 2012-01-01
相关资源
最近更新 更多