Настройка файлов Razor на «Компиляция» не должна работать (и я удивлен, что вы говорите, что это подходит для вас), потому что файлы, помеченные как «Компиляция», передаются в языковой компилятор, соответствующий типам вашего проекта. И большинство файлов Razor не являются допустимыми исходными файлами C # или VB, и они приводят к ошибкам компилятора.
Похоже, что VS делает что-то странное и не всегда показывает ошибку при компиляции из IDE. Тем не менее, он всегда терпит неудачу, когда вы компилируете проект непосредственно из командной строки.
Итак, чтобы ответить на ваши вопросы
- потому что не работает
- Это не сработает (сейчас или позже). Фактически, когда вы публикуете / развертываете свой сайт, ваши файлы Razor не будут скопированы.
И чтобы быть техническим, «Build Action» должен быть «Content», потому что именно так работает публикация / развертывание asp.net (а в более ранних превью это было «None», потому что VS фактически ничего не знал о файлах Razor и это поведение по умолчанию; целью «изменений» было заставить все работать вообще).