Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Team Foundation服务器构建失败。“无法复制”;xxx.dll“;至;yyy.dll“;_C#_Tfs_Tfsbuild - Fatal编程技术网

C# Team Foundation服务器构建失败。“无法复制”;xxx.dll“;至;yyy.dll“;

C# Team Foundation服务器构建失败。“无法复制”;xxx.dll“;至;yyy.dll“;,c#,tfs,tfsbuild,C#,Tfs,Tfsbuild,尝试在生成服务器上生成时,我遇到以下2个错误: path\to.NETFramework\Microsoft.Common.targets(3390):无法将“path\to\xxx.dll”复制到“path\to\yyy.dll”。已超过重试计数10。失败了 及 path\to.NETFramework\Microsoft.Common.targets(3390):无法将文件“path\to\xxx.dll”复制到“path\to\yyy.dll”。 进程无法访问文件“path\to\yyy.

尝试在生成服务器上生成时,我遇到以下2个错误:

path\to.NETFramework\Microsoft.Common.targets(3390):无法将“path\to\xxx.dll”复制到“path\to\yyy.dll”。已超过重试计数10。失败了

path\to.NETFramework\Microsoft.Common.targets(3390):无法将文件“path\to\xxx.dll”复制到“path\to\yyy.dll”。 进程无法访问文件“path\to\yyy.dll”,因为另一个进程正在使用该文件

在本地,很容易修复—关闭Visual Studio并以管理员身份运行它可以解决问题。但是,在使用构建服务器(Microsoft服务器)时,我似乎无法解决该问题

  • 已尝试重新启动生成代理
  • 确保我的项目是当时唯一的一栋建筑
  • 手动删除dll
  • 使用
    /m:1
    参数运行代理
  • 谢谢


    编辑:我已设法在本地重现错误。如果我在configuration manager中更改配置并清理->重建项目,它会给出相同的错误。但是,正如我之前所说,重新启动VS解决了这个错误,我只是不知道如何在服务器上执行此操作。

    如果您使用的是XAML build,您可以尝试通过在生成服务器中设置disable the parallel build来解决此问题。对于TFS2010和TFS2012,将
    Process
    选项卡上的
    MSBuild Multi-Proc
    设置为False,对于TFS2013,TFS2015在MSBuild参数中键入
    /m:1
    。有关MSBuild中/m参数的详细信息,请参阅本文档:


    切换到单进程构建增加了构建时间,但如果这是一个可接受的损失。您可以将此用作解决方法。

    如果您使用的是XAML build,您可以尝试通过在生成服务器中设置“禁用并行生成”来解决此问题。对于TFS2010和TFS2012,请将
    进程
    选项卡上的
    MSBuild Multi-Proc
    设置为False,对于TFS2013,TFS2015在MSBuild参数中键入
    /m:1
    。有关MSBuild中/m参数的详细信息,请参阅本文档:


    切换到单进程构建增加了构建时间,但如果这是一个可接受的损失。您可以将此作为解决方法。

    最终找到了解决方案。事实证明,这与TFS本身无关。我无法在本地复制错误,因为出于某种原因,它正在编译,而不应该编译

    我的问题是“断开的引用”
    。 我正在使用一些Biztalk程序,其中5个程序依赖于其他项目(自定义Biztalk管道组件),但没有对项目本身的引用。我想这可能是打开组件工具箱造成的,尽管我不确定


    因此,我手动删除并再次添加了对上述项目的引用(添加->引用),现在一切都像一个符咒

    终于找到了解决办法。事实证明,这与TFS本身无关。我无法在本地复制错误,因为出于某种原因,它正在编译,而不应该编译

    我的问题是“断开的引用”
    。 我正在使用一些Biztalk程序,其中5个程序依赖于其他项目(自定义Biztalk管道组件),但没有对项目本身的引用。我想这可能是打开组件工具箱造成的,尽管我不确定


    因此,我手动删除并再次添加了对上述项目的引用(添加->引用),现在一切都像一个符咒

    是否确定dll文件未被任何进程使用?你可以使用一些工具来验证这一点。是的,我很确定。我是唯一一个登录到机器上的人,没有任何东西可以阻止dll。我认为问题在于,我的解决方案中的几个项目使用该特定dll,当并行构建多个项目时,一个项目使用该dll,而另一个项目尝试使用该dll。您可以手动删除它吗?是的,已经这样做了。忘了把它添加到我已经做过的事情列表中。你正在使用哪种类型的TFS构建?Vnext或Xaml生成?是否确定dll文件未被任何进程使用?你可以使用一些工具来验证这一点。是的,我很确定。我是唯一一个登录到机器上的人,没有任何东西可以阻止dll。我认为问题在于,我的解决方案中的几个项目使用该特定dll,当并行构建多个项目时,一个项目使用该dll,而另一个项目尝试使用该dll。您可以手动删除它吗?是的,已经这样做了。忘了把它添加到我已经做过的事情列表中。你正在使用哪种类型的TFS构建?Vnext还是Xaml构建?我使用的是TFS2015。尝试了
    /m:1
    参数,但无效。知道其他可能的解决方案吗?我已将代理设置为在x86中运行MSBuild。必须这样做,因为我只在x86中运行过一些项目。但是,还有其他一些可以在x64中运行。我想问题可能就出在这里。我使用的是TFS2015。尝试了
    /m:1
    参数,但无效。知道其他可能的解决方案吗?我已将代理设置为在x86中运行MSBuild。必须这样做,因为我只在x86中运行过一些项目。但是,还有其他一些可以在x64中运行。我想问题可能就出在这里。