Подтвердить что ты не робот

Как заставить MSBuild очистить или перестроить?

Я использую MSBuild из script для компиляции моего проекта. Я заметил, что он просто делает сборку, а не чистую/перестраивает.

У меня есть следующее:

<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>

Как принудительно очистить/перестроить?

4b9b3361

Ответ 1

Изменить

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

к

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

или

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

Подробнее см. в документации MSBuild Task.

Ответ 2

"% windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild" Project.sln /p: Конфигурация = Release/t: Перестроить

Ответ 3

Всегда пытайтесь использовать

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

Потому что согласно эта статья MSDN, когда у вас есть несколько проектов в вашем решении с использованием "Rebuild" в качестве цели, может привести к строить, чтобы происходить параллельно. Это может вызвать проблемы в зависимостях проекта.

Но когда вы используете "Чистота и сборка" в качестве цели, сборка начнется только после очистки всех проектов.