Qwen3 惊喜上线阿里云百炼,8款模型全开源!点击免费领取 800万 tokens! 了解详情
写点什么

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

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

关注

评论

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

几个常见的js手写题,你能写出来几道

helloworld1024fd

JavaScript

react的useState源码分析

flyzz177

React

React中常见的TypeScript定义实战

xiaofeng

React

Qt|双缓存机制

中国好公民st

c++ qt 10月月更

ESP32-C3 学习测试 蓝牙 篇(六、添加 Service)

矜辰所致

service 蓝牙 ESP32-C3 10月月更

恼人的网络时延

agnostic

网络时延

Python应用之反转字符串

芯动大师

10月月更 反向字符串输出 函数与表达式

开发者有话说|我何以坚持编程25年?

个人成长

Baklib知识分享|企业文档管理的一些策略

Baklib

React源码解读之任务调度

flyzz177

React

react源码中的hooks

flyzz177

React

深入了解计算机语言

邱学喆

响应式编程 C语言 汇编 对象编程 C++

这可能是你需要的React实战技巧

夏天的味道123

React

一Go到底】第四天---数据类型

指剑

Go golang 10月月更

硬核好文!网络拓扑类型:总线、环形、星形、网状、树形、点对点、混合

wljslmz

网络技术 网络拓扑 10月月更

C++学习---_IO_new_fdopen函数原理分析学习

桑榆

c++ 源码分析 10月月更

【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos

石臻臻的杂货铺

10月月更 nacso

React组件复用的技巧

夏天的味道123

React

Servlet规范中的监听器-Listener

楠羽

Servlet 笔记 10月月更

深度剖析React懒加载原理

xiaofeng

React

Java 属性文件乱码问题

HoneyMoose

React性能优化的8种方式

xiaofeng

React

前端培训怎么系统学习开发技术呢?

小谷哥

大数据培训靠谱吗?

小谷哥

深入React源码揭开渲染更新流程的面纱

goClient1992

React

一文搞懂XaaS

俞凡

架构 云原生

手写现代前端框架diff算法-前端面试进阶

helloworld1024fd

JavaScript

从React源码来学hooks是不是更香呢

goClient1992

React

【Nacos源码之配置管理 二】Nacos中的事件发布与订阅--观察者模式

石臻臻的杂货铺

nacos 10月月更

书单推荐|宅家不动过国庆,好书相伴不寂寞

图灵教育

书单 国庆节

Vue3入门指北(八)v-model

Augus

Vue3 10月月更

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