Visual Studio团队服务 - 构建失败,定义错误?

4
我已经在项目上工作了一段时间,现在我想使用Visual Studio Team Services。在本地,使用Visual Studio进行构建不会出现错误,并且应用程序按预期运行。 我将这个可工作的代码检入到VSTS中,因此它在仓库中并且可以使用。 现在我想要构建它。我创建了一个新的构建定义,没有任何更改。当我运行构建时,它失败了。我尝试编辑构建定义,但由于我对此没有任何经验,我只会弄得更糟并产生更多的错误。 我的问题: 显然,它希望找到C:\a\1\s,但我不知道为什么和它是如何得出这个路径的。 我需要在构建定义中更改什么?我是新手,所以我不知道所有设置都是做什么的,也不知道它需要的文件在哪里。 我尝试将项目文件夹中的.sln文件添加到构建定义中(如第二张图片所示),但它仍然想要找到那个奇怪的路径。
因此,这里是构建定义,出错的步骤以及日志中的错误。 With settings unchanged NuGet restore ***.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 restore $/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

表示水平线。

Edit
构建定义的仓库选项卡: Build definition repository tab

仓库结构: Repository structure


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

3
根据您提供的日志:
2016-03-07T15:00:44.4590685Z Done syncing repository Test project to version 3 (workspace version -1)

此问题可能由于您的构建账户访问权限不足所致。请检查并确保构建代理使用的账户具有访问代码库的权限。
参考同类问题: TFS 2105构建问题 TFS 2015构建代理同步失败

谢谢!在构建定义中,在“常规”选项卡下,我将“构建作业授权范围”设置为“当前项目”(而不是“项目集合”),问题就解决了。 - Kailayla
出于安全考虑,我们从使用服务账户切换到使用NT Auth/Network Svs账户。我最初设置的代理程序已经过时(在我们切换之前),并且没有使用正确的账户。重新配置代理程序以使用正确的账户非常顺利。之前我一直很苦恼,因为我知道我已经正确映射了仓库。谢谢Eddie! - ckkkitty

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

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接