如何在 .Net 项目中使用“lib”文件夹来构建依赖项?

Tom*_*les 5 .net c# svn continuous-integration

我需要将外部 dll 依赖项(自动映射、其他...)置于可以在构建服务器上构建它们的情况。我还想让它们进入 subversion,这样构建服务器就可以拾取它们。

所以我对整个“lib”文件夹很陌生。我搜索过谷歌,但似乎有点假设,这里没有做什么的基础知识。我拥有的书没有涉及这一点。我已经很长时间没有在工作中遇到导师了,甚至没有人可以向我提问……我真的很想了解我应该在这里做什么的基础知识。

我用 .Net 编写,使用 Jenkins 作为我的 CI 服务器(对它来说是新的)和 msbuild(对它也是新的)。我听到 svn:externals (不计算)、NuGet ....

请帮忙!

blo*_*aak 4

假设我的解决方案称为 MySolution 并存储在 C:\MySolution 中,那么我有三个二进制文件目录,全部由源代码管理管理。

  • 供应商第三方框架的源代码。如果需要,它们会被构建和签名(用我的密钥),并被视为代码是我自己的。有时,这对于“修复”框架中的缺陷或调试其源代码以了解其失败的原因是必要的。
  • 由 nuget 管理的src\packages模块(我希望将其与我的“lib”文件夹结合起来,但尚不支持)
  • lib编译的库,我没有源代码,并且不由 nuget 管理。

(我省略了“src”、“sample”、“setup”、“documentation”和“scripts”等文件夹,以保持特定于OP的答案)。

最近几个月,我开始在 lib 文件夹中为“packages”创建自己的 nuget 包,这样我就可以将它们全部迁移到“packages”。它发布到私有 nuget 服务器。它还简化了跨解决方案的二进制文件的管理。

我过去常常使用外部程序,但一段时间后它们会带来分支噩梦,因为你必须分支并固定外部依赖项。有了 nuget,就不再需要这个了。