首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenWrap vs NuGet

OpenWrap vs NuGet
EN

Stack Overflow用户
提问于 2010-11-23 22:31:05
回答 3查看 7.7K关注 0票数 54

OpenWrap和NuGet有什么不同。你更喜欢什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-24 01:35:26

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

因此,我们的功能旨在动态解析依赖关系,无论是复合WPF应用程序、web应用程序开发还是系统范围的实用程序。这使得我们的实现与NuGet所做的非常不同。

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

  • 不依赖于solution
  • Supports
  • ,专注于在命令行而不是UI中提高效率
  • 不依赖itself.
  • OpenWrap,OW自带了自己的命令系统,允许您开发、部署和执行自己的命令,无论是从我们的solution
  • Supports( o.exe工具)还是从MSBuild powershell使用OpenWrap来构建和部署自己,并且在此过程中的每一步都是xcopy友好的。
  • 有一个系统范围的软件包存储库,因此您可以在运行时部署您的实用程序命令一次,而不是每个powershell动态依赖解析一次。如果你想要做到这一点,你可以在一个包中创建新的依赖类型,并让OpenWrap帮助你在你的repositories
  • Stays中使用它们,远离learn
  • Support和OpenWrap的复杂的openwrap包和NuGet包,并选择简单的基于文本的DSL,它是learn
  • Support集成构建的简单和快速的,所以你可以一次性构建和打包你的解决方案
  • 支持网络共享上的自定义存储库,你可以从openwrap外壳或msbuild DSL依赖级别发布到这个共享上。自动选择包的哪个版本组合是resolved
  • Resharper集成意味着您对依赖项所做的任何更改都会反映在real-time
  • TeamCity集成的VS中,这意味着您可以使用完全相同的过程来构建、打包和部署您的包,无论是从MSBuild脚本还是从OpenWrap
  • Support构建器,这意味着您可以更改在测试运行器中触发构建的方式,并将测试与packages
  • Uses支持的MSBuild扩展点一起发布以包含程序集引用,而不会影响您构建的代码。一旦你发布了二进制文件,你就没有打开包装代码的依赖,只有在构建时才有。

这只是为了区别,因为这就是您所问的,所以我不会为我们与其他包管理器所做的相同之处而困扰您。

票数 64
EN

Stack Overflow用户

发布于 2011-01-19 03:25:27

只是想加入一些来自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扩展库安装,并且很容易开始使用immediately.
  • NuGet支持将客户端指向包含一组包的目录(或网络共享),并自动将其视为存储库。所以如果你不想和OData打交道,你也没必要这么做。但我们也包含了一个库的实现,所以在任何情况下都不需要手动处理OData/XML。
  • NuGet不要求您将NuGet的任何部分作为应用程序的一部分进行部署。它不插手,专注于自动化您在没有NuGet的情况下获取和部署依赖项所需的步骤。需要明确的是,正如Seb指出的那样,OpenWrap也没有。我只想说清楚,NuGet也不需要这样做。
票数 58
EN

Stack Overflow用户

发布于 2011-01-19 03:31:27

NuGet的一个关键原则(也是与OpenWrap的一个重要区别)是它不会试图改变您的工作方式。相反,它使你今天已经做的事情变得更容易。

例如,假设您正在尝试使用Foo库,该库依赖于Bar库。今天,你必须手动找到这些库,将它们复制到你的机器上,并添加对它们的引用。然后更新的版本将会出来,你将通过类似的动作来更新它们。

在这种情况下,NuGet和OW都会使引入这些引用变得很容易,但关键的区别是NuGet以一种完全非侵入性的方式做到这一点。也就是说,它会将二进制文件放到你的机器上,并以同样的方式引用它们,就像你手动完成一样。这样做之后,您的项目文件就完全“正常”了,在构建或运行时都不会与NuGet有任何关联。

这意味着,如果您通过NuGet获得一些库,并将您的项目置于源代码管理中,那么其他开发人员就可以在根本不需要NuGet的情况下使用您的项目。

OpenWrap方法也有优点,但要走这条路,您必须愿意一直使用OpenWrap,并且不能轻易地放弃它。

还有许多其他区别(比如NuGet中的丰富和支持),但这是我认为两者之间最根本的区别。

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

https://stackoverflow.com/questions/4256994

复制
相关文章

相似问题

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