Мне нужно установить MVC 3/4 на веб-сервере для запуска приложения mvc

У меня есть приложение MVC 4 и хорошо работает на моей машине DEV, где я установил расширение MVC 4 для VS 2010.

При развертывании на веб-сервере с IIS 7 мне нужно установить MVC 4 или если DLL, включенная в мой проект, достаточна?

Причина, по которой я спрашиваю, - это требование для команды инфраструктуры.

Спасибо.

Ответ 1

Вы можете запустить приложение MVC без установки MVC на вашем сервере. В Visual Studio есть что-то называемое развертываемая зависимость. Это опубликует ваши MVC-библиотеки DLL в папке bin при ее публикации.

на странице msdn,

Это добавит сборки (файлы DLL) в проект веб-сайта или веб-приложение проект. При развертывании вашего веб-сайта или приложения файлы включенных в развернутый проект. Это полезно, если приложения или технологии, от которых зависит ваш проект, еще не установлены на сервер, на котором будет размещен ваш веб-проект. Например, вы можете использовать эта функция для развертывания веб-приложения ASP.NET MVC 3 на сервере который не имеет установленного ASP.NET MVC 3.

Щелкните правой кнопкой мыши Project и выберите Add Deployable Dependency из контекстного меню

enter image description here

Выберите, что все DLL, которые вы хотите опубликовать

enter image description here

После нажатия кнопки "ОК" вы увидите новую папку с именем _bin_deployableAssemblies. Теперь вы можете сделать обычную процедуру публикации, и вы будете иметь DLL в папке bin публикации.

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). По этой причине диалоговое окно Include Deployable Assemblies было удалено из Visual Studio 2012

Ответ 2

У вас больше нет возможности "Добавить развертываемые зависимости" в 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

Пошаговое руководство найдено здесь.

Ответ 3

Когда вы создаете конкретный проект MVCx в Visual Studio, вы увидите много ссылок MVC. *, добавленные в ваш проект, и по умолчанию все эти ссылочные свойства "Копировать локальное" установлены как "Истинные", это означает, что эти ссылки будут часть вашего окончательного решения при каждом развертывании. Вы также можете проверить, что эти специфические ссылки MVC также являются частью вашей папки BIN.

Наконец, когда вы упакуете это решение и опубликуете его на определенном веб-сервере или в Windows Azure или используете WebDeploy, все эти ссылки также будут частью вашего пакета. И поскольку эти ссылки отправляются в ваш пакет, поэтому когда бы вы не развернули решение, все ссылки на MVC будут там, и из-за этого вам не нужно будет развертывать MVC для этих конкретных серверов.

Я также хотел бы добавить, что в любое время, когда вы добавляете конкретную ссылку на свой проект в Visual Studio, установите для своего свойства "Копировать локальную" значение TRUE, чтобы ссылка всегда была частью вашего окончательного решения и сэкономила вам от проблем в будущем.