【问题标题】:Msbuild stuck building VS2012 database projectMsbuild构建VS2012数据库项目卡住了
【发布时间】:2013-06-25 04:30:38
【问题描述】:

我们最近从VS2010升级到了VS2012 sqlproj;从 VS2012 构建/发布只需一两分钟,而且速度很快。

但是尝试在 (C:\Windows\Microsoft.NET\Framework\v4.0.30319) 中的 MSBuild 中进行构建需要超过 4 小时!似乎无法弄清楚为什么。使用下面的 ms-build 命令

MSBuild /t:Build /p:VisualStudioVersion=11.0 /p:TargetDatabaseName="WirelineDb";TargetConnectionString="Data Source=(local);Integrated Security=True;Pooling=False" /p:PublishToDatabase="False" /p:SqlPublishProfilePath="Default.publish.xml" "C:\TFS01\Blah Database.sqlproj"

在这里呆了几个小时...

为什么使用 MSBuild 需要这么长时间?另外VS2012是用什么来构建和发布数据库的,是在后台使用MSbuild吗?还是 SqlPackage.exe?

【问题讨论】:

  • 如果您尝试使用较短的构建行,例如:“msbuild .\MyDBProject\MyDBProject.sqlproj /t:build /p:Configuration="Local"”,会发生什么?我们做了一个非常基本的构建,只是为了生成 dacpac 文件,然后使用 SQLPackage 发布它。
  • 添加 /v:diag 时会发生什么?
  • 尝试了较短的构建线仍然相同;用 /v:diag 做的,它吐出一个 1MB 的诊断文件;诊断文件中的这些行之间基本上需要两个小时正在加载项目文件......(TaskId:12)构建项目模型并解决对象相互依赖关系......(TaskId:12)验证项目模型......(TaskId:12 )

标签: visual-studio deployment visual-studio-2012 msbuild sql-server-data-tools


【解决方案1】:

意识到这种情况正在发生,因为我们仍在运行旧的 VS2010 数据库项目类型,该类型只是简单地迁移到 VS2012。从 VS2012 开始,它是一个 SSDT SQL 项目。

由于 VSDBP 到 SSDT 之间没有迁移,我们不得不手动重新创建数据库项目 - 即我们将最新架构部署到 SQL Server,然后导入新的 SSDT 项目。

使用新的 SSDT 项目,MSBuild 只需大约 10 分钟即可完全构建和部署。

关于 SSDT 的进一步阅读: http://blog.navantis.com/ssdt-vs-data-dude-part-1/

【讨论】:

    猜你喜欢
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多