31

我正在使用脚本中的 MSBuild 来编译我的项目。我注意到它只是构建而不是清理/重建。

我有以下内容:

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

如何强制清理/重建?

4

3 回答 3

40

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

于 2015-05-07T20:58:12.173 回答
35

改变

<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 任务文档

于 2012-09-19T14:10:14.830 回答
1

总是尝试使用

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

因为根据这篇 MSDN 文章,当您的解决方案中有多个项目使用“重建”作为目标时,可能会导致清理和构建以并行方式发生。这可能会导致项目依赖项出现问题。

但是当您使用“Clean and Build”作为目标时,只有在清理完所有项目后才会开始构建。

于 2017-08-02T07:02:33.497 回答