AI实践哪家强?来 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:111108
用户头像

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

关注

评论

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

Python 实战!手把手教你调用淘宝商品列表 API 接口

tbapi

淘宝商品详情接口 淘宝数据采集 淘宝API 天猫商品数据采集 淘宝商品详情API

人工智能与智能教育:AI如何帮助实现个性化学习与在线教育的未来?

天津汇柏科技有限公司

人工智能 AI 人工智能

国产法律AI亮相香港!爱问法AI参加香港国际创科展InnoEX

极客天地

行业热点丨可持续建筑新纪元:GFRP如何重塑混凝土的未来

Altair RapidMiner

仿真 hyperworks GFRP 建筑仿真软件 可持续建筑

夸克新入口:重构AI“视界观”,望见阿里AI新版图

脑极体

AI

强强联合,智见未来:麦杰科技将携手视源股份亮相数字中国,以“集团级生产管理平台”赋能数实融合

麦杰研究院

大胆试错、持续推进,拓展 GenAI 在客户服务领域的新场景

亚马逊云科技 (Amazon Web Services)

三级等保的法定审核周期与形式

黑龙江陆陆信息测评部

过来人给1-3 年技术新人的几点小小的建议,帮助你提升职场竞争力

安全乐谷

找工作 招聘 简历 实习 校招

WebGIS 开发的性能优化

北京木奇移动技术有限公司

软件外包公司 webGIS开发 webGIS软件外包

GPUStack v0.5:模型Catalog、图生图功能上线,多维优化全面提升产品能力与使用体验

GPUStack

人工智能 大模型 模型推理 生成式AI GPU集群

Easysearch 迁移数据之 Reindex From Remote

极限实验室

easysearch

TVM虚拟机

上海茶芯科技

编程语言 虚拟机

Python 实战 | 1688 商品详情 API 接口调用全流程解析

tbapi

1688商品详情接口 1688API 1688数据采集 1688商品详情采集

WebGIS 开发框架的调试工具

北京木奇移动技术有限公司

软件外包公司 webGIS开发 GIS开发

快速理解 MCP(模型上下文协议)核心价值

柯杰

MCP

AI与机器人外科手术:如何用智能化技术提升手术精度与安全性?

天津汇柏科技有限公司

人工智能 机器人 AI 人工智能

WebGIS 开发框架及性能

北京木奇移动技术有限公司

软件外包公司 webGIS开发 webGIS软件外包

信息混乱、协作低效?一文教你打造团队的单一事实来源

跟YY哥学Jira

知识管理 Confluence 知识管理软件 企业知识库 单一事实来源

【Workshop 第一期 - 北京站】搜索服务统一治理(跨引擎多个集群监控管理、流量管控、服务编排)

极限实验室

Gateway Cloud Workshop easysearch

强强联合,智见未来:麦杰科技将携手视源股份亮相数字中国,以“集团级生产管理平台”赋能数实融合

麦杰科技

解决方案评测|告别复杂配置!基于阿里云云原生应用开发平台CAP快速部署Bolt.diy

Geek_b7ce72

Coze工作流+DeepSeek模型,躺着管理100个账号的终极秘籍

测试人

人工智能

一文看懂iVX:技术架构、功能特性、性能优化手段

代码制造者

Arthas redefine(加载外部的.class文件,redefine到JVM里 )

刘大猫

人工智能 监控 Arthas 大模型 redefine

TVM虚拟机应用实例

上海茶芯科技

编程语言 软件开发 虚拟机

过去一年的工作总结

yuanyxh

JavaScript 总结 前端

等保二级测评国家标准详解

黑龙江陆陆信息测评部

从被动救火到主动预防,StarRocks 监控与告警全攻略

StarRocks

数据库 数据处理 StarRocks 数据查询 物化视图

GPUStack v0.6超重磅更新:vLLM多机分布式、昇腾MindIE、模型兼容性检测、模型故障自动恢复,上百项增强打造最好用的模型推理平台

GPUStack

人工智能 大模型 模型推理 生成式AI GPU集群

当东哥开始卷外卖:奶茶砍半价比拼多多还狠!附京东面试题

王中阳Go

面经 京东

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