我需要在Web服务器上安装MVC 3/4才能运行mvc应用程序

我有一个MVC 4应用程序,并在我的DEV机器上运行良好,我为VS 2010安装了MVC 4扩展。

在使用IIS 7部署到Web服务器时,是否需要安装MVC 4或者我的项目中包含的dll是否足够?

我问的原因是我们需要向基础设施团队提供这个要求。

谢谢。

你可以运行一个MVC应用程序,而无需在你的服务器上安装MVC。 在Visual Studio中有一些调用的依赖项 。 这将发布您的bin文件夹中的MVC DLL发布。

从msdn页面,

这会将程序集(DLL文件)添加到网站项目或Web应用程序项目中。 部署网站或应用程序时,这些文件将包含在已部署的项目中。 如果您的项目所依赖的应用程序或技术尚未安装在托pipe您的Web项目的服务器上,那么这非常有用。 例如,可以使用此function将ASP.NET MVC 3 Web应用程序部署到未安装ASP.NET MVC 3的服务器。

右键单击Project并从上下文菜单中selectAdd Deployable Dependency

在这里输入图像说明

select你想要发布的所有DLL

在这里输入图像说明

点击确定后,您将看到一个名为_bin_deployableAssemblies的新文件夹。 您现在可以执行正常的发布过程,并且您将在发布输出的bin文件夹中具有dll。

在这里输入图像说明

检查这个职位的更多细节http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

你应该有Visual Studio 2010 SP1 。 否则,当您右键点击要发布的项目时,它将不会显示在上下文菜单中。

编辑:从MVC4,运行MVC应用程序的所有必要的程序集自动添加到bin目录,并且任何MVC4应用程序是bin-deployable(意味着您可以在服务器中运行它,而不显式安装MVC)。 为此,包含可部署的程序集对话框已从Visual Studio 2012中删除

在Visual Studio 2012中,您不再需要“添加可部署的依赖关系”选项。因此,您必须通过bin部署所有MVC程序集来手动执行此操作:

Microsoft.Web.Infrastructure System.Web.Helpers System.Web.Mvc System.Web.Razor System.Web.WebPages System.Web.WebPages.Deployment System.Web.WebPages.Razor 

一步一步的指导在这里find。

当你在Visual Studio中创build一个特定于MVCx的项目时,你会看到许多MVC。*引用被添加到你的项目中,默认情况下所有这些引用属性“Copy Local”被设置为“True”意味着这些引用将成为你的一部分最终的解决scheme,每当你将部署到。 您还可以validation这些MVC特定引用也是您的BIN文件夹的一部分。

最后,当你打包这个解决scheme并发布到一个特定的Web服务器或者Windows Azure或者使用WebDeploy时,所有这些引用也将成为你的包的一部分。 而且因为这些引用是在你的包中发布的,所以在你将部署解决scheme的地方,所有的MVC特定的引用将在那里,因此你不需要将MVC部署到这些特定的服务器。

我还想补充一点,任何时候当你在Visual Studio中添加一个特定的引用到你的项目时,将它的属性“Copy Local”设置为TRUE,这样引用将永远是你最终解决scheme的一部分,并且可以避免麻烦未来。

您只需要将dll部署到项目的bin中。 有关如何准备发布网站的示例,请查看以下博客文章:

运行一个ASPnetworkingMVC 3应用程序的Web服务器,没有T – 有ASP – NET – MVC 3 – installed.aspx 。