我使用的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>
如何强制清洁/重建?
更改
<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任务的文档 。
“%WINDIR%\ Microsoft.NET \框架\ v4.0.30319 \ MSBuild的” Project.sln / P:配置=推出/吨:重建
始终尝试使用
<MSBuild Projects="$(MSBuildProjectDirectory)\myproj.csproj"
Targets="Clean;Build"
Properties="OutputPath=$(MSBuildProjectDirectory)\..\bin\" />
因为按照这个MSDN文章 ,当你使用“重建”在您的解决方案多个项目作为目标,可能会导致干净,并建立以并行的方式发生。 这可能会导致项目依赖的问题。
但是,当你使用“清理并生成”为目标,构建只会所有的项目进行清洁后开始。