2009-10-12 71 views
1

我目前正在開發大型應用程序。 目前,我有一個解決方案(這可能會在充滿時間的變化)與許多項目。中型/大型解決方案 - Visual Studio構建過程 - 需要諮詢

我已經設置了目錄結構:

\ LIB \(包含共享第三方組件) 構建\ 構建\ BIN(輸出目錄) 構建\ wwwroot文件(用於Web應用程序的輸出目錄) 配置\) 的src \(包含以下項目中的文件夾)

在各項目中,我已經設置了生成位置(輸出目錄)「.. \編譯\ BIN \」這一點,因爲如上所示,使項目在src目錄之上構建到\ bin目錄中。 在

Company.Entities 參考Company.Common 這有所有業務對象(客戶,訂單,產品)等....

Company.Common 包含的類格式字符串,日期,文件訪問等。 不包含對公司任何其他公司的引用。庫。

Company.Data 參考第三方LIB(溫莎城堡例如) 這包含像IRepository,ICustomerRepository,IOrderRepository等.... 接口擁有RepositoryFactory類 - 這有一個調用的方法「獲得( )「,它使用Ioc(Castle Windsor)返回,還包含用於解析這些存儲庫的當前實現的IoC。 Castle.config位於\ config \目錄中 - 並在此項目中包含「作爲鏈接」。我已經將它設置爲始終複製到輸出目錄

Company.Data.LinqToSql 參考Company.Data 這是當前數據訪問庫。 它是由國際奧委會

Company.Logic實例 引用Company.Data 業務邏輯層 - 有一個像GetProductById(字符串ID)方法 - 這反過來調用Repository.Get()GetById(ID)。 - 例如

Company.Tests 自我解釋...將在未來更多地使用它。

Company.Web 參考Company.Logic,Company.Entities,Company.Common 的Web UI層 - 這是主要的網站。

好的,希望能給你一點背景,介紹我當前的項目架構等。

目前,我正在構建一切到build/bin目錄,除了Company.Web,它構建到build/wwwroot(這增加了一個bin目錄) 然後我有一個後生成事件,複製aspx頁面,樣式表,圖像,js文件等....從src/Company.Web位置構建/ wwwroot 我已經配置了Visual Studio以使用IIS進行調試,並設置了iis虛擬目錄以指向我的生成/ wwwroot文件夾。

但是...... 某些必要的文件不會被內置到wwwroot文件/ bin目錄 如 - Company.Data.LinqToSql - 因爲這不是由proejcts引用,但使用的IoC

實例化哪有我改進了構建過程/項目結構以幫助我開發? 我會「大拇指」提出所有明智的建議。

回答

1

跳出來的一件事是將輸出文件複製到build/bin。發佈和調試版本是否有單獨的子文件夾?我曾參與過一個大型項目,該項目使用了與您相似的設置,我們經常遇到有人從一個構建切換到另一個構建的問題,但並非所有文件都必須重建(出於某種原因)。目錄通常包含來自兩個版本的文件的混合。

至於構建後事件,我儘量避免它們,因爲以後需要修改它們時,它們往往難以定位。當你需要開發者機器與構建服務器的不同行爲時,它們也會令人討厭。相反,我通常會創建一個.bat文件或MSBuild腳本來處理文件複製,壓縮等。

否則,這聽起來像您有一個像樣的結構和過程。在整個項目過程中,您可能會遇到問題,困惑等。請務必將這些記錄作爲潛在項目進行更改或考慮未來項目。

相關問題