BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

OpenWrap:面向.NET兼容于MSBuild的包管理器

| 作者 Jonathan Allen 关注 530 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2010年6月2日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

包管理器在Linux世界中是再平常不过的东西了,用于从各种来源中获取依赖。优秀的包管理器提供了统一的方式来获取程序库和应用,同时还会得到正确版本的依赖,我们不用担心这些程序库和依赖的来源,包管理器会帮我们打点好一切。对于Ruby程序员来说,使用最多的包管理器是RubyGems;在Perl世界中则是CPAN module,它位于Comprehensive Perl Archive Network

对于.NET开发者来说却没有这样一个利器。即便只使用微软自己的组件,所需的程序库也散布在微软众多的站点和其他一些依赖站点如SourceForge和CodePlex上。随着人们对非微软项目(如Castle Windsor和NHibernate等)信任度的不断提升,这些问题也逐步得到了解决。

Sebastien Lambla在Progressive.NET的演讲中介绍了OpenWrap:以二进制形式管理依赖的项目。Robert Pickering总结了OpenWrap的使用方式:

包以zip形式存放在中央服务器上。OpenWrap提供了一个DSL,这样你就可以指定使用哪个包、哪个版本了(其所用的语法非常灵活,可以指定最小和最大的版本号)。OpenWrap提供了一套msbuild目标,这样就可以将基于DSL的描述插入到构建过程中了,当然,这里指的是Visual Studio。接下来,这些msbuild目标会负责下载所需的项目并将依赖存储在本地机器上的中央缓存中,这个中央缓存能够提供项目构建所需的引用。

OpenWrap并非.NET生态圈中首个包管理器,最近发布的Bricks项目的目标也是如此,不过Bricks项目目前只提供了命令行工具,此外还有WebGAC,奇怪的是它还需要用到Apache。

由于OpenWrap还处在孵化期,因此很多地方都需要手工编辑项目文件才能调用OpenWrap而非C#编译器。通过在“包装描述器”中列出依赖,OpenWrap能自动下载必要的DLL并添加到项目中。由于引用关系是由OpenWrap管理的,因此他们并不会出现在解决方案管理器的引用文件夹中。

包是基于ZIP格式的,这种文件格式对于Windows程序员是耳熟能详的,此外,由于将头信息存储在文件末尾,因此它的可扩展性也是非常棒的;因为这部分空间是无用的,因此可以存放数字签名信息。

查看英文原文:OpenWrap – A Plan for MSBuild Compatible Package Manager for .NET

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT