Возникли проблемы с установкой MVC 3 rc1 Razor cshtml файла.

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

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

Задание для параметра "Скомпилировать" действия по-прежнему, по-видимому, компилируется, с дополнительным преимуществом ошибок времени компиляции и предупреждений, генерируемых для любых ошибок кодирования в cshtml.

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

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

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

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

1 ответ

Решение

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

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

Так что ответить на ваши вопросы

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

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

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