开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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

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

关注

评论

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

Wallys/IPQ5018 and QCN6122: The Future of Wireless Networking

Cindy-wallys

ipq5018 QCN6102 QCN6122

过去的90天,ODC 发生了哪些新的改变?

OceanBase 数据库

数据库 oceanbase

一文掌握 Go 文件的写入操作

陈明勇

Go golang 后端 文件写入 三周年连更

支撑百万商户、千亿级调用:微盟如何通过链路设计降本40%?

TakinTalks稳定性社区

低代码起势,程序员闷头开发的日子结束了

引迈信息

低代码 快速开发 JNPF

为企业发展赋能,华为云网站安全解决方案,保护企业网络安全

科技怪授

阿里云计算巢产品负责人何川:计算巢,通过数字化工具加速企业数字原生

云布道师

云计算 计算巢

我决定给 ChatGPT 做个缓存层 >>> Hello GPTCache

Zilliz

Zilliz ChatGPT LLM gptcache

未来源码|什么是数据集成?超全的SeaTunnel 集成工具介绍

MobTech袤博科技

落地“旅游+”数字赋能:实现智慧旅游协同创新发展

加入高科技仿生人

低代码 数字化 旅游业 数字转型

“930大促”日活增速超40% ,哈啰如何用预案高效应急?

TakinTalks稳定性社区

探究光明源智慧公厕系统的科技创新与管理优势

光明源智慧厕所

智慧城市

为什么FTP会随着时间的过去而变慢?

镭速

使用appuploader工具发布证书和描述性文件教程

雪奈椰子

Chrome 浏览器的更新导致 jQuery 反复发版,只因 :has() 这个伪类

茶无味的一天

CSS jquery chrome 前端 浏览器

华为云网站安全方案为企业数据保驾护航

科技说

BNB代币燃烧模式dapp系统开发合约详情

开发v-hkkf5566

软件测试/测试开发丨Python 算法与数据结构面试题

测试人

软件测试 面试题 测试开发

瑞云科技副总经理黄金进受邀出席2023广东超聚变生态伙伴大会并作主题演讲

3DCAT实时渲染

元宇宙 实时渲染 云流化 3D实时云渲染 云化XR

求助 iOS 分发的最佳实践

雪奈椰子

新一代异步IO框架 io_uring | 得物技术

得物技术

「ChatGPT最强竞品」爆火:不限量不要钱免注册!一手实测体验在此

Openlab_cosmoplat

人工智能 开源社区 openai ChatGPT

杨志丰:一文详解,什么是单机分布式一体化?

OceanBase 数据库

数据库 oceanbase

瓴羊Quick BI与网易有数,看国产BI工具如何起势

夏日星河

研发运维双管齐下!Seal AppManager的正确打开方式

SEAL安全

企业号 4 月 PK 榜 Seal软件 SealAppManager

华为云全流程等保服务,帮助企业守护信息安全

科技怪授

多云之下,京东云的降本增效之道

人称T客

推平“知识高峰”,AI将如何影响我们的学习?

Alter

华为云网站安全解决方案,助力企业安心稳步发展

科技说

阿凡达Sun4.0众筹开发系统技术搭建

薇電13242772558

NFT

一篇文章了解SoapUI接口测试的全部流程

Liam

测试 接口测试 测试工具 API 测试

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