Компиляция представлений с включением MvcBuildViews в MVC 2 Portable Area

У меня большой проект.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 ответа

Решение

Ты не можешь

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

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

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

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

Другие вопросы по тегам