microsoft / microsoft/vs-solutionpersistence
Add support for `Microsoft.Build.Traversal` projects
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 213
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
This one might be a bit of a reach, but I've heard from many people that they would like traversal projects to act as solutions. Personally, it's the ease with which projects can be included. Traversal projects could make use of the familiar MSBuild properties, items, targets, and tasks known from project files.
<Project Sdk="Microsoft.Build.Traversal/4.1.0">
<ItemGroup>
<ProjectReference Include="src/*/*.csproj" />
</ItemGroup>
</Project>
I'm curious about people's alternative ideas, since I'm not optimistic that this can be supported. MSBuild projects are a lot more complicated, and using one as a solution would probably produce unexpected behavior.
I would still like to open the discussion for some format that's closer to MSBuild project files, so let me know if you have any ideas on how to perhaps use the MSBuild architecture to build a solution format that integrates with MSBuild. A possible format I've imagined is the following:
<Project Sdk="Microsoft.Build.Solution">
<ItemGroup>
<Configuration Include="CustomConfiguration" Platform="Any CPU" />
</ItemGroup>
<ItemGroup>
<Project Include="src/*/*.csproj"
Folder="src" />
<Project Include="test/*/*.csproj"
Folder="test" />
<Project Update="test/*/*.csproj"
Condition="'$(Configuration)' == 'Release'"
NoBuild="true" />
</ItemGroup>
</Project>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the repository's solution serializers and models, then compare their supported solution behavior with the proposed Microsoft.Build.Traversal and Microsoft.Build.Solution XML examples. The issue does not identify an entry point, tests, or an agreed format; done would require a decided design and corresponding support.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100