configuration msbuild cruisecontrol.net

configuration - ¿Cómo fuerzo a MSBuild a limpiar o reconstruir?



cruisecontrol.net (3)

Estoy utilizando MSBuild desde un script para compilar mi proyecto. Me he dado cuenta de que solo hace una compilación y no una limpieza / reconstrucción.

Tengo los siguientes

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build" ToolsVersion="4.0"> <Target Name="Build"> <MSBuild Projects="$(MSBuildProjectDirectory)/myproj.csproj" Targets="Build" Properties="OutputPath=$(MSBuildProjectDirectory)/../bin/" /> </Target>

¿Cómo fuerzo una limpieza / reconstrucción?


"% windir% / Microsoft.NET / Framework / v4.0.30319 / MSBuild" Project.sln / p: Configuration = Release / t: Rebuild


Cambio

<MSBuild Projects="$(MSBuildProjectDirectory)/myproj.csproj" Targets="Build" Properties="OutputPath=$(MSBuildProjectDirectory)/../bin/" />

a

<MSBuild Projects="$(MSBuildProjectDirectory)/myproj.csproj" Targets="Clean;Build" Properties="OutputPath=$(MSBuildProjectDirectory)/../bin/" />

o

<MSBuild Projects="$(MSBuildProjectDirectory)/myproj.csproj" Targets="Rebuild" Properties="OutputPath=$(MSBuildProjectDirectory)/../bin/" />

Para obtener más detalles, consulte la documentación de la tarea de MSBuild .


Siempre trate de usar

<MSBuild Projects="$(MSBuildProjectDirectory)/myproj.csproj" Targets="Clean;Build" Properties="OutputPath=$(MSBuildProjectDirectory)/../bin/" />

Porque de acuerdo con este artículo de MSDN , cuando tiene varios proyectos en su solución utilizando "Reconstruir" como objetivo, puede causar que la compilación y la construcción se realicen de manera paralela. Lo que puede causar problemas en las dependencias del proyecto.

Pero cuando usa "Limpiar y construir" como objetivo, la construcción comenzará solo después de que se hayan limpiado todos los proyectos.