以编程方式部署SSDT DB项目时,MSBuild性能较差

时间:2013-08-29 02:14:27

标签: visual-studio-2010 performance msbuild sql-server-data-tools localdb

我有一个SSDT数据库项目。我已经设置了一个发布配置文件,将其发布到SQL Server 2012 localdb 实例。我找到了some code that can be used to publish the database programmatically

首先导入这些:

using Microsoft.Build.Evaluation;
using Microsoft.Build.Logging;
using Microsoft.Build.Framework;

然后发布数据库:

// Create a logger.
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=Northwind.msbuild.log";

// Set up properties.
var projects = ProjectCollection.GlobalProjectCollection;
projects.SetGlobalProperty("Configuration", "Debug");
projects.SetGlobalProperty("SqlPublishProfilePath", @"Northwind.publish.xml");

// Load and build project.
var dbProject = ProjectCollection.GlobalProjectCollection.LoadProject(@"Northwind.sqlproj");
dbProject.Build(new[]{"Build", "Publish"}, new[]{logger});

当我使用Visual Studio 2010使用代码中显示的发布配置文件手动发布数据库时,大约需要4-10秒。但是,当我运行此代码以编程方式执行相同的操作时,大约需要40秒。

我已尝试删除 Build 目标,但这没有明显区别。

为什么程序化选项的性能较差?如何实现与手动发布相同的性能?

0 个答案:

没有答案