目前維護的專案是我從入職到現在一直維護與開發的乙個超大型業務系統;解決方案中有數十個專案在其中,因為各子專案的維護人員不同,導致相同的nuget包存在兩個,甚至四個不同版本的存在。包版本的不同經常導致各種編譯或者發布失敗的問題;拖延開發和qa 的工作效率,我們小組職責就是為了提高工作人員的效率;今天領導找我,要我把解決方案中,所有的nuget 包版本都唯一化。
我使用visual studio 2019 來解決此問題。使用 visual studio 2019 開啟 解決方案,點選工具 > nuget 包管理器 > 管理解決方案的nuget 程式包 > 合併。
合併中展示的程式包,就是存在不同版本的程式包,需要我們處理的;選擇需要合併的程式包 > 選擇版本 > 安裝。
這真的是今天要講的重點嗎?不。我想闡述的是我在合併過程中包與包之間相容的問題。問題是:在本地合併完包後,編譯成功,本地執行成功;但是簽入到測試環境的時候,發生了乙個問題,那就是發布後的dll 不是我公升級的版本,而是舊的。重點來了,我想講解的是我今天是如何處理這個問題的。
我先排查是不是我版本是否成功
檢查**是否簽入
檢查伺服器發布**
清理bin 目錄
經過上面幾個步驟還是沒有解決問題;於是請教同事,他要我刪了sln 檔案中的引用,要編譯自動引入packages中的包,結果編譯失敗;然後要我解除安裝要公升級的程式包,重新安裝,結果遇到了驚喜,解除安裝失敗,說有其他包依賴,後來通過nuget 發現,依賴包需要的版本正是公升級前;好了,罪魁禍首找到了,就是這個包導致我發布dll 版本沒有變。然後我公升級了這個包,問題解決。
批處理合併SQL指令碼
專案開發過程中版本公升級的時候經常需要有資料庫公升級指令碼,有時候sql指令碼還很多,運維工程師乙個乙個的跑很麻煩,現把所有指令碼合併成乙個指令碼,一次執行就ok了。建立乙個批處理檔案 full.bat rem 合併sql指令碼 echo off set filename full.sql if e...
本地Nuget包管理
鏈結 提取碼 d8u4 放到某個資料夾比如 c mysdk 下。在vs的 tools nuget package manager package manager settings 點選綠色的新增按鈕新增新的本地源,點update更新 設定本地目錄 開啟專案的nuget package manager...
NuGet管理dll包 與NuGet的邂逅
最近一直在火熱開發中的高校平台專案,進行到現在底層類庫已經更新到版本v1.0.1.7了,與以往軟體開發不同的是這次不再需要每個開發小組一次次的去拷貝dll檔案了,要做的只是在自己的執行環境下直接更新一下安裝的類庫包就ok啦。上篇文章中已經提到過我參與的專案是基礎系統,在迭代一中開發完了基本功能,接下...