2011-02-26 96 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