OpenWrap

面向.NET兼容于MSBuild的包管理器
授权协议 未知
开发语言 C# .NET
所属分类 应用工具、 操作系统工具
软件类型 开源软件
地区 不详
投 递 者 文志学
操作系统 Windows
开源组织
适用人群 未知
 软件概览

包管理器在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程序员是耳熟能详的,此外,由于将 头信息存储在文件末尾,因此它的可扩展性也是非常棒的;因为这部分空间是无用的,因此可以存放数字签名信息。

 相关资料
  • 在本章中,我们将讨论什么是MSBuild,以及它如何与.NET Core一起工作。 MSBuild是Microsoft和Visual Studio的构建平台。在UWP应用程序中,如果打开项目文件夹,则会看到和文件。 但是,如果打开前面创建的.NET Core控制台应用程序,那么将看到和文件。 .NET Core构建系统或构建系统不足以满足UWP需求; 这就是为什么UWP仍然使用构建系统。 但是就构

  • 问题内容: 我在一个应用程序中工作,我们需要将对象保存为XML格式,并在以后需要时加载它们。为此,我使用JAXB将XML编组和解编回Java类。 我的问题是我必须在某个时候更改Java模型(通过添加,重命名或删除属性),结果,我将拥有不兼容的保存XML,无法将其绑定回新的类形式。 为了解决这个问题,每次必须进行更改时,我都会在一个新程序包(以其版本命名)下复制所有类的副本,并应用所请求的更改。并且

  • ngrok承诺有关其接口的兼容性和稳定性,以便您可以自信地构建集成顶部,知道在升级到较新版本时期望的更改。 兼容性承诺 Point Release (2.0.0 -> 2.0.1) - ngrok承诺在点发布之间没有突破性的变化 Minor Version Change (2.0 -> 2.1) - ngrok可能会进行小的更改,打破兼容性的次要版本更改。 ngrok承诺,任何破坏性更改将由一个版

  • MinIO .NET Client SDK提供了简单的API来访问MinIO以及任何与Amazon S3兼容的对象存储服务。有关API和示例的完整列表,请查看Dotnet Client API Reference文档。本文假设你已经有VisualStudio开发环境。 最低需求 .NET 4.5.2,.NetStandard2.0或更高版本 Visual Studio 2017 使用NuGet安装

  • 我目前正在尝试将datastax核心java驱动程序转换为OSGi等效包,但不断出现错误。 我使用的版本是 非常感谢您的指点。有人研究过将datastax转换成OSGi捆绑包吗?

  • 我已经开始使用Swagger。此时,我收到了一个swagger版本1.2的swagger文件。但是,如果我想用这个文件生成一些东西,它只会给我一堆看起来更像它的错误,只是忽略了我的swagger文件在1.2版规范中的事实,只是继续并根据规范的2.0版验证它。 我得到的一些错误: 缺少所需属性:路径 不允许附加属性:模型、apis、resourcePath、swaggerVersion、apiVer