2010-02-22 9 views
9

He agregado un paso adicional después de la compilación para poder integrar mspec con teamcity. Sin embargo, no quiero ejecutar esto cuando estoy construyendo en el IDE, ya que alarga el tiempo de construcción. ¿De alguna manera puedo detectar si estoy creando desde el IDE y no ejecutar este objetivo específico? Esto es lo que tengo hasta ahora.¿Es posible detectar al construir en el VS IDE?

<Target Name="RunSpecs"> 
    <PropertyGroup> 
     <AdditionalSettings>--teamcity</AdditionalSettings> 
     <MSpecCommand>..\Lib\mspec\mspec.exe $(AdditionalSettings) "$(TargetDir)$(AssemblyName).dll"</MSpecCommand> 
    </PropertyGroup> 
    <Message Importance="high" Text="Running Specs with this command: $(MSpecCommand)" /> 
    <Exec Command="$(MSpecCommand)" IgnoreExitCode="true" /> 
</Target> 
<Target Name="AfterBuild" DependsOnTargets="RunSpecs" /> 

La solución fácil es agregar otra configuración de compilación, pero preferiría no hacerlo.

También la salida de TeamCity que se descarga a la ventana de salida es algo molesto. :)

+0

temporalmente solo estoy ejecutando esto en la versión de lanzamiento de la compilación, pero todavía estoy interesado en saber si es posible detectar si la compilación se está realizando en el IDE – Dave

Respuesta

9

Sí, puedes consultar la propiedad BuildingInsideVisualStudio.

Así que en su caso se podría hacer algo como lo siguiente:

<Target Name="RunSpecs" Condition=" '$(BuildingInsideVisualStudio)'!='true' "> 
    <PropertyGroup> 
     <AdditionalSettings>--teamcity</AdditionalSettings> 
     <MSpecCommand>..\Lib\mspec\mspec.exe $(AdditionalSettings) "$(TargetDir)$(AssemblyName).dll"</MSpecCommand> 
    </PropertyGroup> 
    <Message Importance="high" Text="Running Specs with this command: $(MSpecCommand)" /> 
    <Exec Command="$(MSpecCommand)" IgnoreExitCode="true" /> 
</Target> 

Aviso la condición en el objetivo. FYI, generalmente generalmente advise against putting condition on targets pero este es un buen uso para ellos.

+0

¡Muchas gracias! – Dave

Cuestiones relacionadas