TFS Build 2015“对路径的访问被拒绝”

时间:2018-08-15 15:03:47

标签: tfs tfsbuild tfs2015

我有一个解决方案,其中包含大约70个项目,有时(可能是1/5运行)在TFS构建定义的“获取源代码”阶段中,它会因以下错误而停止:

Access to the path 'D:\BuildAgent2018\_work\1\s\Implementation\Release\FileHelpers.dll' is denied.

'FileHelpers.dll'是一个NuGet软件包,我们将其放入解决方案中的多个不同项目中,但是,我们将这些软件包直接提交给源,我们在构建定义中不使用NuGet restore,第一步是“获取来源”-有时会失败。

当软件以发布模式构建时,它会自动将其构建到\ Implementation \ Release文件夹中,但是绝对值得注意的是,在实际的源代码中,\ Implementation \ Release文件夹为空,因此文件名为'FileHelpers。 dll”只能通过以发布模式构建的项目到达那里,这意味着“ FileHelpers.dll”来自构建服务器上的先前构建。

我听说禁用多线程构建可以解决此问题,因为可能是多个项目同时复制/删除同一文件,这可能是导致此问题的原因,但是,所有解释都说明了这一点。的行:

确保使用以下命令明确运行MSBuild:

/p:BuildInParallel=false

/m:1

这似乎没有效果,因为我唯一可以指定该参数的位置是在项目构建步骤中,并且错误发生在“获取源代码”步骤(在构建步骤之前) )。

奇怪的是,当我遇到此问题时,此问题会在此之后的每个构建中发生,并且只能通过重新启动来解决,这使我认为多线程方案的可能性较小。

  • 我们一次也只能运行1个构建(代理具有构建队列)。

  • 我们为映射的存储库启用了“清理”。

任何想法都可能导致此“对路径'X.dll'的访问被拒绝”。错误?

如果您需要我发布更多详细信息或代码段,请发表评论,我很乐意这样做!

编辑-“ TE.ProcessHost.Managed.exe”正在使用该文件,即使未运行内部版本

0 个答案:

没有答案