2009-03-16 3 views
14

Я обнаружил, что в .csproj для проекта ASP.NET MVC существует следующая цель:время компиляции MVC вид проверки с MSBuild

<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" /> 
</Target> 

Это исследует MvcBuildViews BOOL свойство в .csproj, который если установлено значение true, получает сборку для проверки представлений.

Я использую NAnt для создания моего приложения для развертывания, можно ли запустить эту цель из командной строки msbuild без необходимости изменения csproj? (Я хочу, чтобы он запускался только при развертывании, а не в каждой сборке, поскольку его медленный + resharper ловит его в VS в любом случае)

Если нет, то как перевести приведенный выше код в командную строку msbuild, чтобы я мог изменить сценарий развертывания ? Вот мой текущий скрипт:

<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> 

ответ

16

Установка свойства 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> 
+0

Блестящий, я не знал, что вы можете это сделать, но затем, глядя на мой собственный сценарий, я, очевидно, уже делаю это для нескольких других свойств! DOH! –

Смежные вопросы