Я хочу, чтобы задача msbuild компилировала представления, чтобы я мог видеть, есть ли ошибки времени компиляции во время ... компиляции. Любые идеи?
Я хочу, чтобы задача msbuild компилировала представления, чтобы я мог видеть, есть ли ошибки времени компиляции во время ... компиляции. Любые идеи?
Ответы:
Честно говоря, я бы порекомендовал пакет RazorGenerator nuget . Таким образом, ваши представления получают .designer.cs
файл, сгенерированный при их сохранении, и в дополнение к получению ошибок времени компиляции для ваших представлений, они также предварительно компилируются в сборку (= более быстрый прогрев), и Resharper также предоставляет некоторую дополнительную помощь.
Чтобы использовать это, включите пакет nuget RazorGenerator в свой проект ASP.NET MVC и установите расширение « Razor Generator » в разделе « Инструменты» → «Расширения и обновления» .
Мы используем это, и издержки на компиляцию при таком подходе намного меньше. Вдобавок ко всему, я бы, вероятно, порекомендовал .NET Demon от RedGate, что еще больше существенно снижает время компиляции.
Надеюсь это поможет.
Из документа readme word doc для RC1 (не индексируется Google)
Шаг посткомпиляции компилятора ASP.NET
В настоящее время ошибки в файле представления не обнаруживаются до времени выполнения. Чтобы позволить вам обнаруживать эти ошибки во время компиляции, проекты ASP.NET MVC теперь включают свойство MvcBuildViews, которое по умолчанию отключено. Чтобы включить это свойство, откройте файл проекта и установите для свойства MvcBuildViews значение true, как показано в следующем примере:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
Примечание. Включение этой функции увеличивает время сборки.
Вы можете обновить проекты, созданные в предыдущих выпусках MVC, чтобы включить проверку представлений во время сборки, выполнив следующие действия:
<PropertyGroup>
элемент:
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
элемент и измените его так, чтобы он соответствовал следующему:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Вы можете использовать aspnet_compiler для этого:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site
где " / Virtual / Application / Path / Or / Path / In / IIS / Metabase " выглядит примерно так: " / MyApp " или " / lm / w3svc2 / 1 / root / "
Также на MSDN есть задача AspNetCompiler , показывающая, как интегрировать aspnet_compiler с MSBuild:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrecompileWeb">
<AspNetCompiler
VirtualPath="/MyWebSite"
PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
TargetPath="c:\precompiledweb\MyWebSite\"
Force="true"
Debug="true"
/>
</Target>
</Project>
Кроме того, если вы используете Resharper, вы можете активировать Solution Wide Analysis, и он обнаружит любые ошибки компилятора, которые могут возникнуть в файлах aspx. Это то, что мы делаем ...
В следующем выпуске ASP.NET MVC (будет выпущен в январе или около того) должна быть задача MSBuild, которая компилирует представления, так что вы можете подождать.
Посмотреть объявление
Ответ, приведенный здесь, работает для некоторых версий MVC, но не для других.
Простое решение работало для MVC1, но при обновлении до MVC2 представления больше не компилировались. Это было связано с ошибкой в файлах проекта сайта. Смотрите эту взломанную статью.
Смотрите это: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
Построить> Выполнить анализ кода
Горячая клавиша: Alt+F11
Помогли мне ловить бритвенные ошибки.
Использование расширения Power Tools ( бесплатно ) для Visual Studio немного помогает . Конкретно Solution Error Visualizer
особенность. При этом ошибки компиляции отмечаются визуально в обозревателе решений (в исходном файле, где обнаружена ошибка). Однако по какой-то причине эта функция не работает, как с другими ошибками где-либо еще в коде.
В представлениях MVC любые ошибки во время компиляции будут по-прежнему подчеркнуты красным в их соответствующих файлах .cs, но сигнализация этих ошибок не распространяется вверх в обозревателе решений (ни в коем случае, даже в исходном файле, в котором они содержатся).
Спасибо за BlueClouds
исправление моего предыдущего заявления.
Я только что сообщил об этом как о проблеме в проекте расширения github.