我正在使用脚本中的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>
如何强制清理/重建?
答案 0 :(得分:32)
更改
<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 documentation。
答案 1 :(得分:21)
&#34;%WINDIR%\ Microsoft.NET \框架\ v4.0.30319 \的MSBuild&#34; Project.sln / p:Configuration = Release / t:Rebuild
答案 2 :(得分:1)
始终尝试使用
<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj"
Targets="Clean;Build"
Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" />
因为根据this MSDN article,当你的解决方案中有多个项目使用“Rebuild”作为目标时,可能会导致清理和构建以并行方式发生。这可能会导致项目依赖性出现问题。
但是当您使用“清理并构建”作为目标时,只有在清理完所有项目后才会启动构建。