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

Вид бритвы не дает ошибку времени компиляции

Недавно я установил VS 2012 Professional.

Когда я пытаюсь создать свой MVC4 Web Project. Он не распознает ошибку в режиме бритвы, когда я делаю "Build" или "Re-Build".

Пример:
Я удалил пространство имен из проекта/или переименовал его. Я построил решение, он дал мне ошибки во всех файлах cs, которые я исправил, изменив пространство имен. Полное решение успешно завершено. Когда я запускаю проект, он дал мне Ошибка компиляции, сказав, что пространство имен не найдено, поскольку старое пространство имен все еще упоминалось в некоторых представлениях (файлы *.cshtml).

Ожидаемое решение:
Я хочу, когда я сделаю "Build" или "Re-Build", он должен распознать такие ошибки и показать мне вместе с любыми другими ошибками.

Это отлично работает с VS 2010, я не вижу никакой конфигурации?

Спасибо, заранее! Amit

Edit Я сам нашел ответ, думаю, было рано задавать вопрос:

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

Другая проблема

После изменения значения True в файле .csproject, когда я начну строить в проекте отображается ошибка, но одновременно отображается только одна ошибка. скажем, у меня 5 ошибок в общей сложности 3 просмотров. это просто покажет мне одну ошибка. Есть ли какое-либо решение, чтобы оно отображало все 5 ошибок?

4b9b3361

Ответ 1

Когда я пытаюсь создать свой MVC4 Web Project. Он не распознает ошибку в razor, когда я делаю "Build" или "Re-Build".

Кажется нормальным. Представления Razor динамически компилируются во время выполнения ASP.NET. Если вы хотите, чтобы ваши представления были созданы во время компиляции, вы можете добавить в свой файл .csproj следующий параметр:

<PropertyGroup>
    <MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>

Более подробную информацию вы можете найти в этой статье.

Ответ 2

Я рекомендую вам добавить тег MmvcBuildViews в качестве дочернего элемента тега ReleaseGroup Release, чтобы представления компилировались только при компиляции в режиме Release (или при публикации в режиме Release). Таким образом, ваше приложение быстрее, когда вы отлаживаете. И вы получаете проверки времени компиляции перед развертыванием (когда вы работаете в режиме Release). Таким образом, вы получаете лучшее из обоих миров.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <MvcBuildViews>true</MvcBuildViews>
  </PropertyGroup>

Ответ 3

По моему опыту, помимо   правда выше, вам все равно необходимо обеспечить, чтобы в вашем файле csproj существовали настройки ниже:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

Ответ 4

По умолчанию он не компилирует представления. Вы можете включить эту функцию, но имейте в виду, что она увеличит время сборки.

Вы можете включить компиляцию вида, выполнив следующие шаги:

  • Выгрузить проект
  • Открыть файл проекта
  • Найдите <MvcBuildViews>false</MvcBuildViews> и измените его на true
  • Закрыть проект проекта и перезагрузить проект

Ответ 5

Его действительно очень простой ответ Пройдите следующие шаги:

Выгрузить проект

Изменить проект

Чем поиск:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

ниже добавить

<Target Name="AfterBuild" Condition="'$(Configuration)'!='Debug'">
  <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>

Это то, что выгружает проект. Построить

И проверка синтаксиса Ur работает правильно.

Я уверен.