文章出處

在國外.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 輔助你完成這個轉換。

那么我們怎么開始使用呢,跟我來。

首先要在你解決方案的根目錄下包含一個.paket文件夾,里面包含用于安裝和恢復包的工具paket.exe。

文件夾和文件內容都在那里后,需要在解決方案的根目錄下創建一個paket.dependencies文件,內容類似于:

source https://nuget.org/api/v2

nuget FSharp.Core ~> 3.1.2

nuget FSharp.Formatting

nuget Nuget.CommandLine

nuget FAKE

nuget SourceLink.Fake

nuget IKVM ~> 8.0.5

nuget NUnit

nuget NUnit.Runners

 

github fsharp/FAKE modules/Octokit/Octokit.fsx

 

此文件告知PAKET的來源是(NuGetGitHub上)的包/文件名,它可以從這些源下載。

那么你可以使用一個build.cmd文件或像下面手動執行paket.exe

\.paket\paket.exe install

這將創建一個packages文件夾,​​其中將包括所有的庫。

從這里,你可以隨時手動引用你想要的庫,但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工具。不過這仍然是一個年輕,非常活躍的項目,期待你的關注。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()