J'utilise MSBuild à partir d'un script pour compiler mon projet. J'ai remarqué qu'il ne fait qu'une construction et non un nettoyage/reconstruction.
J'ai ce qui suit:
<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>
Comment forcer un nettoyage/reconstruction?
Changement
<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj"
Targets="Build"
Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" />
à
<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj"
Targets="Clean;Build"
Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" />
ou
<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj" Targets="Rebuild"
Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" />
Pour plus de détails, consultez la documentation des tâches MSBuild .
"% windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild" Project.sln/p: Configuration = Release/t: Rebuild
Essayez toujours d'utiliser
<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj"
Targets="Clean;Build"
Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" />
Parce que selon cet article MSDN , lorsque vous avez plusieurs projets dans votre solution en utilisant "Reconstruire" comme cible, le nettoyage et la génération peuvent se produire en parallèle. Ce qui peut provoquer des problèmes dans les dépendances du projet.
Mais lorsque vous utilisez "Clean and Build" comme cible, la génération ne démarre qu'après le nettoyage de tous les projets.