日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NuStore使用说明

發(fā)布時間:2023/12/4 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NuStore使用说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

? ? ? ?.net core 部署有兩種方式,一種是獨立式部署(SCD),另一種是框架依賴式部署(FDD)。以SCD方式生成發(fā)布包時,dotnet會將所有依賴打包到一個文件夾內(nèi),并為應(yīng)用程序生成可執(zhí)行文件。以FDD方式部署的程序是不用安裝.net core 運行時的,而在FDD模式下需要安裝對應(yīng)版本的.net core 運行時,兩者的區(qū)別可參考:.net core application deployment。

? ? ? ?用VS開發(fā)時,默認(rèn)采用的是FDD模式,但將發(fā)布包部署到服務(wù)器上時可能會出現(xiàn)以下錯誤:



assembly specified in the dependencies manifest was not found



? ? ? ?導(dǎo)致這個問題的原因是VS默認(rèn)以 manifest的方式打包,對于本地Store中存在的公共包將不會被包含在發(fā)布包中,只會將其記錄入*.deps.json文件中。所以當(dāng)開發(fā)機與服務(wù)器Store目錄中的包不一致時就會出現(xiàn)以上問題。一般的解決辦法是將PublishWithAspNetCoreTargetManifest改為false,以停用manifest文件,但這會導(dǎo)致發(fā)布包變得無比巨大(雖然比SCD生成的文件少,但也會有200+的文件),當(dāng)然我們也可以讓編譯服務(wù)器與部署服務(wù)器的Store環(huán)境一致或指定manifest文件來解決以上問題。對于本地Store的作用可參考: Runtime package store

? ? ? ?上文已經(jīng)了解到Store的作用,其實我們手動將缺少的或未被包含在發(fā)布包的中Package拷到Store目錄也可以解決問題。既然如此,NuStore作用就是:自動完成deps文件分析并從NuGet中下載依賴包,然后將其放入Store目錄,這樣發(fā)布包只需要包含不屬于NuGet的包即可,最大化的減小發(fā)布包的體積。

安裝

dotnet tool install -g NuStore

更新

dotnet tool update -g NuStore

卸載

dotnet tool uninstall -g NuStore

用法

nustore verb [options]

? ? ? ?直接使用nustore restore命令時,工具會加載當(dāng)前目錄中的*.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環(huán)境下使用時,請使用--dir參數(shù)指定為正確的目錄。

參數(shù)

Verbs

  • restore ?下載所有依賴包

  • minify ? ?精簡當(dāng)前發(fā)布包

  • restore Options

    選項

    說明

    -p ?--deps

    指定deps文件。默認(rèn)搜索當(dāng)前目錄中的*.deps.json文件

    -d ?--dir

    將包下載到指定的目錄中。默認(rèn)usr/local/share/dotnet/store目錄(macOS/Linux)或 C:/Program Files/dotnet/store目錄中(Windows)

    -f ?--force

    是否覆蓋已下載的包,默認(rèn)為否

    --nuget

    指定NuGet Api服務(wù)地址。默認(rèn): https://api.nuget.org/v3/index.json

    -e ?--exclude

    排除指定的包,支持正則,多個要件使用分號分隔

    -s ?--special

    下載指定的包,支持正則,多個條件使用分號分隔

    --runtime

    netcoreapp2.0/netcoreapp2.1,默認(rèn)從deps文件中分析

    --arch

    x64/x86,默認(rèn)從deps文件中分析

    --verbosity

    顯示詳細(xì)日志

    --help

    獲取restore的幫助信息

    當(dāng)--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社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的NuStore使用说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。