Razor-weergaven geven geen compileertijdfout [DUPLICEER]

Ik heb onlangs vs 2012 professional geïnstalleerd.

Wanneer ik mijn MVC4-webproject probeer te bouwen. Het herkent geen fout in de weergave van de scheermes wanneer ik “bouw” of “opnieuw bouwen”.

Voorbeeld :
Ik heb een naamruimte uit het project verwijderd / of zeg het omgedoopt. Ik bouw de oplossing, het gaf me fouten in alle CS-bestanden, die ik heb opgelost door de naamruimte te veranderen. De hele oplossing build met succes. Toen ik het project runt, gaf het me Compilation Fout dat je naamruimte niet hebt gevonden, omdat de oude naamruimte nog steeds werd doorverwezen in sommige van de weergaven (* .cshtml-bestanden).

verwachte oplossing :
Ik wens wanneer ik “bouw” of “opnieuw bouwen”, het zou dergelijke fouten moeten herkennen en mij samen met andere fouten laten zien.

Dit werkte prima met vs 2010, ik mis ik elke configuratie?

Dank bij voorbaat !!
Amit

bewerken
Ik vond het antwoord zelf, ik denk dat het vroeg was om de vraag te plaatsen:

Razor-syntaxis met fouten Compileert wanneer het niet mag compileren

een ander probleem

Nadat u de waarde wilt wijzigen in TRUE in .csproject-bestand, wanneer ik begin met het bouwen
Het project Het toont fout, maar het toont slechts één fout tegelijk.
Laten we zeggen, ik heb 5 fouten in totaal 3 weergaven. het zou me gewoon één laten zien
fout. Is er een oplossing, zodat het alle 5 fouten laat zien?


1, Autoriteit 100%

Wanneer ik mijn MVC4-webproject probeer te bouwen. Het herkent geen fout in
Razor-weergave wanneer ik “bouw” of “opnieuw bouwen”.

lijkt normaal. Razor-weergaven worden dynamisch gecompileerd door de runtime van ASP.NET. Als u wilt dat uw mening is opgebouwd op Compile-Time, kunt u de volgende optie toevoegen aan uw .csprojbestand:

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

U kunt een kijkje nemen op de Dit artikel voor meer informatie.


2, Autoriteit 28%

Ik raad u aan om MMVCBuildViews-tag toe te voegen als een kind van de release-eigenschappengroup-tag, zodat de weergaven alleen worden gecompileerd wanneer u in de Release-modus compileert (of wanneer u in de Release-modus publiceert). Op deze manier is je app sneller als je debugging. En, u krijgt compileren-tijdcontroles voordat u wordt ingezet (wanneer u op de release-modus bouwt). Samenvattend krijg je het beste van beide werelden.

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

3, Autoriteit 23%

Volgens mijn ervaring, naast de
waar
Instelling hierboven vermeld, moet u nog steeds zorgen voor een onderstaande instelling in uw CSPROJ-bestand:

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

4, Autoriteit 3%

Het is echt heel eenvoudig antwoord, ga door deze stappen:

Project lossen

Project bewerken

Dan zoeken:

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

hieronder toevoegen

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

Dat is het dan Unload Project . Bouwen

En controleer of Ur-syntaxis goed werkt.

Ik weet het zeker.

Other episodes