【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

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

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

关注

评论

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

Serverless 让我们的运维更轻松

领创集团Advance Intelligence Group

#Serverless

TASKCTL 连接不到服务器的4种情况

TASKCTL

分布式 调度引擎 ETL 自动化运维 调度任务

TDesign 更新周报(2022 年 4 月第 3 周)

TDesign

过去一周热点回顾|Hoo虎符研究院 区块链简报 20220418期

区块链前沿News

虎符交易所

图数据库|正反向边的最终一致性——TOSS 介绍

NebulaGraph

图数据库 知识图谱

【ELT.ZIP】OpenHarmony啃论文俱乐部——浅析稀疏表示医学图像

ELT.ZIP

OpenHarmony 医学影像 稀疏矩阵 ELT.ZIP

OceanBase 杨传辉参与数据库技术与应用发展研讨会

OceanBase 数据库

oceanbase

以OceanBase为例,分析事务型评测基准对分布式数据库的适用性

OceanBase 数据库

分布式数据库 oceanbase

博云 BeyondCMP 云管理平台 5.6 版本发布

BoCloud博云

云管理平台

Android C/C++层hook和java层hook原理以及比较

云智慧AIOps社区

Java android 开发技能 hook

豆瓣评分9.0,时隔6年,“Linux命令行圣经”新版终于来了!

图灵教育

Linux shell脚本编程

火遍全网的MBTI人格测试,为什么会有那么多人相信?

小炮

MBTI

国产化云平台如何实现多云管控,黄河云来“打样儿”

BoCloud博云

国产化 云管理平台

易周金融观点:遏制NFT金融化等打下监管良基

易观分析

NFT

TASKCTL 变量的函数表达式运算

TASKCTL

批量任务 调度引擎 ETL 自动化运维 调度任务

高效进行接口测试,简单易懂!

Liam

测试 Jmeter Postman swagger 测试工具

移动端日历组件设计与实现

CRMEB

优秀程序员的30种思维(29/100)

hackstoic

技术思维

Apache Doris (incubating) 1.0 Release 版本正式发布!

ApacheDoris

数据库 大数据 开源 OLAP apache doris

阿里云代码托管平台,不限容量,免费使用

阿里云云效

云计算 阿里云 代码管理 代码托管 阿里云代码托管

什么是代码加密?基于云效 Codeup的代码仓库加密是如何实现的

阿里云云效

云计算 阿里云 代码管理 Codeup 代码加密

用css制作旋转的立方体

云智慧AIOps社区

CSS 前端 大前端 3D css特效

物联网低代码平台常用《组件介绍》

AIRIOT

开发 物联网 平台搭建、

如何做好任务管理,手把手教你怎么做最高效的任务管理

阿里云云效

云计算 阿里云 云原生 研发团队 项目协作

【ELT.ZIP】OpenHarmony啃论文俱乐部——这些小风景你不应该错过

ELT.ZIP

神经网络 OpenHarmony ELT.ZIP

【数据安全与流通专题】星环科技春季新品发布周

星环科技

书单 | “阿里云数字新基建”系列丛书全家福来啦!

博文视点Broadview

HLP分词后的文本如何在web端高亮显示

lo

前端 4月月更

【愚公系列】2022年04月 二十三种设计模式(零)-简单工厂模式(Simple Factory Pattern)

愚公搬代码

4月月更

深圳助力建设全国「数据交易」大市场,「隐私计算」技术赋能数据要素安全流通

洞见科技

LSM-Tree - LevelDb了解和实现

懒时小窝

LSM树 LSM-Tree

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