Возникли проблемы с установкой MVC 3 rc1 Razor cshtml файла. - PullRequest
4 голосов
/ 18 ноября 2010

Действие по умолчанию для сборки было изменено с «Нет» на «Содержимое», как я понимаю, для поддержки публикации / развертывания Visual Studio.

Для конкретного проекта я не использую публикацию / публикацию Visual StudioМетод развертывания, не требующий компиляции из командной строки.

Установка действия компоновки в «Компиляция» все еще компилируется, с дополнительным преимуществом ошибок времени компиляции и предупреждений о любых ошибках кодирования в cshtml.

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

Если я изменю действие сборки на "Компилировать", кто-нибудь знает, с какими проблемами я столкнусь позже?1009 *

Большое спасибо ..

edit: Я не уверен, с какими будущими проблемами я могу столкнуться, кроме развертывания VS или компиляции командной строки, но в целях безопасности я пошелдля опции прекомпиляции Марсин упоминает в своем комментарии.Я отметил это как самый близкий ответ.

1 Ответ

4 голосов
/ 18 ноября 2010

Настройка файлов Razor на «Компиляция» не должна работать (и я удивлен, что вы говорите, что это подходит для вас), потому что файлы, помеченные как «Компиляция», передаются в языковой компилятор, соответствующий типам вашего проекта. И большинство файлов Razor не являются допустимыми исходными файлами C # или VB, и они приводят к ошибкам компилятора.

Похоже, что VS делает что-то странное и не всегда показывает ошибку при компиляции из IDE. Тем не менее, он всегда терпит неудачу, когда вы компилируете проект непосредственно из командной строки.

Итак, чтобы ответить на ваши вопросы

  1. потому что не работает
  2. Это не сработает (сейчас или позже). Фактически, когда вы публикуете / развертываете свой сайт, ваши файлы Razor не будут скопированы.

И чтобы быть техническим, «Build Action» должен быть «Content», потому что именно так работает публикация / развертывание asp.net (а в более ранних превью это было «None», потому что VS фактически ничего не знал о файлах Razor и это поведение по умолчанию; целью «изменений» было заставить все работать вообще).

...