Paket介绍
在国外.NET社区有一个很火的话题是Packet(https://fsprojects.github.io/Paket/index.html ),它本质上是Nuget 之外的另一种方式管理.NET项目。
问题来了,为什么要替换NuGet?
Paket 是一个用于 .NET 和 Mono 平台的包管理器,灵感来自于 Bundler。可与 NuGet 一起工作,可精确控制项目中所引用的各种软件包。所以可以肯定的是你想知道,"为什么我们需要更换掉NuGet?" Packet本质上是只需要NuGet的最基本的功能,并增加了一些额外的并且是不错的功能。
一方面,Paket使得你能够精确控制你的项目的包依赖所发生的事情。如果不同的包引用了不同版本的同一个依赖包,比如说log4net,他们之间没有更多的冲突。
另一个很酷的事情是Paket可以引用GitHub上单个的文件http://fsprojects.github.io/Paket/github-dependencies.html ,也就是和Github可以很好的协作。
那么我已经在使用NuGet了呢?
一点问题都没有!Paket有一个漂亮的转换工具convert-from-nuget 辅助你完成这个转换。
那么我们怎么开始使用呢,跟我来。
1.要在你解决方案的根目录下包含一个.paket文件夹,里面包含用于安装和恢复包的工具paket.exe。
\.paket\paket.bootstrapper.exe
\.paket\paket.exe
\.paket\paket.targets
2.文件夹和文件内容都在那里后,需要在解决方案的根目录下创建一个paket.dependencies文件,内容类似于:
framework: net461
source https://nuget.org/api/v2 nuget FSharp.Core ~> 3.1.
nuget FSharp.Formatting
nuget Nuget.CommandLine
nuget FAKE
nuget SourceLink.Fake
nuget IKVM ~> 8.0.
nuget NUnit
nuget NUnit.Runners
github fsharp/FAKE modules/Octokit/Octokit.fsx
此文件告知PAKET的来源是(NuGet或GitHub上)的包/文件名,它可以从这些源下载。
3.那么你可以使用一个build.cmd文件或像下面手动执行paket.exe。
\.paket\paket.exe install
这将创建一个packages文件夹,其中将包括所有的库。
4.从这里,你可以随时手动引用你想要的库,但PAKET使这个工作更容易容易。在每个有一个project文件的文件夹位置有个文件paket.references文件,创建包含要引用的库。
FSharp.Core
NUnit
NUnit.Runners
需要注意的是FAKE是不是在文件中,因为它不会引用。该paket.references文件将只添加到项目中如果库是在lib文件夹。手动引用也不是问题,因为它可以在build.fsx文件中手动引用的。为了让PAKET使用引用文件,只需--hard开关重新运行安装命令
\.paket\paket.exe install –hard
这将检查paket.references 文件并用这个文件来自动引用该项目相对应的库。
这里还有一个 Visual Studio的插件工具 https://github.com/fsprojects/Paket.VisualStudio ,不过只支持Visual studio 2013.
希望这个简要介绍帮助您开始使用比以前的包管理更容易的Paket工具。不过这仍然是一个年轻,非常活跃的项目,期待你的关注。
Paket介绍的更多相关文章
- Paket 介绍
在国外.NET社区有一个很火的话题是Packet(https://fsprojects.github.io/Paket/index.html ),它本质上是Nuget 之外的另一种方式管理.NET项目 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- HTML DOM 介绍
本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...
- HTML 事件(一) 事件的介绍
本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...
- HTML5 介绍
本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...
随机推荐
- mybitis学习笔记
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-// ...
- Javascript--普通函数调用-涨工资计算函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Verilog篇(四)时序模型
时序模型:仿真器的时间推进模型,它反映了推进仿真时间和调度事件的方式. 1)门级时序模型:适用于分析所有的连续赋值语句,过程连续赋值语句,门级原语,用户自定义原语. 特点:任意时刻,任意输入变化都将重 ...
- fiddler——一款莱斯的抓包工具
进行页面和接口调试时候,好使得抓包工具还是有作用得,如postman,fiddler,相比,postman更适合用来接口调试和与其他人一起联调,而抓包监控web得时候我更喜欢用fiddler: 当然, ...
- Rapid 2D-to-3D conversion——快速2D到3D转换
https://blog.csdn.net/qq_33445835/article/details/80143598 目前想做一个关于2D转3D的项目,由于国内资料比较少而且大部分都是基于国外的研究 ...
- 微信小程序新闻列表功能(读取文件、template模板使用)
微信小程序新闻列表功能(读取文件.template) 不忘初心,方得始终.初心易得,始终难守. 在之前的项目基础上进行修改,实现读取文件内容作为新闻内容进行展示. 首先,修改 post.wxml 文件 ...
- QT中VideoProbe的简介和实现
一.遇到问题 在Android机上使用QT进行图像处理程序设计的时候,遇到的一个比较明显的问题就是图片采集的问题----摄像头获得是实时的视频,如果我们想从中动态地截获图片,并且转换成M ...
- CSAPP 第三章 读书笔记
程序的机器级表示 AT&T与Intel格式的汇编代码 我们的表述是ATT(根据"AT&T"命名的, AT&T是运营贝尔实验室多年的公 司)格式的汇编代码,这 ...
- warning C4018: “<”: 有符号/无符号不匹配
原因: 将两个不同的类型进行了比较,如: int a:unsigned short b: if(a>b)... 解决:改为同一种类型
- 项目中同一个dll的x86和x64同时引用
<ItemGroup Condition=" '$(Platform)' == 'x86' "> <Reference Include="System. ...