[英]Difference between project and dll dependencies in .Net in the final compiled assembly
假設我有兩個項目A和B. A取決於B.我可以用兩種方式指定:
我的問題是,一旦我為A構建程序集,這兩種方法之間的最終輸出是否存在差異。
我嘗試創建幾個簡單的項目來模擬這種關系並嘗試比較 - 但不同的比較工具告訴我不同的東西。 在寫一些逐字節比較這些文件的東西時,我想知道你們是否對此有所了解。 具體來說,如果我使用dll引用而不是項目引用,構建的程序集的行為是否會有任何差異。
如果項目B源在項目A的兩個版本之間沒有變化,則項目A輸出的行為將沒有差異。 但是,如果項目B源已更改,則將其作為項目A中的項目引用也將導致項目B重建。 這種差異決定了您如何從項目A中引用項目B:
如果您擁有項目B和項目A的源,並且它們緊密耦合,或者如果它們都處於活動開發狀態並且項目B經常斷開其公共接口的更改,則您希望將項目B作為項目引用。 這將確保項目A始終在其構建中使用項目B的最新輸出。
如果項目B是外部依賴項,您不自行開發,或者您沒有源代碼,或者如果它已經已經發貨且您無法運送帶有項目A的修改版本,則需要參考預先構建的項目B輸出,以確保您使用相同版本的項目B進行開發和測試,這很可能是在用戶的計算機上。
添加為項目參考只是具有如果需要則自動構建組件“B”的優點。
組裝“A”后,沒有區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.