使用MSBuild.exe进行增量构建

时间:2014-11-05 18:43:04

标签: command-line msbuild incremental-build

我通过Python调用子进程来构建Visual Studio 2010解决方案。当从命令行直接调用时,devenv.com需要15秒才能启动。但是当从Python调用时,它会跳跃大约1.5分钟。

当然,我希望从我们的构建中删除那个死时间。所以我决定测试MSBuild.exe(来自.NET 4)。它看起来像MSBuild.exe立即运行。但是......它似乎每次都是完整的构建而不是增量构建。

我使用的命令是

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" "C:\path\to\my\project.sln" /target:build /maxcpucount:8 /property:Configuration=Release

这似乎应该支持增量构建。但是我在网上发帖子说明msbuild可能无法支持这样的增量版本。

这可能吗?如果是这样,我做错了什么?

更新

我已经读过这个了。基于

http://msdn.microsoft.com/en-us/library/ms171483.aspx

http://www.digitallycreated.net/Blog/67/incremental-builds-in-msbuild-and-how-to-avoid-breaking-them

似乎我需要在.vcxproj文件中设置输入和输出属性。检查我的文件确实丢失了。

什么时候会产生?我的大多数.vcxproj文件都是从Visual Studio 2008转换而来的。但是我还生成了一个缺少输入和输出属性的新项目。

VS2010不能创建具有这些属性的项目吗?

更新:我们已经升级到VS 2013.现在,msbuild支持增量构建。从来没有达到VS 2010问题的最低点。

1 个答案:

答案 0 :(得分:2)

我认为不支持增量构建的事实是根据官方消息来源的虚假陈述,Managed Incremental Build此功能并包含在VS2010 SP1中

  

我们首先在VS2008中引入了托管增量构建功能。   在VS2010中,我们无法重新实现托管增量   构建系统转移到MSBuild的构建功能。我们收到了   强烈的客户要求此功能。结果,我们   重新实现了此功能,它包含在VS2010 SP1中。

我在网上找到的其他解决方案

  • 项目应该已经逐步建立(只需确保你 做构建而不是重建)。检查增量的最佳方法 构建工作是从命令行运行构建。第二 你建立它的时间应该几乎没有时间。

    如果事情仍在重建,那么也许你已经修改了 您的项目以某种方式搞乱了构建顺序。 查看构建日志(通过/ v选项)可以帮助您指出 发生了什么事。

  • 可能导致增量构建问题的其他原因是GenerateResource.TrackFileAccess Property此API支持.NET Framework基础结构,不能直接在代码中使用。 获取或设置一个开关,指定我们是否应该跟踪文件访问模式。