2010-11-18 33 views
4

默認的構建操作已從「無」更改爲「內容」,據我所知支持Visual Studio發佈/部署。任何問題設置MVC 3 rc1 Razor cshtml文件編譯行爲編譯?

對於一個特定的項目,我不使用Visual Studio發佈/部署方法,也不需要在命令行編譯。

設置建設行動「編譯」似乎仍然編譯,編譯時錯誤和警告的好處在CSHTML任何編碼錯誤的產生。

這似乎是比通常的僅運行時錯誤更大的好處。

如果我將構建操作更改爲「編譯」,有人知道我稍後會遇到什麼問題嗎?

非常感謝..

編輯:我不知道未來的問題,我可能會遇到,比VS部署,或命令行編譯等,但爲了安全,我就在marcind提到了預編譯選項他的評論。我將其標記爲最接近的答案。

回答

4

將您的Razor文件設置爲「編譯」應該不起作用(並且我很驚訝您會說它對您有用),因爲標記爲「編譯」的文件將傳遞到適合您項目類型的語言編譯器。大多數Razor文件都不是有效的C#或VB源文件,它們會產生編譯器錯誤。

它確實看起來像VS正在做一些奇怪的事情,並且從IDE編譯時並不總是顯示錯誤。但是,直接從命令行編譯項目時,它總是失敗。

因此,要回答你的問題

  1. 因爲它不工作
  2. 這是不行的(現在或以後)。事實上,當您發佈/部署您的網站時,您的Razor文件將不會被複制。

而且是技術,「構建行動」必須是「內容」,因爲這是如何asp.net發佈/部署工作(和早期預覽,這是「無」,因爲VS實際上並未一無所知Razor文件,這是默認行爲;「更改」的目的是讓事情完全起作用)。

+0

感謝您的回覆。更新了問題以符合我不使用發佈/部署的條件。也改變了「它仍然有效」,「仍似乎編譯」 - 因爲它成功地,除非你在cshtml中發生語法錯誤。 我認爲這是非常有用的,但似乎無法找到它的任何文檔。 – 2010-11-18 19:13:13

+0

你可以嘗試從命令行編譯你的應用程序?打開一個VS命令行,進入你的項目目錄,然後運行'msbuild ProjectName .proj'。 – marcind 2010-11-18 19:27:16

+2

順便說一句,已經有一個工廠爲預編譯的意見吧:http://stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc – marcind 2010-11-18 19:32:15