我正在尝试使用 TeamCity 8 和 MSBuild Publish 任务将 Visual Studio 2012 SSDT 项目部署到 Sql Server,但部署失败。
当我查看 TeamCity 日志并在构建配置中使用 /v:diag 开关时,我发现 MSBuild 出于未知原因搜索我的项目.sqlproj.publish.sql 和我的项目.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/ 中生成正确的 .sql 和 .dacpac 文件(中间没有 .sqlproj)标识符/*我的解决方案*/我的项目/bin/调试文件夹。
我的 TeamCity 构建步骤配置如下:
- 运行器类型:MSbuild
- 构建文件路径:我的项目/*我的项目*.sqlproj
- MSBuild版本:4.5
- MsBuild工具版本:4.0
- 运行平台:4.0
- 目标:发布
- 命令行参数:
/p:SqlPublishProfilePath="Debug.publish.xml" /p:Configuration=Debug
如果我从命令行执行此操作,则不会出现错误。
有关如何配置 TeamCity 以搜索正确的文件或配置我的项目以生成 TeamCity 正在搜索的文件的任何想法。
或者我使用 MSBuild 的发布任务的计划是徒劳的,我应该利用sqlpackage.exe
反而?
UPDATE
在花了近三天的时间试图解决这个问题后,我放弃并使用了sqlpackage.exe
这就像一个魅力。
但我仍然对答案感兴趣,将路径传递给构建服务器中的可执行文件似乎是完成任务的有点粗糙的方法。
我遇到了类似的问题,并得出结论,TeamCity 生成带有 *.teamcity 后缀的“伪项目”文件的方式使 MSBuild/SSDT 目标链中的某些内容令人困惑。
我只是用纯命令行步骤替换了 MSBuild 运行程序构建步骤,问题就消失了。
我们失去了 TeamCity MSBuild 运行程序配置的用户友好性,但如果它有效,这是我愿意做出的妥协。
注意 - 我们正在运行 TeamCity 7 - 我不确定此问题是否已在后续版本中得到解决。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)