之前也曾經想過,這些功能根據不同處於項目中的不同檔案夾內,比如會員的會在member,後台管理的會在admin檔案夾,新聞的會在news檔案夾.這樣的話如果vs支援按不同檔案夾產生不同dll,那我每次修改不同功能的不同檔案只要上傳對應的dll就可以了,不再需要上傳整個website的dll.
不過想法是美好的,事實是殘酷的.vs並不支援這樣的功能.所以在功能直接互動和檔案分享權限設定並不多的功能上,我採取了重建立立一個projects的方法,比如把後台管理剝離出來,建立一個admin的website,這個新的projects放在website的根目錄下,然後修改檔案編譯產生dll後的目錄為..\bin並且刪除項目中的web.config.編譯後訪問,呵呵,真的可以訪問了,並且達到了拆分項目的要求.倒是並不完美,還有手動修改很多設定,並且這2個項目中不能共用相同的master,和usercontrol,甚至是圖片,js等,如果直接使用相對路徑,那麼視圖模式下將不能正常顯示,如果vs直接提供建立子項目的功能並能解決共用這些檔案,該有多好啊.
於是通過Google,找到一篇文章http://blogs.msdn.com/webdevtools/archive/2006/07/01/652986.aspx,Creating sub-projects in IIS with Web Application Projects,不幸的是文中提到的“Web Application Projects” add-in,我Download了,but can't install!
雖然這樣的應用程式我們無法製作,但是我們可以按照他的思路自己修改配置啊.
發現他的方法,跟一開始我的做法是很類似的,不過他可以共用master和user control,為什麼我的不能呢?
仔細翻看了一下,發現原來他在子項目中建立了虛擬目錄比如 http://localhost/group,所以之前使用~/Group.Master,只能訪問本項目中的master,而現在則可以訪問根目錄中的master了,試試usercontrol,也可以了,呵呵,原理奧妙都在這個虛擬目錄中呀.