《DotNet Web應用單文件部署系列》一、pubxml文件配置


  很多人想用DotNet開發軟件賺點外快子補添家用,但心里總放不下心來,擔心被人破解了。好消息是去年發布的DotNet 5支持單文件部署,不同於DotNet 3運行時將文件釋放到臨時文件夾內,DotNet 5運行時將文件釋放到內存,將安全系數提高了一個層次。

 

  雖然DotNet 5發布已有9個多月了,卻沒有一個系統性講單文件部署的系列文章,所以我寫了這個系列。

 

一)網上幾種 .Net 5的單文件部署方式

  .Net 5下單文件發布的參數是/p:PublishSingleFile=true,它可以和其它幾個參數組合,有如下幾種單文件發布的方案。

1.1)依賴於Framework

  dotnet publish -r win-x64 --self-contained=false /p:PublishSingleFile=true

1.2)不依賴Framework

  dotnet publish -r win-x64 /p:PublishSingleFile=true

1.3)在GUI中配置單文件發布

在VS界面選擇發布,配置如下:

點擊發布,生成如下:

 

二、以上單文件部署的缺點:

       第一種:過分依賴於Framework是最大問題。

       第二、三種,不依賴於Framework,卻多出了幾個文件aspnetcorev2_inprocess.dll、clrcompression.dll、clrjit.dll、coreclr.dll、mscordaccore.dll。

       三種方案都未將wwwroot文件夾打包進EXE文件內。(下篇《打包wwwroot文件夾》)

 

三、合並多出的dll文件的方案。

3.1)在VS界面選擇發布,配置后就會生成FolderProfile.pubxml

3.2)在Properties\ PublishProfiles\FolderProfile.pubxml文件的PropertyGroup節點下添加以下代碼

  <IncludeNativeLibrariesForSelfExtract>True</IncludeNativeLibrariesForSelfExtract>

3.3)執行發布,生成如下

 

命令行如下:

  dotnet publish -c Release -p:PublishProfile=FolderProfile -o bin/Release-Win

         -c 為 指定配置方案

         -p:PublishProfile 指定 發布配置文件

         -o 指定輸出目錄

雙擊后正常運行:

 

 

 

后記:

  dotnet publish -c Release -p:PublishProfile=FolderProfile -o bin/Release-Win

  這個命令行是很有用的,可以做成批處理,同時生成linux和windows版本的應用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM