本篇不會介紹Nuget是什麼,如何打包上傳Nuget包,怎麼搭建私有Nuget伺服器。這些問題園子裡都有相應的文章分享,這裡不做過多闡述。另外本文假設你已經下載下傳了Nuget.exe,并且已經設定好了環境變量。什麼?你還不會?那你先去百度下設定好後再來看這篇文章吧。nuget下載下傳
實際項目中,我們可能一個解決方案下面會有N多個項目,每次釋出這N多個項目都會使用統一的版本号一起釋出到Nuget伺服器。搜尋了很久沒找到一個好的方式,好在參考了abp vnext的打包方法實作了這個需求。是以分享下,希望對有需要的人有所幫助。
作者:依樂祝
原文位址:https://www.cnblogs.com/yilezhu/p/12591174.html
首先看下圖,每個腳本的作用我進行了注釋,稍後我們再做進一步的詳細闡述。在具體批量釋出的時候,隻需要先執行下
pack.ps1
腳本,然後再執行下
push_packages.ps1
腳本即可。當然還有一些參數需要根據你的項目來進行修改的。不過你不用擔心,隻需要按照下面步驟進行即可。
第一步,在 common.ps1
中配置我們的解決方案以及項目路徑
common.ps1
我們把
$solutions
這個變量中的内容替換成我們的解決方案的相對路徑。比如:解決方案在
E:\abp\abp\framework
這個路徑,我們的腳本檔案在
E:\abp\abp\nupkg
這個路徑,那麼我們就可以配置
framework
這個值就可以了。
第二步, pack.ps1
這個腳本基本不需要修改,這裡隻是進行下代碼的解釋
pack.ps1
- 這裡首先引入第一步的
腳本檔案(因為需要用到上面定義的變量)common.ps1
- 循環周遊
變量,找到所有的解決方案,并執行$solutions
dotnet restore
- 這裡才是打包的核心代碼,周遊
并執行打包過程,然後把生成的$projects
檔案拷貝到腳本所在的目錄。nupkg
第三步, push_packages.ps1
腳本檔案打包上傳到伺服器
push_packages.ps1
-
common.ps1
- 從根目錄下擷取
檔案中擷取對應的版本号,并推送對應版本号的common.props
到伺服器nupkg
注意:
檔案需要你自行添加,這裡面可以定義csproject檔案所需要的一些變量common.props
- 循環
腳本中的common.ps1
,并執行推送過程。$projects
- 最後修改 下你自己的
(Nuget管理的密鑰)以及--api-key
(包源,如果你是自己搭建的私有nuget伺服器,則這裡需要替換成私有nuget伺服器位址)-s
第四步,執行上傳操作
- 進入到你的上面三個腳本的目錄,
+滑鼠右鍵,選擇在此處打開Shift
打開powershell指令視窗powershell
- 依次執行下
,.\pack.ps1
腳本即可。push_packages.ps1
- 這裡你在執行
的時候可能會報如下的錯誤 這是由于作業系統預設禁止執行腳本,需要以管理者身份執行一次powershell腳本
然後輸入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
作者:依樂祝(祝雷)
出處:https://www.cnblogs.com/yilezhu
聯系:[email protected] .NET Core實戰項目交流群:637326624 微信:jkingzhu
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。如有問題或建議,請多多賜教,非常感謝。