有寫 ASP.NET MVC 的人應該瞭解,當部署 ASP.NET MVC 網站時通常都必須先在伺服器端安裝 ASP.NET MVC 執行環境 (Runtime) 才能正常執行,這個安裝的步驟主要是將 ASP.NET MVC 組件註冊進 GAC (Global Assembly Cache) 中,這點安裝步驟其實還算容易,不過並不是所有系統管理者都願意幫你做這一步,所以若要將組件一一內嵌到 Bin 目錄下就必須特別設定,但 ASP.NET MVC 3 with Razor Syntax 的設定比 ASP.NET MVC 2 的設定複雜許多,今天我就來教各位一個最無腦的設定法,又快又精準的一次設定到好!
我們先來講講 ASP.NET MVC 2 手動設定方法,如下圖示,先在 方案總管 裡展開 ASP.NET MVC 專案 / 參考 / 並選取 System.Web.Mvc 組件後按下 F4 功能鍵開啟「屬性」視窗,並將 複製到本機 (Copy Local) 屬性值切換成 True 即可!
這樣設定之後,下次建置專案就會在 Bin 目錄下看到 System.Web.Mvc.dll 組件,也代表你部署到正式環境時不需要額外再安裝 ASP.NET MVC 執行環境就能順利執行 ASP.NET MVC 網站。
如果是 ASP.NET MVC 3 的話,可以參照 黑暗執行緒 的 ASP.NET MVC 3網站BIN目錄手動部署 文章,該文章有詳細的說明與參考連結,相較於 ASP.NET MVC 2 來說,ASP.NET MVC 3 手動設定上的確有點麻煩。
關於這個問題,微軟已經幫我們想好了,在 Visual Studio 2010 SP1 裡新增了一個功能叫做「新增可部署的相依性」,光看翻譯還不一定知道他的意思,但這佛心來的東西你一定要知道!^_^
不管是 ASP.NET MVC 2 或 ASP.NET MVC 3,此功能都會自動的幫你判斷有哪些組件應該被加入到 Bin 目錄下,以下是圖示畫面:
如果你的網站是 ASP.NET MVC 2 或 ASP.NET MVC 3 但沒有使用 Razor 語法的話,只需要勾選第一個選項即可:
執行完之後,專案檔的屬性會自動被修正,組件在建置之後也會自動出現在 Bin 目錄下:
請注意:如果你今天的專案是 ASP.NET MVC 3 with Razor Syntax 的話,你還是僅需勾選 ASP.NET MVC 這個項目即可,此功能會自動幫你挑出 ASP.NET MVC 3 所需的組件出來,如下圖是使用 ASP.NET MVC with Razor Syntax 的專案所產生出來的組件清單!
如果你的專案類型是 純 ASP.NET Web Pages (例如從 WebMatrix 開啟 Visual Studio 2010 進行開發) 的話,這時你才有必要勾選 含有 Razor 語法的 ASP.NET Web pages 選項!
像這些組件如果都要手動來設定,可想見有多挫折才是,這時你才會感覺到這個小功能的價值所在! ^_^
相關連結