写点什么

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

  • 2010-06-01
  • 本文字数:892 字

    阅读完需:约 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

2010-06-01 01:111015
用户头像

发布了 88 篇内容, 共 261.9 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

「架构师训练营」第 5 周总结

guoguo 👻

极客大学架构师训练营

区块链重塑供应链

CECBC

2020-07-04-第五周作业

路易斯李李李

第五周感悟

路人

极客大学架构师训练营

架构师训练营 - 学习笔记 - 第五周

小遵

架构师训练营 No.5 周作业

连增申

week05 作业

Safufu

架构课第5课作业

张瑞浩

常用分布式组件

张瑞浩

架构师训练营week05 summary

Nick

极客大学架构师训练营

架构师训练营 No.5 周总结

连增申

【架构师训练营】week 5 homework

eazonshaw

极客大学架构师训练营

【架构师训练营】第 5 周总结

花生无翼

极客大学架构师训练营

week05学习总结

Safufu

管理堆内存,Rust是怎么做的?所有权!

袁承兴

c++ rust 堆内存管理 内存管理 垃圾回收

分布式缓存架构

chenzt

作业 - 第5周

Happy-Coming

一致性Hash算法

羽球

一致性hash

架构师训练营 第五周 分布式理论知识分享1

极客

架构师训练营第 0 期第5周作业

无名氏

架构师训练营 第五周 【作业】

小K

一致性HASH的golang实现

麻辣

week5-作业 一致性 hash 算法

Geek_z9dmvw

架构师训练 第五周 作业

LiJun

Week 05 作业

鱼_XueTr

负载均衡 hash

一致性Hash算法实现 - Java

羽球

极客大学架构师训练营 一致性哈希

架构师训练营 第五周 学习总结

亮灯

架构师训练营 第五周 作业

亮灯

缓存、异步、集群和分布式等架构模式的实践

dony.zhang

负载均衡 缓存 消息队列 分布式缓存 异步

架构师训练营作业 (第五周)

小遵

架构师训练营 - 第五周 - 学习总结

Anrika

极客大学架构师训练营

OpenWrap:面向.NET兼容于MSBuild的包管理器_.NET_Jonathan Allen_InfoQ精选文章