Компиляция представлений с включением MvcBuildViews в MVC 2 Portable Area - PullRequest
4 голосов
/ 24 сентября 2010

У меня большой проект .net mvc 2, в котором мы используем MvcContrib Portable Area. Существует основной веб-сайт, который загружает множество модулей (модулей PA).

Основное приложение содержит Site.Mater в своей папке ~\Views\Shared. каждый модуль также имеет свой собственный Site.Master, который наследуется от этого основного.

На данный момент мы используем что-то вроде:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" MasterPageFile="~/Views/Shared/Site.Master" %>

После компиляции представление обрабатывает основной Site.Master прямо, так как это относительный путь. Теперь я получил требование для построения представлений во время компиляции. Поэтому я включил MvcBuildViews = true в каждом проекте модуля веб-PA.

Конечно, я получаю ошибки, говоря "/temp/Views/Shared/Site.Master is not found".

Как сохранить Portable Area со встроенным содержимым и гарантировать, что представления не содержат ошибок?

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 28 сентября 2010

Вы не можете.

Я имею дело с этой же проблемой, и вы не можете легко подделать физическое местоположение файла.

Единственное решение - создать заполнитель и удалить не встроенный файл заполнителя как часть процесса сборки. Преимущество этого метода в том, что не встроенный ресурс будет загружаться немного быстрее при разработке.

Еще одна вещь, которую следует учитывать, это то, что загрузка ваших представлений как встроенных ресурсов происходит довольно медленно. Перемещение вашего процесса сборки централизованных «общих» представлений в локальный проект приведет к повышению производительности ваших пользователей.

1 голос
/ 29 сентября 2010

на тот случай, если вы просто хотите убедиться, что все работает нормально, вы можете использовать Watin и написать несколько юнит-тестов, которые собираются проверить это

...