C#開發模式——dll多級引用的問題,
C#解決方案裡有兩種引用方式,項目引用和dll物理文件引用。
一、項目引用
嚴格引用,項目文件需包含在解決方案裡,好處是便於調試,可直接進入代碼。缺點是耦合度太高(必須全部編譯通過才能run起來),項目太大的話編譯麻煩,不利於部署升級和測試。因為是嚴格引用,單獨替換dll是不起作用的。而且每次升級程序都要重新編譯、打包、卸載、安裝,相當麻煩。
二、dll物理文件引用
松散引用,引用的是dll物理文件,dll項目包不包含在解決方案裡都無所謂(一般是包含的),好處是不必全部重新編譯,哪裡修改編譯哪裡,但是前提是dll文件必須放在引用者的路徑裡,否則會造成編譯不更新的問題。缺點是不利於調試,因為對於經驗不足的人、或者剛接手的新人,不清楚程序架構,而此法的調試時不會自動進入代碼段的,必須附加進程調試,提前去dll代碼裡打斷點才會進入。此方法適用大型程序,局部編譯,利於升級、測試,部署簡易(不必打包,或者可以自己制作打包程序,因為只需要單純的復制物理文件而已)。
不管是哪種引用,都會在引用者的路徑下面生成被引用的dll,不同的是,項目引用會保持同步更新,而dll物理引用不會更新引用者路徑下的dll,除非自己本身的生成路徑就是引用者的路徑(或者清理下或者重新生成引用者,但這不推薦,一般把生成路徑指定到引用者路徑)。