【问题标题】:Visual Studio Team Services - Build fails, definition wrong?Visual Studio Team Services - 构建失败,定义错误?
【发布时间】:2016-03-07 10:59:38
【问题描述】:

我从事一个项目已经有一段时间了,现在我想为此使用 Visual Studio Team Services。在本地,Visual Studio 中的构建不会出错,并且应用程序按预期工作。
我已将此工作代码签入到 VSTS,所以它在 repo 中并且很好。
现在我想建造它。我创建了一个新的构建定义,没有改变。当我运行构建时,它失败了。我尝试编辑构建定义,但凭借我 0 的经验,我只会搞砸更多并产生更多错误。

我的问题: 显然,它想找到 C:\a\1\s 但我不知道它为什么以及如何找到这条路径。 我必须在构建定义中更改什么?我是新手,所以我不知道所有设置的作用以及它需要的文件在哪里。
我尝试将项目文件夹中的 .sln 文件添加到构建定义中(如第二张图所示),但它仍然想找到那个奇怪的路径。

这里是构建定义、出错的步骤以及日志中的错误。

NuGet 恢复 ***.sln

2016-03-07T10:28:15.8302718Z Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\NuGetInstaller\0.1.18     
2016-03-07T10:28:15.9337363Z Executing the powershell script: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\NuGetInstaller\0.1.18\NuGetInstaller.ps1     
2016-03-07T10:28:16.5636975Z ##[error]Could not find a part of the path 'C:\a\1\s'.     
2016-03-07T10:28:16.5876990Z ##[error]No solution was found using search pattern 'C:\a\1\s\**\*.sln'.

将文件复制到:$(build.artifactstagingdirectory)

2016-03-07T10:28:16.6827013Z Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11     
2016-03-07T10:28:17.1800860Z ##[debug]check path : C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\task.json     
2016-03-07T10:28:17.1810857Z ##[debug]set resource file to: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\task.json     
2016-03-07T10:28:17.1810857Z ##[debug]system.culture=en-US     
2016-03-07T10:28:17.1820859Z ##[debug]load strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\task.json     
2016-03-07T10:28:17.1820859Z ##[debug]load loc strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\strings\resources.resjson\en-US\resources.resjson     
2016-03-07T10:28:17.1820859Z ##[debug]Contents=**\bin\release\**     
2016-03-07T10:28:17.1830859Z ##[debug]SourceFolder=C:\a\1\s     
2016-03-07T10:28:17.1830859Z ##[debug]check path : C:\a\1\s     
2016-03-07T10:28:17.1840858Z ##[debug]load strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\node_modules\vsts-task-lib\lib.json     
2016-03-07T10:28:17.1840858Z ##[debug]load loc strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\node_modules\vsts-task-lib\strings\resources.resjson\en-US\resources.resjson     
2016-03-07T10:28:17.1850860Z Not found SourceFolder: C:\a\1\s     
2016-03-07T10:28:17.1860857Z ##[debug]task result: Failed 

NuGet 恢复 $/Test project/QRM/QRM.sln

2016-03-07T10:47:46.0629142Z Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\NuGetInstaller\0.1.18     
2016-03-07T10:47:46.1969152Z Executing the powershell script: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\NuGetInstaller\0.1.18\NuGetInstaller.ps1     
2016-03-07T10:47:46.8519190Z ##[error]Cannot find path 'C:\a\1\s\QRM\QRM.sln' because it does not exist.     
2016-03-07T10:47:46.8639180Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\agent\worker\tools\NuGet.exe restore "C:\a\1\s\QRM\QRM.sln"  -NonInteractive     
2016-03-07T10:47:48.8829320Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.     
2016-03-07T10:47:48.8999324Z ##[error]Could not find a part of the path 'C:\a\1\s\QRM\QRM.sln'.     
2016-03-07T10:47:48.9249320Z ##[error]Unexpected exit code 1 returned from tool NuGet.exe

将文件复制到:$(build.artifactstagingdirectory)

2016-03-07T10:47:49.0239330Z Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11     
2016-03-07T10:47:49.6659427Z ##[debug]check path : C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\task.json     
2016-03-07T10:47:49.6779370Z Not found SourceFolder: C:\a\1\s     
2016-03-07T10:47:49.6789372Z ##[debug]set resource file to: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\task.json     
2016-03-07T10:47:49.6799369Z ##[debug]system.culture=en-US     
2016-03-07T10:47:49.6799369Z ##[debug]load strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\task.json     
2016-03-07T10:47:49.6809368Z ##[debug]load loc strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\strings\resources.resjson\en-US\resources.resjson     
2016-03-07T10:47:49.6809368Z ##[debug]Contents=**\bin\release\**     
2016-03-07T10:47:49.6809368Z ##[debug]SourceFolder=C:\a\1\s     
2016-03-07T10:47:49.6819369Z ##[debug]check path : C:\a\1\s     
2016-03-07T10:47:49.6819369Z ##[debug]load strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\node_modules\vsts-task-lib\lib.json     
2016-03-07T10:47:49.6829365Z ##[debug]load loc strings from: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\CopyFiles\1.0.11\node_modules\vsts-task-lib\strings\resources.resjson\en-US\resources.resjson     
2016-03-07T10:47:49.6829365Z ##[debug]task result: Failed

编辑
构建定义的存储库选项卡:

存储库结构:

【问题讨论】:

  • 能否请您显示 TFVC 或 Git 存储库布局以及构建定义的“存储库”选项卡的屏幕截图?那就是配置哪些文件下载到哪里的地方。默认情况下,构建服务将尝试将选定的存储库或团队项目映射到代理的工作目录。在您正在使用的托管构建上),该工作目录位于c:\a\1\s,因此从构建系统的角度来看,该路径完全有意义。
  • @jessehouwing 我添加了截图,希望能更清楚一点。
  • 您的初始设置看起来正确,它应该可以找到解决方案,尽管它可能无法编译。它似乎没有这样做。我没有看到任何活跃的问题。 blogs.msdn.com/b/vsoservice
  • 您能否在构建中添加一个名为 System.Debug 和值 true 的变量,然后重新运行构建并共享日志链接?
  • @jessehouwing Debug 变量在那里,但确实设置为 false。这是带有日志的 zip 文件:logs

标签: visual-studio build azure-devops build-definition


【解决方案1】:

根据您提供的日志:

2016-03-07T15:00:44.4590685Z Done syncing repository Test project to version 3 (workspace version -1)

此问题可能是您的构建帐户的访问权限引起的。请检查并确保构建代理使用的帐户有权访问您的代码存储库。

同样的问题供您参考:

TFS 2105 build issue

TFS 2015 Build Agent failing syncing the repository

【讨论】:

  • 谢谢!在构建定义中,在“常规”选项卡下,我将“构建作业授权范围”设置更改为“当前项目”(而不是“项目集合”),从而解决了这个问题。
  • 出于安全原因,我们从使用服务帐户切换到使用 NT Auth/Network Svs 帐户。我最初设置的代理很旧(在我们切换之前)并且没有使用正确的帐户。重新配置代理以使用正确的帐户就像一个魅力。我之前一直在拔头发,因为我知道我已经映射了正确的回购。谢谢埃迪!
【解决方案2】:

当您对新构建进行排队时,您是否输入了要获取的源版本?我在日志中看到版本 3,但实际上没有传输任何文件。如果要获取特定变更集,则需要输入 C3 而不是 3。但我建议将框留空。

【讨论】:

    猜你喜欢
    • 2017-11-26
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 2017-05-25
    • 2023-03-24
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多