比方說,你有兩個網站的項目,網站和網站B.現在內部網站的App_Code文件夾的解決方案,有一個ClassX.cs文件中定義的類X。如果網站B也需要訪問ClassX.cs,你會怎麼做?使用相同的App_Code文件類跨網站
有什麼辦法要共享的文件夾App_Code文件這個文件?假設將文件移動到公共庫是不可能的。
比方說,你有兩個網站的項目,網站和網站B.現在內部網站的App_Code文件夾的解決方案,有一個ClassX.cs文件中定義的類X。如果網站B也需要訪問ClassX.cs,你會怎麼做?使用相同的App_Code文件類跨網站
有什麼辦法要共享的文件夾App_Code文件這個文件?假設將文件移動到公共庫是不可能的。
請不要使用這些邪惡的網站項目。改爲使用Web應用程序項目,將共享類打包到庫項目中,並從所有Web應用程序中引用它。
收拾好你的共享類成庫(一個DLL),並從每個網站上添加引用單擊鼠標右鍵,並選擇您所創建的庫。
我不相信有不動,ClassX到一個新的代碼庫項目的方式。 .NET要求所有程序集的依賴關係與程序集本身或GAC中的相同文件夾中存在,以便自動檢測。
你可以嘗試通過反射類手動加載組件,雖然這是一個有點哈克。
最好的解決辦法,如果你有可用的時間和傾斜承接它,會去用它移動到Web應用程序項目的JRoppert的解決方案。然後,您可以使用Web引用(與VS中的常規引用一樣好)來引用ClassX。
HTH
隨着限制「假設將文件移動到一個公共庫是不可能的。」唯一可以做到這一點的方法是使用NTFS聯結點來創建符號鏈接,以在兩個文件夾中都具有相同的.cs文件。
雖然這是一個可怕的選項(出於版本原因)將其移動到公共庫是最好的選擇。
這裏有一個關於NTFS交接點的Wikipedia條目 http://en.wikipedia.org/wiki/NTFS_junction_point
,這裏是一個工具,用於創建他們 http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
「邪惡」是一個很強烈的字眼。使用WebSite模型有合理的理由。並非每個Web應用程序都是一個三環境託管部署的企業應用程序。 – 2008-09-17 22:30:45
我沒有看到任何使用網站項目的理由。我認爲網絡應用程序在使用開發流程,構建流程,質量保證,共享開發等方面更專業。您使用網站項目的原因是什麼?是的,'不聖潔'可能有點強壯 - 但只有一點... – JRoppert 2008-09-17 23:13:19