小编Mar*_*ves的帖子

与VS 2013相比,使用MSBuild构建SSDT项目要慢得多

我注意到我们的SSDT项目通过TFS构建定义的构建要比通过本地开发工具箱上的VS 2013慢得多。

在构建服务器本身上,我可以在大约2分钟内通过VS 2013构建我们最大的SSDT项目。使用MSBuild在同一服务器上从命令行在完全相同的项目中构建大约16分钟的时间(即以与TFS构建定义相同的方式构建SSDT项目)

我已经从两种方法中收集了/ verbosity:diagnostic输出,但是我一生都看不到提供给MSBuild的参数有任何实质性的区别。

在VS 2013中,配置为Debug:AnyCPU。

我使用的MSBuild命令是:

msbuild / t:重建/ p:配置=调试/ p:平台= AnyCPU .sqlproj

我在较小的SSDT项目上尝试了相同的过程,并且在构建时间上也得到了类似的相对差异(例如,另一个项目在VS 2013中花费了10秒,而在MSBuild中花费了70-80秒)

我拥有VS 2013(12.0.40629.00 Update 5)和SSDT(12.0.60629.0)的最新版本

有没有其他人看到过这个问题,或者甚至有解决方案?

转向VS 2015是否可以解决问题?


编辑以回应评论并包含诊断信息-15-08-2016

谢谢你们给我的建议。

埃德,当针对MSBuild测试VS时,我使用了构建目标Rebuild,我相信它是Clean和Build的结合。在TFS构建定义中,我将“清理工作区”和“清理构建”设置为true,但是“获取源代码”步骤的时间仅为9秒。

史蒂文(Steven),dbmdl因素听起来确实很有希望。但是,在从解决方案中删除所有dbmdl文件之后,我再次尝试了测试,但是我得到的时间还是相同的(我验证了dbmdl文件没有在测试版本之间重新生成)。另外,在测试之前,我已经删除了所有bin和obj文件夹,只是为了消除VS构建缓存数据的任何可能性。

Cece,我已经有效地从这个问题中删除了TFS,因为在测试VS和MSBuild时,我在构建时间上存在差异。我认为,如果我能破解的话,TFS的构建时间也会被破解。您对花费时间在哪个构建步骤上有一个很好的了解。我不想在最初的文章中充斥过多的信息,但是现在是时候了:-)。我使用了/ clp:PerformanceSummary选项来获得花费时间的细分。

在下面的第1部分中,您可以看到“ SqlBuildTask”中的时间几乎全部花费了。很高兴知道,但是对查明问题不是很有帮助。

在第2和第3节中,我使用/ verbosity:diagnostic输出从两种构建方法中获得的信息

我看不到两个版本之间的任何实质性区别。两者都必须使用此DLL来执行该实际生成(MSBuild显式声明对此DLL的引用):

 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\\Extensions\Microsoft\SQLDB\Dac\130\Microsoft.Data.Tools.Schema.Tasks.Sql.dll" 
Run Code Online (Sandbox Code Playgroud)

-------------第1节-------------

(使用/ clp:PerformanceSummary从MSBuild输出)

Project Performance Summary:
        82518 ms  P:\<snip>.sqlproj   1 calls
                  82518 ms  rebuild                                    1 calls

Target Performance Summary:
        0 ms  BuildOnlySettings                          2 calls
        0 ms  GetReferenceAssemblyPaths                  2 calls
        0 ms  GetSqlSymbolsPath                          1 calls
        0 ms  BeforeBuild                                2 …
Run Code Online (Sandbox Code Playgroud)

msbuild tfs sql-server-data-tools

3
推荐指数
1
解决办法
1800
查看次数

标签 统计

msbuild ×1

sql-server-data-tools ×1

tfs ×1