Eu quero uma tarefa msbuild para compilar as visualizações para que eu possa ver se há erros de tempo de compilação no momento ... tempo de compilação. Alguma ideia?
Eu quero uma tarefa msbuild para compilar as visualizações para que eu possa ver se há erros de tempo de compilação no momento ... tempo de compilação. Alguma ideia?
Respostas:
Eu francamente recomendaria o pacote de pepitas RazorGenerator. Dessa forma, suas visualizações têm um .designer.cs
arquivo gerado quando você as salva e, além de obter erros de tempo de compilação para as visualizações, elas também são pré-compiladas no assembly (= aquecimento mais rápido) e o Resharper também fornece ajuda adicional.
Para usar isso, inclua o pacote de nuget RazorGenerator no projeto ASP.NET MVC e instale a extensão " Razor Generator " no item em Ferramentas → Extensões e atualizações .
Usamos isso e a sobrecarga por compilação com essa abordagem é muito menor. Além disso, eu provavelmente recomendaria o .NET Demon da RedGate, o que reduz ainda mais o impacto no tempo de compilação.
Espero que isto ajude.
Do documento leia-me doc para RC1 (não indexado pelo google)
Etapa de pós-compilação do compilador ASP.NET
Atualmente, erros em um arquivo de exibição não são detectados até o tempo de execução. Para permitir a detecção desses erros no momento da compilação, os projetos do ASP.NET MVC agora incluem uma propriedade MvcBuildViews, que está desabilitada por padrão. Para habilitar essa propriedade, abra o arquivo do projeto e defina a propriedade MvcBuildViews como true, conforme mostrado no exemplo a seguir:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
Nota A ativação desse recurso adiciona alguma sobrecarga ao tempo de compilação.
Você pode atualizar os projetos criados com liberações anteriores do MVC para incluir a validação de visualizações em tempo de construção, executando as seguintes etapas:
<PropertyGroup>
elemento mais alto :
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
elemento e modifique-o para corresponder ao seguinte:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Você pode usar aspnet_compiler para isso:
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
onde " / Virtual / Aplicativo / Caminho / Ou / Caminho / No / IIS / Metabase " é algo como isto: " / MyApp " ou " / lm / w3svc2 / 1 / root / "
Também há uma tarefa AspNetCompiler no MSDN, mostrando como integrar aspnet_compiler ao 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>
Além disso, se você usar o Resharper, poderá ativar o Solution Wide Analysis e ele detectará quaisquer erros do compilador que você possa ter nos arquivos aspx. Isso é o que fazemos...
A resposta dada aqui funciona para algumas versões do MVC, mas não para outras.
A solução simples funcionou para o MVC1, mas na atualização para o MVC2 as visualizações não estavam mais sendo compiladas. Isso ocorreu devido a um erro nos arquivos de projeto do site. Veja este artigo haacked.
Veja isto: http://haacked.com/archive/2011/05/09/compiling-mvc-views-in-a-build-environment.aspx
Compilar> Executar análise de código
Tecla de atalho: Alt+F11
Ajudou-me a detectar erros do Razor.
Usar a extensão Ferramentas de Produtividade do Visual Studio ( gratuita ) ajuda um pouco . Especificamente, o Solution Error Visualizer
recurso. Com ele, erros de compilação marcados visualmente no gerenciador de soluções (no arquivo de origem em que o erro foi encontrado). Por alguma razão, no entanto, esse recurso não funciona como outros erros em qualquer outro lugar do código.
Nas exibições do MVC, quaisquer erros em tempo de compilação ainda serão sublinhados em vermelho em seus respectivos arquivos .cs, mas a sinalização desses erros não é propagada para cima no Solution Explorer (de maneira alguma, mesmo que não no arquivo de origem).
Obrigado por BlueClouds
corrigir minha declaração anterior.
Acabei de relatar isso como um problema no projeto github da extensão.