0

我有一个 SSDT 数据库项目。我设置了一个发布配置文件,将其发布到 SQL Server 2012 localdb实例。我发现了一些可用于以编程方式发布数据库的代码

首先导入这些:

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目标,但这并没有产生明显的差异。

为什么程序化选项的性能较差?我可以做些什么来获得与手动发布相同的性能?

4

0 回答 0