Могу ли я предварительно скомпилировать свое приложение ASP.NET MVC? - PullRequest
13 голосов
/ 03 декабря 2008

Я попытался предварительно скомпилировать приложение ASP.NET MVC и развернуть его в окне IIS6 (с отображением по шаблону), однако я получаю сообщение об ошибке при отображении частичных представлений (пользовательских элементов управления). Он отлично работает на моей машине перед прекомпиляцией.

Ошибка:

Ошибка сервера в приложении "/".

Частичное представление "ListGrid" не удалось
быть найденным. Следующие места были
искал:
~ / Представления / Инициатива / ListGrid.aspx
~ / Представления / Инициатива / ListGrid.ascx
~ / Views / Shared / ListGrid.aspx
~ / Views / Shared / ListGrid.ascx

Я проверил Views \ Shared для файла, и его там не было, что я подумал, что это нормально, потому что он предварительно скомпилирован. Но только для смеха я положил в эту папку пустой файл с именами ListGrid.ascx, но затем я получил эту ошибку:

Ошибка сервера в приложении '/'.

Файл '/Views/Shared/ListGrid.ascx'
не был предварительно скомпилирован и не может
быть запрошенным.

Я гуглил и искал ТАК, но не мог найти подобных проблем, но безуспешно.

Ответы [ 2 ]

16 голосов
/ 21 декабря 2010

Вы можете предварительно скомпилировать приложение MVC, поместив его в действия после сборки в свойствах проекта:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -p "$(ProjectDir)." -v /$(ProjectName)

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

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

3 голосов
/ 04 декабря 2008

Хотя вы можете предварительно скомпилировать сайт MVC, файлы представления ascx и aspx находятся не в скомпилированных dll, а только в файлах .cs. Вам все еще нужно будет развернуть файлы представления .aspx и .ascx.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...