写点什么

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

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

关注

评论

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

AI系列产品来袭,用友招聘云换新上线

用友BIP

AI 招聘

国内首个电力物联操作系统正式发布,实现电力设备万物互联、海量数据互通共享

开放原子开源基金会

开源

最新苹果系统 macOS 14 Sonoma 14.1正式版

iMac小白

MacOS 14 macOS Sonoma MacOS14系统

昇腾迁移丨4个TensorFlow模型训练案例解读

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟

11 月 11日,MatrixOne 社区邀请您来深圳办公室坐坐

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

人才驱动:水泥建材企业如何实现智能化人才管理

用友BIP

人才发展

外贸独立站谷歌seo优化的8大技巧

九凌网络

用友携手平安银行,加速数智化司库及财资体系建设

用友BIP

全球司库

合成数据的被需要的5 个重要原因

3D建模设计

人工智能 合成数据 虚幻合成数据

如何在HarmonyOS对数据库进行备份,恢复与加密

HarmonyOS开发者

HarmonyOS

腾讯云入选 2023Gartner分布式混合基础设施魔力象限

ToB行业头条

信息系统建设和企业税务管理的结合

用友BIP

税务管理

医共体建设进入高峰期 区域医疗平台运营管理如何破局

用友BIP

医疗平台运营

华为云云容器引擎CCE产品文档带来4个升级,降低使用难度

华为云开发者联盟

云原生 华为云 华为云开发者联盟 华为云CCE容器服

Macs Fan Control Pro for mac(电脑风扇控制软件) v1.5.16永久激活版

mac

电脑风扇控制软件 苹果mac Windows软件 Macs Fan Control

合成数据对于机器学习模型至关重要

3D建模设计

人工智能 合成数据 虚幻合成数据

TikTok 与 YouTube:哪个更适合您?

九凌网络

如何释放React Hooks的力量

树上有只程序猿

Hooks React Hooks

对话在行人|合众思壮:基于用友BIP重塑业务应用,推进业财融合

用友BIP

对话在行人 数智化领先实践

未来已来!2023 云栖大会龙蜥操作系统专场精彩回顾

OpenAnolis小助手

开源 操作系统 信通院 云栖大会 龙蜥社区

调用API接口获取淘宝店铺所有商品:详细指南与代码实践

Noah

2023云栖大会龙蜥操作系统专场成功举办

开放原子开源基金会

开源 云栖大会

如何成为前1%的程序员

互联网工科生

程序员 提升自我

吴翰清《计算》重磅来袭,为了可计算的价值,写给所有人!

博文视点Broadview

数电票如何管理?

用友BIP

数电票

DAPP 燃烧铸币质押挖矿系统开发

l8l259l3365

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