NuStore使用说明
簡介
? ? ? ?.net core 部署有兩種方式,一種是獨立式部署(SCD),另一種是框架依賴式部署(FDD)。以SCD方式生成發布包時,dotnet會將所有依賴打包到一個文件夾內,并為應用程序生成可執行文件。以FDD方式部署的程序是不用安裝.net core 運行時的,而在FDD模式下需要安裝對應版本的.net core 運行時,兩者的區別可參考:.net core application deployment。
? ? ? ?用VS開發時,默認采用的是FDD模式,但將發布包部署到服務器上時可能會出現以下錯誤:
? ? ? ?導致這個問題的原因是VS默認以 manifest的方式打包,對于本地Store中存在的公共包將不會被包含在發布包中,只會將其記錄入*.deps.json文件中。所以當開發機與服務器Store目錄中的包不一致時就會出現以上問題。一般的解決辦法是將PublishWithAspNetCoreTargetManifest改為false,以停用manifest文件,但這會導致發布包變得無比巨大(雖然比SCD生成的文件少,但也會有200+的文件),當然我們也可以讓編譯服務器與部署服務器的Store環境一致或指定manifest文件來解決以上問題。對于本地Store的作用可參考: Runtime package store
? ? ? ?上文已經了解到Store的作用,其實我們手動將缺少的或未被包含在發布包的中Package拷到Store目錄也可以解決問題。既然如此,NuStore作用就是:自動完成deps文件分析并從NuGet中下載依賴包,然后將其放入Store目錄,這樣發布包只需要包含不屬于NuGet的包即可,最大化的減小發布包的體積。
安裝
dotnet tool install -g NuStore
更新
dotnet tool update -g NuStore
卸載
dotnet tool uninstall -g NuStore
用法
nustore verb [options]
? ? ? ?直接使用nustore restore命令時,工具會加載當前目錄中的*.deps.json文件,并將下載的包保存到 usr/local/share/dotnet/store目錄(macOS/Linux)或 C:/Program Files/dotnet/store目錄中(Windows)。使用nustore --help可獲取更多幫助。
.netcore2.1在centos下的安裝目錄為/usr/share/dotnet/,但微軟官方文檔為:usr/local/share/dotnet/store。所以在linux環境下使用時,請使用--dir參數指定為正確的目錄。
參數
Verbs
restore ?下載所有依賴包
minify ? ?精簡當前發布包
restore Options
選項 | 說明 |
-p ?--deps | 指定deps文件。默認搜索當前目錄中的*.deps.json文件 |
-d ?--dir | 將包下載到指定的目錄中。默認usr/local/share/dotnet/store目錄(macOS/Linux)或 C:/Program Files/dotnet/store目錄中(Windows) |
-f ?--force | 是否覆蓋已下載的包,默認為否 |
--nuget | 指定NuGet Api服務地址。默認: https://api.nuget.org/v3/index.json |
-e ?--exclude | 排除指定的包,支持正則,多個要件使用分號分隔 |
-s ?--special | 下載指定的包,支持正則,多個條件使用分號分隔 |
--runtime | netcoreapp2.0/netcoreapp2.1,默認從deps文件中分析 |
--arch | x64/x86,默認從deps文件中分析 |
--verbosity | 顯示詳細日志 |
--help | 獲取restore的幫助信息 |
當--special與--exclude都存在時,先判斷是否為Special包,再判斷是否為Exclude包
示例
使用 e:/nustore/test.deps.json依賴文件,排除所有名稱以Micosoft.和System開頭的包,但下載Microsoft.Extensions.Logging包或其它包。
nustore restore --dir="e:/nustore" --deps="e:/nustore/test.deps.json" --exclude="^microsoft.*;^System.*" -s "Microsoft\.Extensions.Logging"
代碼
https://github.com/aspark/nustore
原文地址:https://aspark.gitbook.io/nustore
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的NuStore使用说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Blazor 0.5.0 升级及新特性介
- 下一篇: HttpClientFactory与St