为什么 TeamCIty 构建失败并显示 "because it is being used by another process",它是否并行构建?
Why TeamCIty build fails with "because it is being used by another process", does it build parallel?
我的服务器上安装了 TeamCity,我的 .Net Core 项目有时会失败并显示以下消息。如果 TeamCity 使用并行构建,那么我该如何禁用它?或者我怎样才能使这个 TeamCity 构建更稳定?
代码在我的开发机器上编译没有任何问题,代码在 Azure DevOps Build 中编译也没有任何问题(a.k.a。Visual Studio 在线)。
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly.
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: System.IO.IOException: The process cannot access the file '/home/tagent3/TeamCityBuildAgent/work/479321994f6f7261/.../Contracts.deps.json' because it is being used by another process.
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream.Init(FileMode mode, FileShare share)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.File.Create(String path)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.GenerateDepsFile.ExecuteCore()
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.TaskBase.Execute()
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask)
[22:06:31]
您可以添加 MSBuild 开关 /m:1
(或 /maxcpucount:1
)
它说它应该默认为 1,但我也看到关于线程的评论说添加标志修复了一些并行构建问题,所以它可能已经改变了。
文档在这里
https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2017
我在 命令行参数中使用参数详细程度正常级别修复了此问题: -v n
我的服务器上安装了 TeamCity,我的 .Net Core 项目有时会失败并显示以下消息。如果 TeamCity 使用并行构建,那么我该如何禁用它?或者我怎样才能使这个 TeamCity 构建更稳定?
代码在我的开发机器上编译没有任何问题,代码在 Azure DevOps Build 中编译也没有任何问题(a.k.a。Visual Studio 在线)。
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly.
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: System.IO.IOException: The process cannot access the file '/home/tagent3/TeamCityBuildAgent/work/479321994f6f7261/.../Contracts.deps.json' because it is being used by another process.
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream.Init(FileMode mode, FileShare share)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.File.Create(String path)
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.GenerateDepsFile.ExecuteCore()
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.TaskBase.Execute()
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
[22:06:31][build] /opt/dotnet/sdk/2.1.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask)
[22:06:31]
您可以添加 MSBuild 开关 /m:1
(或 /maxcpucount:1
)
它说它应该默认为 1,但我也看到关于线程的评论说添加标志修复了一些并行构建问题,所以它可能已经改变了。
文档在这里 https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2017
我在 命令行参数中使用参数详细程度正常级别修复了此问题: -v n