我正在尝试使用 TeamCity 8 和 MSBuild 发布任务将 Visual Studio 2012 SSDT 项目部署到 Sql Server,但部署失败。
当我查看 TeamCity 日志并在构建配置中使用 /v:diag 开关时,我发现 MSBuild 出于未知原因搜索MyProject .sqlproj .publish.sql 和MyProject .sqlproj .dacpac 文件。
确切的错误:
[SqlPublishTask] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(1233, 5): 文件 "C:\Program Files\TeamCity \buildAgent\work\abf8bc05a2cfe7f\*MyProject*\bin\Debug\*MyProject*.sqlproj.dacpac" 不存在。
在 buildAgent/work/ identificator /*MySolution*/ MyProject /bin/Debug 文件夹中生成了正确的 .sql 和 .dacpac 文件(中间没有 .sqlproj) 。
我的 TeamCity 构建步骤配置如下:
- 跑步者类型:MSbuild
- 构建文件路径:MyProject /*MyProject*.sqlproj
- MSBuild 版本:4.5
- MsBuild 工具版本:4.0
- 运行平台:4.0
- 目标:发布
- 命令行参数:
/p:SqlPublishProfilePath="Debug.publish.xml" /p:Configuration=Debug
如果我从命令行执行此操作,我不会收到任何错误。
关于如何配置 TeamCity 以搜索正确文件或配置我的项目以生成 TeamCity 正在搜索的文件的任何想法。
还是我计划使用 MSBuild 的发布任务是徒劳的,我应该使用它sqlpackage.exe
?
更新
在花了将近三天的时间试图弄清楚这一点后,我放弃了并使用了sqlpackage.exe
它的魅力。但是我仍然会对答案感兴趣,将路径传递给构建服务器中的可执行文件似乎有点粗略。