2011-02-26 99 views
0

我正在使用發佈嚮導併發布除我的Controllers文件夾以外的所有必需文件。我假設我需要一個控制器。發佈我的ASP.NET MVC項目不會發布所有必需的文件

我導航到打包/發佈Web設置,我需要調整這裏的任何東西嗎?我猜這個設置不正確。如果我將下拉列表更改爲發佈此文件夾/解決方案中的所有文件,它是否會嘗試上傳所有不需要複製到服務器的引用的DLL?

+0

你的控制器應該被編譯成一個程序集,然後被複制。你實際上不應該有服務器上的源文件? – 2011-02-26 06:08:53

+0

@Mike Geise,所以模型和控制器文件夾都不會被複制過來呢? – 2011-02-26 06:12:16

+0

是否有任何理由包含控制器文件,因爲它已經存在於程序集中,並且不需要它 – Adeel 2011-02-26 06:13:45

回答

3

在構建或發佈時,ASP.NET Web項目(包括MVC項目),.cs文件(本例中爲控制器)將編譯到/ bin/[your.project] .dll程序集。

因此,您不需要發佈/複製.cs文件。

+0

你能告訴我爲什麼這是在MVC而不是ASP.NET中完成的嗎? – 2011-02-26 06:14:48

+0

它在ASP.NET中完成(如果您執行File - > New Project並選擇web)。不適用於ASP.NET網站。 – Craig 2011-02-26 06:15:53

+0

ASP.NET Web站點選項更多的是您在哪裏可以複製一切.cs,.aspx,無論到服務器的哪個位置,並且它們都在運行時進行編譯。 ASP.NET web項目和mvc項目都是預編譯的(除了標記之外,因爲它總是在運行時編譯)。 – Craig 2011-02-26 06:18:02

1

控制器和模型代碼被編譯到網站的dll中。視圖被部署在他們的文件夾中。

+0

這非常有趣。做這件事的原因是什麼?它是這樣的,Web服務器不必編譯它? – 2011-02-26 06:11:16

+0

@Nick,你不(也不應該)在ASP.NET Webforms上做這件事。出於安全+性能原因,cs文件不應該被複制到服務器上。 – neebz 2011-02-26 08:35:22

+0

@nEEbz,我很驚訝,我從來沒有讀過任何地方,當我最初開始學習webforms - yikes時,我必須回去編譯這些文件。 – 2011-02-26 09:04:18