我通过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问题的最低点。
答案 0 :(得分:2)
我认为不支持增量构建的事实是根据官方消息来源的虚假陈述,Managed Incremental Build此功能并包含在VS2010 SP1中
我们首先在VS2008中引入了托管增量构建功能。 在VS2010中,我们无法重新实现托管增量 构建系统转移到MSBuild的构建功能。我们收到了 强烈的客户要求此功能。结果,我们 重新实现了此功能,它包含在VS2010 SP1中。
我在网上找到的其他解决方案
项目应该已经逐步建立(只需确保你 做构建而不是重建)。检查增量的最佳方法 构建工作是从命令行运行构建。第二 你建立它的时间应该几乎没有时间。
如果事情仍在重建,那么也许你已经修改了 您的项目以某种方式搞乱了构建顺序。 查看构建日志(通过/ v选项)可以帮助您指出 发生了什么事。
GenerateResource.TrackFileAccess Property
此API支持.NET Framework基础结构,不能直接在代码中使用。
获取或设置一个开关,指定我们是否应该跟踪文件访问模式。