- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我维护了一个相当大的软件的构建,包括大约 350 个 csharp 项目。我们的调试构建时间约为 17 分钟。
我一直在寻找缩短构建时间的方法,并且 BuildInParallel 属性确实很吸引人。尤其是因为我们有一个四核服务器来做我们的构建,它应该真的能够利用计算能力。
但是,唉...在设置属性,修改构建代理的配置文件并重新启动它之后,第一次运行确实看起来很有希望,比正常情况快得多,直到它失败为止。
查看构建日志后,当尝试将标记为 CopyLocal=true 的引用复制到输出目录时,构建似乎失败了。
如果 C# 项目 A 和 C# 项目 B 并行构建,并且两者都引用相同的第三方 dll,并尝试同时复制它,则尝试复制文件的第二个进程将获得文件访问冲突 -该文件正被另一个进程使用。
任何人都经历过这种情况,并且能够在 Team Build 上进行多进程构建?
这是其中一个失败,有点难以弄清楚同时正在 build 的其他项目。
我已经删除了所有不相关的东西:
54>Target "_CopyFilesMarkedCopyLocal" in file "c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets" from project "d:\temp\PCM\1.3-Maint_CI\Sources\Modules\Core\Test\UnitTest\TestDIPS.Core.Data.Server.NUnit\TestDIPS.Core.Data.Server.NUnit.csproj": 54>Task "Copy" Copying file from "..........\Bin\3rdParty\Oracle\Oracle.DataAccess.dll" to "d:\temp\PCM\1.3-Maint_CI\Binaries\Debug\Oracle.DataAccess.dll". Command: copy /y "..........\Bin\3rdParty\Oracle\Oracle.DataAccess.dll" "d:\temp\PCM\1.3-Maint_CI\Binaries\Debug\Oracle.DataAccess.dll" 54>c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(2703,9): error MSB3021: Unable to copy file "..........\Bin\3rdParty\Oracle\Oracle.DataAccess.dll" to "d:\temp\PCM\1.3-Maint_CI\Binaries\Debug\Oracle.DataAccess.dll". The process cannot access the file 'd:\temp\PCM\1.3-Maint_CI\Binaries\Debug\Oracle.DataAccess.dll' because it is being used by another process. Done executing task "Copy" -- FAILED. 54>Done building target "_CopyFilesMarkedCopyLocal" in project "TestDIPS.Core.Data.Server.NUnit.csproj" -- FAILED.
最佳答案
MSBuild 附带的默认目标是为 CopyLocal 行为而设计的——这是 VS 所依赖的。当您输出到单个输出目录时, CopyLocal 会出现问题。
为了能够真正并行构建,您需要在 Microsoft.*.Common.*.targets 文件中禁用多个 CopyLocal 特定行为。我过去曾与 MSBuild 团队的一些人交谈过,这是一件特别麻烦的事情。即使您清除了某些 CopyLocal 行为,VS 测试访问器在并行构建时也表现不佳。
您可以从以下几点开始:
关于MSBuild 和 TeamBuild - BuildInParallel 由于 MSB3021 文件权限冲突而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/707742/
我喜欢通过 TFS 2015 TeamBuild 中的“选项”选项卡实现 MultiConfiguration 背后的概念。但我不希望生成的“矩阵构建”适用于构建定义中的每一步。 我们通常希望运行自定
我们目前将 Team Foundation Server Team Build 用于 CI/构建,但正在考虑使用 TeamCity。不过,我们的测试团队对使用 Team Build 可以提供的测试影响
使用 VSTS(以前称为 VSO),我从第 3 方测试工具导入测试结果。 这工作正常,但是当导入的结果出现故障时,我预计构建会失败,但事实并非如此。如下所示。 有什么建议吗?这似乎是一个错误。 最佳答
我们正在为我们的企业包使用自定义包存储库。我们的项目之一是 ASP.NET MVC 项目,它也使用官方包存储库来引用 Entity Framework 等包。 最近,一个新的包被上传到官方包存储库,不
我维护了一个相当大的软件的构建,包括大约 350 个 csharp 项目。我们的调试构建时间约为 17 分钟。 我一直在寻找缩短构建时间的方法,并且 BuildInParallel 属性确实很吸引人。
类似于 How to use MsTest in Continuous Integration without VS? ,我想在 TeamBuild 服务器上运行 mstest.exe。 我的上下文是
我是一名优秀的程序员,十分优秀!