【发布时间】:2015-08-12 06:43:28
【问题描述】:
我的 TeamCity 构建失败,因为我的项目中有 2 个 EF 代码迁移配置。
来自构建日志:
[12:39:58]Checking for changes
[12:39:58]Collecting changes in 1 VCS root (1s)
[12:40:00]Clearing temporary directory: C:\TeamCity\buildAgent2\temp\buildTmp
[12:40:00]Publishing internal artifacts
[12:40:00]Checkout directory: C:\TeamCity\buildAgent2\work\1679b8b30e00ad0
[12:40:00]Updating sources: server side checkout (2s)
[12:40:03]Step 1/8: Gulp (Command Line)
[12:40:03]Step 2/8: Nuget Package Refresh (NuGet Installer) (3s)
[12:40:06]Step 3/8: Compile (MSBuild) (21s)
[12:40:27]Step 4/8: Unit Tests (NUnit) (33s)
[12:41:01]Step 5/8: Transform Files (Powershell) (2s)
[12:41:03]Step 6/8: Deployment Build on XXXXX Live (MSBuild) (25s)
[12:41:29]Step 7/8: Deploy Database (Powershell) (5s)
[12:41:34]Step 8/8: Deploy Portal.Hub (Powershell) (33s)
[12:42:08]Publishing artifacts
[12:42:08][Publishing artifacts] Collecting files to publish: [C:\TeamCity\buildAgent2\temp\buildTmp\nuget5954880593924726328packages\nuget.xml => .teamcity/nuget]
[12:42:08][Publishing artifacts] Publishing using [WebPublisher]
[12:42:08][Publishing artifacts] Publishing using [ArtifactsCachePublisher]
[12:42:08][Publishing artifacts] Artifacts path 'C:/TeamCity/buildAgent2/temp/buildTmp/nuget5954880593924726328packages/nuget.xml' not found
[12:42:08]Reverting patched assembly versions
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.Api\Properties\AssemblyInfo.cs
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.Common\Properties\AssemblyInfo.cs
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.Data\Properties\AssemblyInfo.cs
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.Hub\Properties\AssemblyInfo.cs
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.Manager\Properties\AssemblyInfo.cs
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.Managers\Properties\AssemblyInfo.cs
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.SignalR\Properties\AssemblyInfo.cs
[12:42:08][Reverting patched assembly versions] Restoring C:\TeamCity\buildAgent2\work\1679b8b30e00ad0\src\Portal.Tests\Properties\AssemblyInfo.cs
[12:42:08]Publishing internal artifacts
[12:42:08][Publishing internal artifacts] Sending using WebPublisher
[12:42:08][Publishing internal artifacts] Sending using ArtifactsCachePublisher
[12:42:08]Build failure condition: There was an error reported in one of the build steps.
[12:42:08]Build failure condition cause message: ERROR: More than one migrations configuration type was found in the assembly 'Portal.Data'. Specify the name of the one to use. (show original message)
[12:42:08]Build finished
注意:唯一的红色(失败)是“构建完成”上方的最后两行
我没有运行迁移,并且在团队城市或发布配置文件中看不到任何尝试执行此操作的步骤。
我不想将我的配置拆分为单独的项目,我只想阻止 TeamCity 尝试运行它们。
我的构建步骤是:
1/8 Gulp - 最小化 js 文件
2/8 NuGet Installer - 更新解决方案中的 nuget 引用
3/8 MSBuild - .NET 4.5 x86 编译
4/8 NUnit - 运行单元测试
5/8 Powershell - 运行脚本来操作 Windows 服务的 app.config 文件
6/8 MSBuild - 使用发布配置文件部署网站
7/8 Powershell - 部署数据库的脚本
8/8 Powershell - 部署windows服务的脚本
发布配置文件:验证连接按钮在连接选项卡上工作正常,在设置页面上列出了几个数据库,但没有一个数据库具有连接字符串或“在运行时使用此连接字符串”选中。其中一个旁边有一个信息标签“为了发布 Code First 模型,应该使用 Code First 迁移”。
我们为其他运行良好的项目提供几乎相同的构建配置。
谢谢
【问题讨论】:
-
您能否提供更多关于您的构建步骤和发布配置文件中发生的事情的详细信息。您的 .csproj 文件中是否有任何 Pre/Post 构建事件。您能否显示 TeamCity 构建日志中的原始异常堆栈?
-
proj 文件中没有构建事件。 TeamCity 没有堆栈跟踪 - 所有构建步骤都有效,以上内容在底部输出。我将使用有关构建步骤的更多信息更新问题
-
你能告诉我哪个构建步骤产生了错误吗?如果您的所有构建步骤都成功完成,则说明配置不正确。您能否详细说明自定义 powershell 步骤?目前这有点像大海捞针 - 除非我能准确理解正在执行的内容,否则我认为我无法为您提供任何价值。例如Deploy windows 服务是否安装并启动它?
-
如果所有步骤都通过了,但在构建配置中存在自定义失败条件,您能否显示生成该输出“错误”的构建步骤的详细输出(我假设您已经显示隐藏任何敏感细节的最小细节)
-
我已将完整的构建日志放在这里 dropcanvas.com/aqqh3 - 我看不到任何失败。
标签: entity-framework-4 teamcity entity-framework-migrations teamcity-8.0