-1

我已经研究了很长时间,但仍然没有找到任何令人满意的解决方案。我们有一些共享库(.csprojs),它们也相互依赖以及第 3 方 dll。我想在几个 .sln 文件中引用这些共享项目。

过去,我们曾尝试使用 NuGet 来完成这项工作。我们制作了所有共享组件包并有一个本地提要。然而,当我们想要更新我们的共享组件时,它经常会在更新过程中搞砸并且不可靠。它给我们带来的麻烦多于它的价值,老实说,这让我们不想将共享代码添加到我们的共享库中。

所以,现在我相信在每个解决方案中只引用共享项目会更好,这很容易,但现在还有一个问题:

我们使用功能分支,共享代码不是分支的一部分。我们有一个类似于以下的结构:

/App1
  /Development  (Folder that just contians Main branch)
     /Main
  /Features   (Folder that contains all Features)
     /F1
/App2
  /Development
     /Main
  /Features
     /F1
     /F2
/Shared
   /Development
     /Main

但是,如果我们对任何功能中的共享进行更改 - 并且它指向 /Shared/Development/Main 中的代码,那么它只会针对我的所有功能进行更新,并且我们不会保留共享更改的记录。

解决这些问题的正确方法是什么?有没有更好的方法在解决方案之间共享组件?

4

1 回答 1

0

我们已经解决了我们的问题的答案:

  1. 获取所有共享的 .csproj 文件并将它们放在自己的 Main 中(放入单独的共享 .sln 中)。
  2. 然后为每个库构建单元测试。
  3. 将所有其他解决方案指向使用这些 .csproj 文件作为项目参考。这些解决方案存在于另一个主分支或功能分支中 - 但它们将始终指向共享的主分支。
  4. 最后设置构建定义以构建/测试签入和夜间构建。

通过第 4 步,您可以确保如果有人更改了您共享项目中的任何内容,那么单元测试将很快发现它。

我们仍然可以使用 NuGet 作为包装器,将它们分发给其他 3rd 方 - 但对于内部更改,此流程似乎最适合快速开发/测试。

于 2015-10-22T15:32:34.820 回答