Skip to content

Conversation

@mconnew
Copy link
Member

@mconnew mconnew commented Oct 24, 2025

I finally got fed up enough with builds failing due to race conditions on files shared between projects and decided to fix it. The arcade build system loads all solutions and builds them in parallel. A project in the dotnet-svcutil.sln would reference a System.ServiceModel.* project and attempt to build it as a dependency. Simultaneously, System.ServiceModel.sln was being build which would try to build the same project. Sometimes they would try to build the common project at the same time, and you would get a build error.
The fix is to have a single .sln file with everything in it, and use .slnf files to filter the set of projects loaded when working on code in Visual Studio.

I have validated that the new .slnf files work when being passed to build -vs solution.slnf. They don't work when being passed to build -build -project solution.slnf, but I don't think that will be a problem.

@mconnew
Copy link
Member Author

mconnew commented Oct 24, 2025

@imcarolwang, can you give this a try and see if it works well for you? If it does, we can merge this and improve the stability or PR builds.

@imcarolwang
Copy link
Contributor

@imcarolwang, can you give this a try and see if it works well for you? If it does, we can merge this and improve the stability or PR builds.

I’ve tried the updated solution and confirmed that it works fine for me locally. However, I do have one concern: when performing individual product builds and tests for System.ServiceModel or dotnet-svcutil, I need to edit the AllProjects.slnx file. Are there any other ways or build command options available to achieve this without modifying the .slnx file directly?

@mconnew
Copy link
Member Author

mconnew commented Oct 27, 2025

I will hold off on this change until I have a good answer for that. I'll ask the arcade team if there's a solution to build -build -project not working with slnf files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants