The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何將 ASP.NET MVC 相依的組件一起部署到 Bin 目錄下

有寫 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 選項!

像這些組件如果都要手動來設定,可想見有多挫折才是,這時你才會感覺到這個小功能的價值所在! ^_^

相關連結