Nuget多項目批量打包上傳服務器的簡明教程


本篇不會介紹Nuget是什么,如何打包上傳Nuget包,怎么搭建私有Nuget服務器。這些問題園子里都有相應的文章分享,這里不做過多闡述。另外本文假設你已經下載了Nuget.exe,並且已經設置好了環境變量。什么?你還不會?那你先去百度下設置好后再來看這篇文章吧。nuget下載

實際項目中,我們可能一個解決方案下面會有N多個項目,每次發布這N多個項目都會使用統一的版本號一起發布到Nuget服務器。搜索了很久沒找到一個好的方式,好在參考了abp vnext的打包方法實現了這個需求。因此分享下,希望對有需要的人有所幫助。

作者:依樂祝
原文地址:https://www.cnblogs.com/yilezhu/p/12591174.html

首先看下圖,每個腳本的作用我進行了注釋,稍后我們再做進一步的詳細闡述。在具體批量發布的時候,只需要先執行下pack.ps1腳本,然后再執行下push_packages.ps1腳本即可。當然還有一些參數需要根據你的項目來進行修改的。不過你不用擔心,只需要按照下面步驟進行即可。

image-20200329100147560

第一步,在common.ps1中配置我們的解決方案以及項目路徑

我們把$solutions這個變量中的內容替換成我們的解決方案的相對路徑。比如:解決方案在E:\abp\abp\framework這個路徑,我們的腳本文件在E:\abp\abp\nupkg這個路徑,那么我們就可以配置framework這個值就可以了。

image-20200329101445573

第二步,pack.ps1這個腳本基本不需要修改,這里只是進行下代碼的解釋

  1. 這里首先引入第一步的common.ps1腳本文件(因為需要用到上面定義的變量)
  2. 循環遍歷$solutions變量,找到所有的解決方案,並執行dotnet restore
  3. 這里才是打包的核心代碼,遍歷$projects並執行打包過程,然后把生成的nupkg文件拷貝到腳本所在的目錄。

image-20200329102000346

第三步,push_packages.ps1腳本文件打包上傳到服務器

  1. 這里首先引入第一步的common.ps1腳本文件(因為需要用到上面定義的變量)

  2. 從根目錄下獲取common.props文件中獲取對應的版本號,並推送對應版本號的nupkg到服務器

    注意:common.props文件需要你自行添加,這里面可以定義csproject文件所需要的一些變量

  3. 循環common.ps1腳本中的$projects,並執行推送過程。

  4. 最后修改 下你自己的--api-key(Nuget管理的密鑰)以及-s(包源,如果你是自己搭建的私有nuget服務器,則這里需要替換成私有nuget服務器地址)

image-20200329102832869

第四步,執行上傳操作

  1. 進入到你的上面三個腳本的目錄,Shift+鼠標右鍵,選擇在此處打開powershell打開powershell命令窗口

  2. 依次執行下.\pack.ps1push_packages.ps1腳本即可。

  3. 這里你在執行powershell腳本的時候可能會報如下的錯誤

    image-20200329103723580

    這是由於操作系統默認禁止執行腳本,需要以管理員身份執行一次set-executionpolicy remotesigned然后輸入y回車即可順利執行。

    Set-ExecutionPolicy 可更改 Windows PowerShell 執行策略的用戶首選項。要在 Windows Vista、Windows Server 2008 和 Windows
    的更高版本上運行此命令,必須使用"以管理員身份運行"選項啟動 Windows PowerShell,

總結

本文參照abp vnext批量打包解決方案下面所有項目文件並上傳到nuget服務器的方法實現了一個簡單的Nuget多項目批量打包上傳服務器的方法,希望對有需要的朋友有所幫助,當然,如果你有更好的方式也可以給我留言。感謝閱讀。

下載地址

點這里下載:https://files.cnblogs.com/files/yilezhu/nupkg.zip


免責聲明!

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



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