Мне нужно иметь такую же структуру, чтобы я понял, как разделить области на отдельные проекты.Никаких изменений кода не требуется, нужно лишь немного поработать над настройкой.
Я собираюсь создать запись в блоге по этому вопросу, но вот основные шаги.
Предположим, выу вас есть один проект приложения MVC, и это будет ваше приложение "shell".
щелкните правой кнопкой мыши на проекте оболочки и выберите "Add Area ...".Введите название области.Это создаст папку Области с вашей областью в ней.(Это не требуется на 100%, но вам нужна папка «Области», и вы можете украсть класс XXXXAreaRegistration для вашего приложения.)
Создайте новый пустой проект MVC3 в своем решении, чтобысоответствует вашей области.Переместите файл XXXXAreaRegistration.cs в новый проект и отрегулируйте пространство имен в соответствии с требованиями.
Удалите папку в папке областей, добавленной мастером шаблонов.
Измените файл web.config нового проекта и извлекитеСтроки подключения и аутентификация, членство, профиль, разделы ролей.Вам на самом деле не нужен web.config, но бритва intellisense не работает без него.
Создайте виртуальный каталог в папке «Области» проекта оболочки с именемвашей области в качестве псевдонима и укажите его для вашего "области" проекта.Для этого вам нужно будет использовать IIS или IIS Express.Я использую IIS.В IIS Express вы должны изменить файл конфигурации.Я думаю, что у ScottGu была запись в блоге о том, как это сделать.
Создайте событие post-build в вашем проекте "area", чтобы скопировать dll в папку bin проектов "shell".Мое событие сборки: copy $ (TargetDir) \ $ (TargetFileName) $ (SolutionDir) \ ShellProjectName \ bin \ $ (TargetFileName)
В оболочке web.config добавьте область «"проект в раздел System.Web / Assemblies.
Вместо 6/7 вы можете просто ссылаться на проект" area "с проектом" shell ", и он работает так же хорошо.Но тогда вам придется каждый раз развертывать все «области» dll.Я, вероятно, собираюсь выполнить некоторый тип зондирующего кода, чтобы добавить сборки "area" в домен приложения при запуске приложения с помощью отражения или MEF.
Возможно, вы также захотите отредактировать свою маршрутизацию и добавить фильтр пространства именк нему как в приложении оболочки, так и в приложении области.Таким образом, вам не нужно беспокоиться о дублировании имен контроллеров, конфликтующих между приложением продажи и приложениями области.
Вот и все.Как только я получу официальную запись в блоге, я постараюсь не забыть добавить сюда ссылку.
Я написал, как я делаю это, на http://bob.archer.net/content/aspnet-mvc3-areas-separate-projects, если кому-то интересно.