簡體   English   中英

Visual Studio解決方案項目參考或DLL參考

[英]Visual Studio Solution Project Reference or Dll Reference

我正在尋找有關項目參考/ dll參考實踐的指導。

情況是我們有一些實用程序dll用於一堆項目,一些團隊成員通過項目引用,一些引用在dll中引用。

項目參考的缺點是:

  • 最終可能會在解決方案中出現太多項目
  • 引入了失敗的快速更新,因為dll不能再進行版本控制了
  • 迫使每個人的代碼都有類似的文件夾結構

lib文件夾引用的缺點:

  • 因為dll可以在項目的后期使用它更新,所以可以延遲發現bug
  • 沒有最新的pdb文件就無法進行調試

另外,確保所有項目仍然可以使用dll更新的好策略是什么? 每當更新實用程序時,它是否需要是構建服務器觸發依賴關系構建檢查?

我們使用SVN作為源代碼控制。

我們做類似於Peuczyński的事情。 我們在源代碼樹的根目錄下有一個文件夾,其中包含來自庫程序集的所有dll,pdb和xml doc文件(因此它的版本控制與其他所有文件一樣)。 其他項目引用它們(不直接引用lib項目或它們的bin dlls)。 這允許在不破壞常規解決方案開發的情況下處理lib代碼。 只有當lib代碼是可靠的時,它才會“發布”到官方的lib文件夾(所有的dll,pdbs和xmls都會去)。

一個小小的黑客允許我們同時擁有調試和發布版本,並讓Visual Studio在使用庫代碼的項目中選擇正確的一個沒有時髦的預構建的東西是在Libs文件夾下有三個子文件夾,這些文件夾名為如下: $(Configuration)DebugRelease 添加對庫dll的引用時,始終從$(Configuration)文件夾中選擇文件。 該文件夾名稱欺騙VS以實際使用Debug或Release文件夾中的dll,具體取決於您正在執行的構建類型。

我們設置了一個內部Nuget服務器來處理這個問題。 這是處理分發和版本管理的簡單方法。

我使用的方法是在dll項目的后期構建事件中將編譯后的dll上傳到服務器中,並在我使用dll的項目的預構建事件中下載它們。這是我的經驗中的最佳方法。 當我使用項目引用時,偶爾會出現一些錯誤(據我記得,dll代碼沒有正確更新)。

在這種方法中,DLL項目編碼器決定何時“發布”代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM