如何强制的MSBuild清理或重建?(How do I force MSBuild to clean

2019-07-31 16:44发布

我使用的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>

如何强制清洁/重建?

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



Answer 2:

“%WINDIR%\ Microsoft.NET \框架\ v4.0.30319 \ MSBuild的” Project.sln / P:配置=推出/吨:重建



Answer 3:

始终尝试使用

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

因为按照这个MSDN文章 ,当你使用“重建”在您的解决方案多个项目作为目标,可能会导致干净,并建立以并行的方式发生。 这可能会导致项目依赖的问题。

但是,当你使用“清理并生成”为目标,构建只会所有的项目进行清洁后开始。



文章来源: How do I force MSBuild to clean or rebuild?