【问题标题】:Continuous Integration build succeeds, Manual build fails持续集成构建成功,手动构建失败
【发布时间】:2013-08-27 14:25:39
【问题描述】:

我的团队项目包含一个 Web 窗体应用程序和 WCF 服务,位于两个独立的解决方案中(WCF 服务托管在域内的服务器上,Web 应用程序位于 DMZ 中)。 我的团队项目有两个构建定义:CI 构建和手动构建 昨天我将一个分支合并回我的主干以准备部署。当我签入我的合并时,CI 构建开始......并成功。因此,我将手动构建排入队列(手动构建最终在产品服务器上完成)。手动构建失败。我现在每次运行它都会失败,但是 CI 构建每次都会成功。构建日志中的错误粘贴在下面。我不知道我是如何破坏这个构建的,我很困惑为什么 CI 构建成功但手动构建失败(相同的构建定义,除了放置位置不同并且触发器不同)。

错误:

异常消息:访问路径 'C:\Builds\1\My Web App\My Web App\Sources\MyAppWcfServices\Services\Messages' 被拒绝。 (类型 UnauthorizedAccessException)异常堆栈跟踪:在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.FileSystemEnumerableIterator1.CommonInit() at System.IO.FileSystemEnumerableIterator1..ctor(字符串路径,字符串 originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost) at System.IO.Directory.InternalGetFileDirectoryNames(字符串路径,字符串 userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption, Boolean checkHost) at System.IO.Directory.InternalGetDirectories(字符串路径,字符串 搜索模式,搜索选项搜索选项)在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(字符串 路径)在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(字符串 路径)在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(字符串 路径)在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(字符串 路径)在 Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectory(字符串路径, 布尔递归)在 Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext 上下文)在 System.Activity.CodeActivity.InternalExecute(ActivityInstance 实例,ActivityExecutor 执行器,BookmarkManager 书签管理器) 在 System.Activity.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

我读过/尝试过的东西:

版本控制中没有我的 objbin 目录。 直到昨天,这个构建定义已经运行了几个月。我不确定当我合并时发生了什么会导致这种情况。我的合并中没有冲突,这很容易......直到我尝试构建。

【问题讨论】:

  • CI 和手动构建是否发生在同一台服务器上?

标签: c# asp.net tfs msbuild


【解决方案1】:

只需转到构建控制器服务器并停止“Visual Studio Team Foundation Build Service Host 2013”​​并删除您在消息中出现错误的文件或文件夹并再次启动服务

【讨论】:

    【解决方案2】:

    您是否检查过实际文件是否被锁定?试试解锁工具http://www.emptyloop.com/unlocker

    【讨论】:

    • 谢谢!我找到了错误所指的路径。由于某种原因,Messages 目录是只读的,我无法使其可写。我正在上报给我们的服务器团队,看看他们能否提供帮助。
    【解决方案3】:

    我看到在 iexplorer/cmd.exe 等中打开特定文件夹/文件时发生此错误(由您或其他用户)。当 TFS 尝试清理目录并获取最新文件时,它将失败,因为它被另一个进程使用。

    如果您可以访问服务器,则打开任务管理器 -> 进程并关闭其他用户的所有 iexplorer.exe/cmd.exe 进程。希望这会解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多