Skip to content

Conversation

@max-charlamb
Copy link
Member

@max-charlamb max-charlamb commented Oct 11, 2025

Updates repository to use Microsoft.Build.Traversal .proj files to drive which projects are built. Previously the arcade build infrastructure would build the solution files found in the root directly. This approach gives us more fine-grained control over projects to build, as well as allow us to automatically generate a solution file using slngen.

I have checked in the generated build.sln which can be loaded with VS or VSCode. This version includes the vcxproj files which improve the native debug experience in VS. There is an option to generate build.sln without these files as they can cause warnings on non-Windows platforms (same behavior as today).

For convienence I have added two new scripts:

  • eng/generate-sln.ps1
  • eng/generate-sln.sh
    both of these automatically invoke the proper commands to regenerate the build.sln file.

I updated the instruction docs to reference build.sln and explain how to regenerate it.

Edit:

  • I have reverted from using slnx -> sln as the conversion process causes some problems with the vcxproj Ids. Given that these are now auto-generated, using the sln format seems acceptable as it has broader support.

@max-charlamb max-charlamb marked this pull request as ready for review October 11, 2025 01:46
@max-charlamb max-charlamb requested a review from a team as a code owner October 11, 2025 01:46
hoyosjs
hoyosjs previously approved these changes Oct 11, 2025
@hoyosjs
Copy link
Member

hoyosjs commented Oct 11, 2025

From a technical perspective, I like the traversal better. That being said:

  • Consider a tools manifest to lock versions
  • this loses the native file view and the sln folder view. I can't say I used a lot, not sure if everyone feels that way

steveisok
steveisok previously approved these changes Oct 11, 2025
Copy link
Member

@steveisok steveisok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think if there is a need for the prior .sln format, we can easily bring it back. I suspect it's just easier to manage .slnx files, but AI is also good at structuring the .sln file for you.

@max-charlamb max-charlamb dismissed stale reviews from steveisok and hoyosjs via 41159c1 October 15, 2025 15:48
Copy link
Member

@hoyosjs hoyosjs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks :) Much easier to reason about and still have a reasonable loop

@hoyosjs hoyosjs enabled auto-merge (squash) October 15, 2025 17:23
@hoyosjs hoyosjs merged commit 05321bc into dotnet:main Oct 15, 2025
19 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Nov 15, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants