OpenWrap和NuGet的区别

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

OpenWrapp和NuGet的区别是什么?你更喜欢什么?

提问于
用户回答回答于

OpenWrapp是一个开源项目,它不仅在构建时而且在运行时提供应用程序中的依赖管理。

因此,我们的特性是针对依赖项的动态解析,无论是用于复合wpf应用程序、web应用程序开发还是系统范围的实用程序。这使得我们的实现与NuGet所做的非常不同。

所以,这里有一些不同的事情(我可能会忘记很多,但好吧)。

  • 不依赖visual studio,而只关注命令行而不是ui中的生产力。
  • OW不依赖于Powershell,它提供了自己的命令系统,允许您开发、部署和执行自己的命令,无论是从我们的shell(o.exe工具)还是从MSBuild本身。
  • OpenWRAP使用OpenWRAP来构建和部署自己,并且在每一步都是xCopy友好的。
  • 有一个包的全系统存储库,因此您可以在每个解决方案中部署一次实用程序命令,而不是一次。
  • 在运行时支持动态依赖项解析,如果要这样做的话
  • 具有可扩展的包格式,因此可以在包中创建新类型的依赖项,并让OpenWrapp帮助您在应用程序中使用它们。
  • 既支持OpenWrapp包,也支持NuGet包和存储库。
  • 远离xml和OData的复杂性,而采用简单的基于文本的DSL,学习起来既简单又快捷。
  • 支持集成构建,这样您就可以一次性构建和打包解决方案。
  • 支持网络共享上的自定义存储库,您可以将这些存储库发布到openackshell或msbuild任务中。
  • 提供依赖级别,自动选择解决包的哪个版本组合。
  • ReSharper集成意味着您对依赖项所做的任何更改都会实时地反映在vs中。
  • TeamCity集成意味着您可以使用完全相同的过程,从msBuild脚本或命令行构建、打包和部署包。
  • 可扩展构建器意味着您可以更改在OpenWrapb中触发构建的方式。
  • 支持测试运行程序和随包发送测试
  • 使用受支持的MSBuild扩展点来包含程序集引用,并保留单独构建的代码。一旦你发送了二进制文件,不依赖于打开包装代码。只在建造的时候。
用户回答回答于

只是想加入一些来自NuGet方面的想法。Seb遗漏了一些值得指出的细节。

  • 虽然我们的主UI是基于VS的,但核心NuGet程序集与VS没有任何关系。ASP.NET网页产品具有基于Web的包管理器。我写了一篇博客文章,展示了使用NuGet构建一个在运行时自我更新的网站的一个例子。http://haacked.com/archive/2011/01/15/building-a-self-updating-site-using-nuget.aspx
  • Nuget提供了功能强大的PowerShell控制台。Nuget包可以向控制台添加新命令。见http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/。和以前一样,这是NuGet的一个客户端,NuGet核心不需要它。
  • Nuget可以通过VS扩展库安装,并且非常容易立即开始安装。
  • Nuget支持将客户端指向包含一组包的目录(或网络共享),并将其自动视为存储库。所以如果你不想和OData打交道,你就不必这么做。但是,我们还包括库的实现,因此在任何情况下都不需要手动处理OData/XML。
  • Nuget不要求您将NuGet的任何部分部署为应用程序的一部分。它不需要处理,而是专注于自动化在没有NuGet的情况下获取和部署依赖项的步骤。要明确的是,正如Seb所指出的,OpenWrapp也是如此。我只想说清楚NuGet也不需要这个。

扫码关注云+社区

领取腾讯云代金券