速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:111036
用户头像

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

关注

评论

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

6个很受用的 JavaScript 代码片段

高端章鱼哥

Tik Tok账号被限流什么原因?怎么解决?

Ogcloud

TikTok tiktok运营 tiktok直播 TikTok养号

《财富》杂志公布2024年《财富》全球500强

财见

API 接口测试的发展前景展望

Noah

SnailSVN Pro for mac(SVN客户端)使用教程

Rose

微店商品数据获取新姿势:商品列表接口深度剖析

tbapi

微店API 微店商品列表接口 微店商品列表API

内测分享:如何把小程序游戏的运行到iOSApp中

Geek_2305a8

Native Instruments Komplete Kontrol for mac(音源制作软件)

Mac相关知识分享

Mac软件 音乐制作软件

Cisdem PDFMaster for mac(专业PDF编辑转换器)v6.5.0激活版

Mac相关知识分享

PDF转换器

Earth 3D for Mac(3D地球模拟软件)v8.1.3免激活版

Mac相关知识分享

GPU云服务器是什么?有什么用?

Ogcloud

gpu 服务器 云服务 云服务器 GPU云服务器

好用的mac硬盘测速工具 Blackmagic Disk Speed Test免费版

Rose

VMware Fusion Pro 13密钥 for Mac(VM虚拟机)v13.5.2中文版

Rose

功能强大的FTP(文件传输协议)客户端Transmit 5 for Mac中文破解版

Rose

华为云IoTDA控制台全新升级,来体验35万+开发者使用的平台

华为云开发者联盟

控制台 华为云IoTDA 设备接入 企业号 8 月 PK 榜 2024企业号8月pk

Tableau Desktop 2019 for Mac(全能数据分析工具) v2019.1.0中文版

Mac相关知识分享

数据分析工具

【YashanDB数据库】数据库运行正常,日志出现大量错误metadata changed

YashanDB

yashandb 崖山数据库

对比速览 | Alluxio 企业版 v.s. 社区版

Alluxio

模型训练 大数据分析 大模型 Alluxio GPU 利用率

Experience Design 2020 (xd)中文破解版 mac/win

Rose

Jenkins的安装教程

禅道项目管理

技术 jenkins 应用安装

Spring Boot 中使用 JSON Schema 来校验复杂JSON数据

EquatorCoco

json Spring Boot 后端

iStat Menus for Mac(系统活动监控器) v6.73 (1230)中文激活版

Mac相关知识分享

系统监控工具

免费文档软件:提高效率的顶级选择

爱吃小舅的鱼

文档管理 免费

Keka for Mac(压缩解压工具) 1.3.6中文版

Mac相关知识分享

文件压缩软件

针对一个有意思的钓鱼免杀样本的详细分析

我再BUG界嘎嘎乱杀

黑客 网络安全 安全 信息安全 网安

数据库管理开发工具Navicat for MySQl 中文汉化版 Mac/win

Rose

FSNotes for mac(文本处理软件)v6.9.0中文免激活版

Mac相关知识分享

国内项目管理软件大比拼:找到你的最佳工具

爱吃小舅的鱼

项目管理

企业如何构建全面的指标管理体系?

袋鼠云数栈

指标体系 指标 指标平台 指标数据安全 指标生命周期

Lightroom Classic 2024破解版 LrC2024中文版下载

Rose

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