Функция «Публикация» в Visual Studio предотвращает компиляцию приложения ASP.NET MVC - PullRequest
4 голосов
/ 17 сентября 2011

Я заметил странную проблему при публикации FTP моего приложения ASP.NET MVC в Visual Studio:

После публикации оно не будет компилироваться.Я получаю эту ошибку:

Ошибка использовать раздел, зарегистрированный как allowDefinition = 'MachineToApplication' за пределами уровня приложения.Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS.

Из моих исследований, на данный момент эта ошибка обычно возникает, когда файл Web.config, содержащий определенные разделы, глубже, чем rootв иерархии папок проекта.

Оказывается, у меня есть файлы Web.config, более глубокие в иерархии, которые я нашел в следующих папках:

  • [папка проекта]\ obj \ Release \ Package \ PackageTmp
  • [папка проекта] \ obj \ Release \ TransformWebConfig \ original
  • [папка проекта] \ obj \ Release \ TransformWebConfig \ transformed

Проблема в том, что я не помещал эти файлы в эти места.Они копируются туда во время процесса публикации (в частности, публикация по FTP).Если я вручную удалю Web.configs (или пересоберу свое решение), я снова смогу скомпилировать.(Ну, перестройка , как правило, работает - произойдет сбой, если я переключусь с Отладка на Выпуск или наоборот после публикации.)

Теперь к моим вопросам:

ЕстьЯ испортил настройку или сделал что-то не так или это просто неприятность, с которой мне приходится иметь дело?Должен ли я быть обеспокоен?Исправлена ​​ли эта проблема?

1 Ответ

5 голосов
/ 17 сентября 2011

Используете ли вы <MvcBuildViews>true</MvcBuildViews> в файле веб-проекта .csproj?если да, то это может быть проблемой.Установите значение false и проблема исчезнет.

Здесь описано другое решение, если вы действительно хотите использовать функцию MvcBuildViews: ссылка Я не проверял это, но, кажется, есть хорошие отзывы!

...