时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

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

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

关注

评论

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

YashanDB的数据压缩技术:提高效率的妙招

数据库砖家

基于 eBPF 和 Go 实现透明代理

俞凡

golang 架构 ebpf

更懂中国工厂:国产SPC软件的本土化优势解析

合肥迈斯软件

质量检测 质量管理系统 质量管理QMS系统 产品质量管理 质量追溯

CST工作室套装提供的网格类型有哪些?CST studio suite代理商

思茂信息

cst CST软件 CST Studio Suite

变量名越怪,JVM 越快?

程序猿DD

2025年GEO优化服务商推荐:森潮GEO支持多平台AI搜索排名优化

森潮全域科技

服务器被攻击!原因竟然是他?真没想到...

王磊

Metasequoia 4 for Mac(水杉3D建模器)

小石头寻母记

低代码的发展历程

JeeLowCode低代码平台

BeeWorks Meet:私有化视频会议解决方案

BeeWorks

即时通讯 IM 私有化部署

Typora for mac 强大的Markdown写作软件

小石头寻母记

基于华为开发者空间-云开发环境Docker+Flink实现大数据实时统计系统

华为云开发者联盟

Docker flink 华为开发者空间

基于华为开发者空间云开发环境部署Claude Code + KAT-Coder实现AI编程助手

华为云开发者联盟

华为开发者空间 AI 编程 Claude-Code Tokens KAT-Coder

信息化灾备解决方案

金陵老街

灾备方案

小红书API接口文档:笔记详情数据开发手册

Datafox(数据狐)

小红书笔记详情接口 小红书API 小红书笔记详情api 小红书接口

手工VS.智能:AI商品计划如何让效率飙升90%?

第七在线

Rhino for Mac 专业级3D建模软件

小石头寻母记

谁能更快交付,谁就能更快赢得市场

镜舟科技

云原生 OLAP 新能源汽车 StarRocks 湖仓一体

面试官:MySQL 唯一索引为什么会导致死锁?

Geek_e3e86e

编程 java面试

闲谈KubeBlocks For MongoDB设计实现

小猿姐

数据库 云原生 K8s 多集群管理 K8s Operator

KFintech以3,500万美元收购Ascent 51%控股权

财见

MES实施之道:摒弃“大而全”,选择“分步走”的敏捷策略

合肥迈斯软件

制造业数字化 生产管理MES系统 智能制造数字化转型

【堆与优先队列】堆与优先队列:“数据金字塔“与“我是VIP“

华为云开发者联盟

数据结构 优先队列 华为开发者空间

大数据-130 - Flink CEP 详解 - 捕获超时事件提取全解析:从原理到完整实战代码教程 恶意登录案例实现

武子康

Java 大数据 flink spark 分布式

MIAOYUN | 每周AI新鲜事儿(10.11-10.17)

MIAOYUN

AI 算法 AI技术 AIGC 大语言模型

低代码平台最新发展方向:从辅助工具到核心引擎的五大演进路径

星云低代码中间件

ide 低代码 开发工具 数字化

MyEMS:衔接 “双控” 政策与企业实践的开源能源管理利器

开源能源管理系统

开源 能源管理系统-

GEO优化方法有哪些?2025企业抢占AI流量必看指南

森潮全域科技

GEO优化

《2025年,开启GEO优化新时代,为企业抢占AI搜索先机》

森潮全域科技

将 EasySQLite 解决方案文件格式从 .sln 升级为更简洁的 .slnx

追逐时光者

.net 微软

构建企业数字化办公核心:安全高效的内网im私有化协同平台

BeeWorks

即时通讯 IM 私有化部署

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