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

时间:2012-05-04 01:35:34

标签: asp.net-mvc asp.net-mvc-3

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

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

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

感谢。

4 个答案:

答案 0 :(得分:80)

您无需在服务器上安装MVC即可运行MVC应用程序。 Visual Studio中有一个叫做可部署依赖项的东西。这将在您发布时将您的MVC DLL发布到bin文件夹中。

来自msdn页面,

  

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

右键单击Project并从上下文菜单中选择Add Deployable Dependency

enter image description here

选择要发布的所有DLL

enter image description here

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

enter image description here

查看此帖子了解更多详情http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

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

编辑: 作为MVC4的,所有必要的组件运行的MVC应用程序会自动添加到bin目录,任何MVC4应用斌部署的(意味着你可以在一台服务器没有明确安装MVC运行)。因此,“已包含可部署的程序集”对话框已从Visual Studio 2012中删除

答案 1 :(得分:6)

您不再可以在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

找到分步指南here

答案 2 :(得分:4)

当您在Visual Studio中创建一个MVCx特定项目时,您将看到许多MVC。*引用被添加到您的项目中,默认情况下所有这些引用属性“Copy Local”都设置为“True”表示这些引用将是您将部署到的最终解决方案的一部分。您还可以验证这些MVC特定引用也是BIN文件夹的一部分。

最后,当您打包此解决方案并发布到特定Web服务器或Windows Azure或使用WebDeploy时,所有这些引用也将成为您的程序包的一部分。并且因为这些引用是在您的包中提供的,所以无论您将部署解决方案,所有MVC特定引用都将存在,因此您不需要将MVC部署到这些特定服务器。

我还想补充一点,当您在Visual Studio中添加对项目的特定引用时,将其属性“Copy Local”设置为TRUE,以便引用始终是最终解决方案的一部分,并将为您节省从未来的麻烦。

答案 3 :(得分:1)

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

running-an-asp-net-mvc-3-app-on-a-web-server-that-doesn-t-have-asp-net-mvc-3-installed.aspx