【问题标题】:Development process with multiple solutions in nugetnuget中具有多种解决方案的开发过程
【发布时间】:2017-04-06 22:56:01
【问题描述】:

我想创建一个包含多个解决方案的存储库,每个解决方案都将发布到本地 nuget 服务器。

但是当我想编辑解决方案 A 并使用另一个解决方案 B 测试它时,我不明白如何进行开发过程,该解决方案 B 通过 nuget 包引用解决方案 A,而不在每次构建后在 nuget 服务器上发布解决方案 A?如果我在解决方案 B 中进行项目引用,它将带来正确的依赖关系,我不想要它。

要清楚,例如:我想在解决方案 B 中添加一些功能,为此我需要更改解决方案 A。解决方案 B 对解决方案 A 有 nuget-reference。如果我更改解决方案 A,我必须发布它到 nuget 服务器,然后等到 nuget 服务器更新,然后才能使用解决方案 B 对其进行测试,这对我来说看起来很糟糕。

并回答我为什么需要它的问题: 我们正在构建微服务,并决定在单独的解决方案中开发每个微服务,并在其独立解决方案中开发每个共享库。所有这些都在一个存储库中:-)

【问题讨论】:

  • 去掉nuget包,添加对项目的直接引用。
  • @SamAxe 我这样写对我来说似乎很糟糕,f.e,我的大学或者我可以忘记删除直接引用
  • 我同意山姆的观点。我们公司也在做同样的事情,调试 nuget 包是不可能的。看看我们也在考虑使用 Nuget Package Switcher 来缓解此类问题。它将参考从 nuget 参考更改为项目参考:github.com/rsuter/NuGetReferenceSwitcher

标签: c# .net visual-studio nuget


【解决方案1】:

nuget中多种解决方案的开发过程

NuGet 作为 Microsoft 开发平台的包管理器具有许多优势,但这并不意味着它没有缺陷。正如您所遇到的,如果引用的项目被频繁修改,我们必须重新构建它,创建 nuget 包,将其发布到 nuget 服务器,并等待每次修改的 nuget 服务器更新。那会带来很多无聊的工作。为了解决这个缺点,项目到项目的引用应该是一种更好的方法。所以应该推荐 Sam 和 Ieemac 的建议。

项目到项目引用的优点是它在构建系统中的项目之间创建了依赖关系。如果依赖项目自上次构建引用项目后发生更改,则将构建依赖项目。文件引用不会创建构建依赖项,因此可以在不构建依赖项目的情况下构建引用项目。

所以最好的解决方案是在被引用的项目经常被修改的情况下,应该推荐项目到项目的引用,在将引用的项目分享给他人或发布时更适合使用nuget引用.就像NuGet Reference Switcher 做的那样。

【讨论】:

  • 但是我们使用的是docker,所以我需要复制Dockerfile中的所有外部项目目录才能编译一些服务。使用 nuget,项目将自动包含在内。这就是我们想要使用 nuget 包而不是直接引用的方式。
  • 感谢您的解释。您必须使用 nuget 包而不是直接引用,在这种情况下,重建、创建 nuget 包、将其发布到服务器并非不可避免。这是因为 nuget 通过将程序集打包为一个整体来管理程序集。任何修改都需要重新打包发布。
猜你喜欢
  • 2011-11-17
  • 1970-01-01
  • 2011-11-09
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 2011-05-17
  • 2021-06-21
相关资源
最近更新 更多