Почему сборка TeamCIty завершается неудачно с «потому что она используется другим процессом», она строит параллельно? - PullRequest
0 голосов
/ 03 октября 2018

У меня установлен TeamCity на моем сервере, и мой проект .Net Core иногда терпит неудачу со следующим сообщением.Если TeamCity использует параллельную сборку, то как ее отключить?Или как я могу сделать эту сборку TeamCity более стабильной?

Код компилируется на моем компьютере разработчика без проблем, код также компилируется без проблем в Azure DevOps Build (Visual Studio Online).

[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]

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Я исправил это, используя нормальный уровень детализации аргумента в Параметры командной строки: -v n

0 голосов
/ 04 октября 2018

Вы можете добавить переключатель MSBuild /m:1 (или /maxcpucount:1). Он говорит, что по умолчанию он должен равняться 1, но я также видел комментарии к потокам, в которых добавление флага исправило некоторые проблемы параллельной сборки, поэтому, возможно, он изменился.

Документы здесь https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2017

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...