之前也曾經想過,這些功能根據不同處於項目中的不同文件夾內,比如會員的會在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,也可以了,呵呵,原理奧妙都在這個虛擬目錄中呀.