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.