我使用的顛覆和惡性(和Visual Studio IDE)南特:如何構建SVN:外部組件的引用第三方DLL的
我已經按照推薦的項目結構在http://blog.jpboodhoo.com/NAntStarterSeries.aspx主張建設類庫自包含的顛覆目錄,開發人員可以在其中完成結賬並立即在單個步驟中構建項目。
我的回購協議的結構是這樣的:
/Repo
/MainProject
/trunk
/doc <-- documentation
/lib <-- binary-only DLLs
/src <-- source code for MainProject
/tools <-- holds tools like nant, nunit, etc
...
/ClassLibrary1
/trunk
/doc
/lib
/src
/tools
...
/ClassLibrary2
/trunk
/doc
/lib
/src
/tools
什麼不明確的是如何構建具有類庫這反過來引用第三方庫DLL的自己的項目。
目前,我有喜歡
實例工作目錄主要項目:
/MainProject
/build
/lib
/src
/MainProject
/ClassLibrary1 <-- svn external to svn://server/repo/ClassLibrary1/trunk/src
/ClassLibrary2 <-- svn external to svn://server/repo/ClassLibrary2/trunk/src
/tools
...
在構建MainProject,我編譯類庫和輸出的DLL來build文件夾。但是,類庫本身具有它們引用的第三方二進制DLL。
我的問題是爲了構建MainProject我必須以某種方式從類庫中獲取第三方DLL到構建輸出中。我怎麼做?
想法: 1.我應該將這些第三方dll的副本存儲在MainProject的lib文件夾中嗎? 2.或者我的svn:external引用應該是類庫項目的主幹而不是src,以便我可以訪問類庫的lib文件夾? 3.我應該使用svn:externals的subversion 1.6功能到單個文件嗎?
「如果你保留一個單獨的副本所需的DLL,那麼你是不是真的允許引用的庫以確定它自己需要什麼「 這是有道理的。我想我的抵制是檢查圖書館的「額外」文件夾。特別是因爲我把這些工具放在圖書館裏。如果主項目引用了10個類庫,那麼我將有10個副本,庫創建腳本等。但是,當沒有必要時,這可能是一個擔心磁盤空間的實例嗎? – User 2009-08-14 16:25:03
我考慮得越多,將圖書館的主幹帶入svn:外部似乎是最明智的解決方案。我只是想要別人怎麼做的反饋。 – User 2009-08-14 23:38:27
我已經把我的svn:externals屬性抓到MainProject的src文件夾上的類庫。當我抓取Class Libraries的trunk/src目錄時,這是完全有意義的。但是,如果我切換到抓取類庫的主幹,我想知道是否將它拉入src目錄是有意義的。你把外部屬性放在哪個目錄? – User 2009-08-16 23:53:45