我們有一組正在打包的專案。這些專案/包之間有一個依賴關系圖。基本來說,我們有 Common、Client 和 Server(實際情況稍微復雜一些,總共涉及 5 個專案)。我確實有這些的單元測驗專案。
客戶端和服務器使用Common。客戶端由服務器使用。我稱這些為“IFX”。所有這些都用于各種專案/服務。有問題的服務以 ServiceFabric 為目標 - 不完全相關,只是說當事情變得不穩定時,這會增加測驗/除錯的額外障礙,從而形成更長的反饋回圈。
我的典型流程是對 IFX 庫進行更改,運行一系列構建、打包等。它運行 Common build/package,更新 Client 專案,提交,構建/打包,然后執行 Server 等。Server IFX 參考Common 和 Client 的包(不僅僅是專案參考),因此對 Common 的更改會導致 Client 的新構建,然后是 Server,最后是需要新版本的任何服務。
我的主要問題是測驗這些。為了加快開發/測驗(并希望在完成所有打包儀式之前一切正常),我希望獲得更多實時反饋。在我提交 REPO 并開始構建可能不起作用的東西之前,我已經考慮創建單獨的專案來執行專案(而不是包)參考并構建一個參考專案(而不是包)的測驗服務,只是為了早期反饋。但是,由于命名空間沖突等原因,這變得很麻煩。特別是考慮到 IFX 本身有包,而不是專案參考。
在這一點上,我真正想知道的是,還有誰遇到了這個問題,你做了什么來減輕痛苦?我知道在核心庫穩定之前打包核心庫的問題 - 同意,但這里的情況無法真正改變,所以,我有包要處理。
當我測驗某些東西時,我已經研究了在包檔案夾中替換 dll 的方法,但是當我忘記我覆寫了哪些 dll 時,這會變得非常有問題,所以我想要一些更靜態和自動的東西,而不是手動移動 dll .
在我繼續無人機之前,我會停在那里,然后問——有什么辦法可以緩解這種痛苦嗎?:)
uj5u.com熱心網友回復:
繼@CamiloTerevinto 的評論之后,您可以:
- 在您的相關庫之間使用專案參考,而不是包參考(應用程式和不相關的庫仍然可以包參考它們)
- 進行代碼更改、構建和測驗
- 測驗通過后,
dotnet pack在包含所有相關庫的解決方案上運行(此時專案參考會自動轉換為包參考)并發布新的包版本
為避免最終生成具有相同版本的不同包的情況,您可能希望使用https://github.com/dotnet/Nerdbank.GitVersioning之類的東西來獲取所有包的確定性版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/411805.html
標籤:
