首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET依赖管理系统

.NET依赖管理系统
EN

Software Engineering用户
提问于 2012-05-16 16:13:32
回答 3查看 1.9K关注 0票数 8

我有一些.NET项目开始变得足够大,值得研究依赖管理解决方案,因此我们不必将二进制文件从一个项目复制到另一个项目。到目前为止,我发现的是:

  • NPanday基于Maven端口。我不知道它是最近几次发布的,但上一次发布是在2011年5月。
  • NuGet似乎正处于积极的开发阶段,它似乎得到了微软的直接支持。有些人抱怨说它“只解决了依赖性问题”,但我不知道它还应该解决什么问题,或者从那以后它是否增加了更多的特性。它最近确实增加了导入二进制文件的能力,作为构建过程的一部分,因此我们不必将它们提交到存储库中。
  • 自从2011年9月以来,重装似乎还在贝塔,一直没有受到任何关注。

最近有使用这些依赖管理工具(或任何其他工作良好的)经验的人会与您分享经验吗?NuGet是否足够成熟,可以用于依赖关系管理?如果没有,它缺少什么?

EN

回答 3

Software Engineering用户

发布于 2012-06-05 19:55:49

NuGet很可能是我的答案。在使用了RubyGems之上的前体(Nu)之后,我可以说,将资源用于某些方面是有帮助的。现在,一旦作业完成,我就得到了可执行文件的修补版本,因为除了远程存储库之外,我们还有一个本地存储库。我不确定他们是否修复了这个问题,但是由于他们接受补丁,所以应该很容易纠正。在.NET领域的所有开源项目上,我们现在都是通过NuGet完成的。这要容易得多,尽管上链出版确实需要一段时间。

OpenWrap是一种选择,但一切都需要构建。屁股有点疼。如果你不能使项目建设正确,它需要一段时间来处理。Openwrap已经尝试了很长一段时间来解决这个问题,而且仍然很尴尬。二进制只分发要容易得多(有时).

另外两个我不熟悉。所以我不能对他们发表评论。

票数 5
EN

Software Engineering用户

发布于 2012-06-06 21:52:29

我刚刚下载了一个最新版本的NuGet,看看上次发生了什么变化。如果我错了,请纠正我(我真的在考虑把我的东西迁移到nuget):

NuGet包仍然没有将"platform“指定为包依赖项。我刚刚安装了"Ninject“,它在子文件夹"packages”中引用了.NET 4.0版本。我认为这是一个最好的猜测,因为我的项目是在4.0,但这是相当危险的假设。我也不明白哪个平台将由包的依赖性来选择。

“包恢复”功能转换了我的解决方案,添加了一个自定义的预构建步骤。我不喜欢修改我的解决方案文件,但这不是问题。我不明白它多久检查一次新版本(我想为私有存储库设置频繁的频率)。

我在这里可能完全错了,但是看起来nuget在升级包版本时不会自动升级项目的依赖性。包还原将为新的包版本创建一个新的子文件夹,但是我必须手动从Visual中选择该文件夹,提前删除引用。

一些包(如jQuery)将在启动时运行嵌入式PowerShell脚本。我真的不喜欢任何自定义执行和PS依赖,它并不总是在窗口上,完全缺失在构建中。顺便说一句,正如我前面提到的MSBuild,对于某些C++构建来说,即使是这种依赖也可能不现实(否则我会错过包恢复功能?)。

最后一个可能并不重要,但是当我有相当多的依赖项时,需要一些合理的时间来恢复它们。

票数 2
EN

Software Engineering用户

发布于 2015-08-14 15:56:22

到目前为止,NuGet仍然是最好的选择。

NuGet作为依赖管理器的主要问题是,它被设想为“开发时”依赖管理器,而不是“构建时”依赖管理器。

开发人员将通过Visual NuGet还原Studio...and包,这可以在修复过程中运行修改项目中文件的PowerShell脚本。

这与我看到的其他依赖管理系统不同,因为添加依赖项并解决依赖关系可以更改引用依赖项的系统。

在PowerShell脚本中没有确保或检查幂等性的内置机制,因此在同一组文件上多次运行它可能不是确定性的。

在开发过程中,似乎很多人使用NuGet来通过Visual拉包,但我不知道如何在构建服务器上使用它。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/148875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档