我正在通过Python调用subprocess构建Visual Studio 2010解决方案。当直接从命令行调用时,devenv.com需要大约15秒才能启动。但是当从Python调用时,这个时间跳到了大约1.5分钟。
自然地,我希望从我们的构建中删除这段死时间。因此,我决定测试一下MSBuild.exe(来自.NET 4)。看起来MSBuild.exe可以立即运行。但是...它似乎每次都进行完整的构建,而不是增量构建。
我使用的命令是:
它们会在什么时候生成?我的大多数.vcxproj文件都是从Visual Studio 2008转换而来的。但我也生成了一个新项目,其中也缺少了输入和输出属性。
VS2010不创建具有这些属性的项目吗?
更新:我们已经升级到VS 2013。现在msbuild支持增量构建。从未找到VS 2010问题的根本原因。
自然地,我希望从我们的构建中删除这段死时间。因此,我决定测试一下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问题的根本原因。