web-dev-qa-db-fra.com

Comment forcer MSBuild à nettoyer ou à reconstruire?

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?

25
John

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 .

32
skolima

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

28
Geograph

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.

1
Yohan