Время компиляции mvc view с помощью msbuild
Я обнаружил, что в проекте .csproj для проекта ASP.NET MVC существует следующая цель:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Это проверяет свойство bool MvcBuildViews в .csproj, которое, если установлено в true, получает сборку для проверки представлений.
Я использую NAnt для создания моего приложения для развертывания, можно ли запустить эту цель из командной строки msbuild без необходимости изменения csproj? (Я хочу, чтобы он запускался только при развертывании, а не каждый сбор, поскольку его медленный + resharper ловит его в VS в любом случае)
Если нет, как перевести приведенный выше код в командную строку msbuild, чтобы я мог изменить мое развертывание script? Здесь мой текущий script:
<target name="Deploy" depends="init">
<exec basedir="." program="${DotNetPath}msbuild.exe" commandline=" src/MyProject.Web/MyProject.Web.csproj /nologo
/t:Rebuild
/t:ResolveReferences;_CopyWebApplication
/p:OutDir=../../output/build/bin/
/p:WebProjectOutputDir=../../output/build/
/p:Debug=false
/p:Configuration=Release
/v:m"
workingdir="." failonerror="true" />
<call target="tests"/>
<call target="compress-js"/>
<call target="compress-css"/>
<call target="rar-deployed-code"/>
</target>
Ответы
Ответ 1
Настройка свойства MvcBuildViews на true должна работать.
<target name="Deploy" depends="init">
<exec basedir="." program="${DotNetPath}msbuild.exe" commandline=" src/MyProject.Web/MyProject.Web.csproj /nologo
/t:Rebuild
/t:ResolveReferences;_CopyWebApplication
/p:OutDir=../../output/build/bin/
/p:WebProjectOutputDir=../../output/build/
/p:Debug=false
/p:Configuration=Release
/p:MvcBuildViews=true
/v:m"
workingdir="." failonerror="true" />
<call target="tests"/>
<call target="compress-js"/>
<call target="compress-css"/>
<call target="rar-deployed-code"/>
</target>