dotnet publish 命令詳細介紹
dotnet publish 命令在線生成工具:https://ut32.com/tool/publish
發佈. NET Core 應用時,除了 IDE 集成的發佈功能外,我們還可以用 dotnet publish
命令以達到更精細化操作,dotnet publish
可以將應用及其依賴文件打包並放入一個文件夾,以便我們部署至生產環境。
在打包後的文件夾下,我們可以看到
-
項目產生的 dll 文件
-
deps.json 文件,包含了項目所有依賴項
-
runtimeconfig.json 指定了應用程序使用的共享運行時以及運行時的其他配置項(如:垃圾回收類型)
-
項目依賴文件(來自於 Nuget 緩存)
注意,在. NET Core 2.0 之後,
dotnet publish
已經不再需要先執行dotnet restore
了。
dotnet publish 命令格式
dotnet publish[-h|--help][<PROJECT>][-c|--configuration][-f|--framework][--force][--manifest][--no-build][--no-dependencies][--no-restore][-o|--output][-r|--runtime][--self-contained][-v|--verbosity][--version-suffix]
-h|help
獲取幫助
PROJECT
要發佈的項目,可以是. csproj 文件路徑,也可以是包含. csproj 的文件夾路徑,如果不配置,默認發佈當前目錄下的項目。
-c|--configuration
定義生成配置,有 debug 和 release 兩個選項。不配置的話,默認爲 debug。
-f|--framework
指定目標框架,選項有 netcoreapp2.2,netcoreapp3.0,netcoreapp3.1。如果要發佈與項目文件. csproj 文件TargetFramework
不一樣的版本,這裏就需顯示指定一下
--force
重新解析所有依賴,即便你剛執行過 dotnet restore
(與刪除 project.assets.json 等效)
--manifest
指定一個或多個目標清單。
--no-build
發佈前不構建
--no-dependencies
只針對根目錄的項目,如果你根目錄項目依賴了項目 A,那麼項目 A 是不會包含進來的。
--no-restore
不執行 restore
-o|--output
輸出目錄,如果不指定位置,默認在當前目錄的 bin 目錄下。如果發佈成Self-Contained
,則在 ./bin/[configuration]/[framework]/[runtime]/publish/ 。否則就在 /bin/[configuration]/[framework]/publish/
-r|--runtime
指定運行時,常見有 linux-x64 win10-x64 等。
-v|--verbosity
配置打包時信息打印級別,可選項有 5 項。
q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]。從名字可以看出,越往後顯示的信息越詳細,如果發佈遇到錯誤,可以更改級別,方便排錯。
--version-suffix
配置版本後綴,比如項目中配置的版本是 1.2.*,如果你指定版本後綴爲 6,那麼發佈後的版本就是 1.2.6
--self-contained
如果目標機器沒有安裝. net core 運行時,可以使用此選項,發佈後可直接運行於目標機器。
出處:https://ut32.com/post/publish_cmd
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/JuYawk78plCZ3ETr3RmeMg