Подтвердить что ты не робот

Могу ли я предварительно скомпилировать приложение ASP.NET MVC?

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

Ошибка:

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


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

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

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


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

Я искал Google и искал SO, но не мог найти подобных проблем, но не повезло.

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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