asp.net - tag - asp net mvc core htmlhelper




Компилировать представления в ASP.NET MVC (6)

Вы можете использовать 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 / »

Также есть задача AspNetCompiler в MSDN, показывающая, как интегрировать 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>

Я хочу, чтобы задача msbuild скомпилировала представления, чтобы я мог видеть, есть ли ошибки компиляции во время ... времени компиляции. Есть идеи?


Использование Visual Studio Power Tools ( бесплатное ) расширение помогает немного . В частности, функция Solution Error Visualizer . С его помощью ошибки компиляции отображаются визуально в проводнике решений (в исходном файле, где была обнаружена ошибка). По какой-то причине, однако, эта функция не работает, как с другими ошибками в другом месте кода.

С просмотрами MVC любые ошибки времени компиляции по-прежнему будут подчеркнуты красным цветом в их соответствующих файлах .cs, но передача этих ошибок не распространяется вверх в обозревателе решений (никоим образом, даже не в исходном файле).

Спасибо за BlueClouds за исправление моего предыдущего заявления.

Я только что сообщил об этом как о issue в проекте github расширения.


Ответ, данный здесь, работает для некоторых версий MVC, но не для других.

Простое решение работало для MVC1, но при обновлении до MVC2 представления больше не обрабатывались. Это было связано с ошибкой в ​​файлах проектов веб-сайта. См. Статью Haacked.

См. Это: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx


Сборка> Анализ кода выполнения

Горячая клавиша: Alt + F11

Помог мне поймать ошибки Razor.


Из документа readme word для 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, чтобы включить проверку времени просмотра в режиме сборки, выполнив следующие шаги:

  1. Откройте файл проекта в текстовом редакторе.
  2. Добавьте следующий элемент под самым верхним элементом <PropertyGroup> : <MvcBuildViews>true</MvcBuildViews>
  3. В конце файла проекта раскомментируйте элемент <Target Name="AfterBuild"> и измените его, чтобы он соответствовал следующему:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>

Я, честно говоря, рекомендовал бы пакет RazorGenerator nuget . Таким образом, ваши представления имеют файл .designer.cs сгенерированный при его сохранении, и .designer.cs получения ошибок времени компиляции для ваших представлений они также предварительно скомпилированы в сборку (= более быстрая разминка), а Resharper также предоставляет дополнительную помощь.

Для этого используйте пакет RazorGenerator nuget в проекте ASP.NET MVC и установите расширение « Razor Generator » под пунктом Инструменты → Расширения и обновления .

Мы используем это, и накладные расходы на компиляцию с этим подходом намного меньше. Кроме того, я бы, вероятно, рекомендовал .NET Demon от RedGate, что существенно снизило время компиляции.

Надеюсь это поможет.





msbuild