microsoft / microsoft/vs-solutionpersistence

slnx file not loading platform

Open
#137 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
213
Forks
14
PR merge metrics
No merged PRs in 30d

Description

I'm trying out the new slnx file format an stumbling across an issue with platforms. In the sln I have something like this:

GlobalSection(SolutionConfigurationPlatforms) = preSolution
	Debug|Clang Win64 = Debug|Clang Win64
	Debug|MSVC Win64 = Debug|MSVC Win64
	Final|Clang Win64 = Final|Clang Win64
	Final|MSVC Win64 = Final|MSVC Win64
	Profiling|Clang Win64 = Profiling|Clang Win64
	Profiling|MSVC Win64 = Profiling|MSVC Win64
EndGlobalSection

I'm mapping that in the slnx as

<Configurations>
    <BuildType Name="Debug" />
    <BuildType Name="Final" />
    <BuildType Name="Profiling" />
    <Platform Name="Clang Win64" />
    <Platform Name="MSVC Win64" />
  </Configurations>

but this fails with the following error: Cannot load project: project does not contain requested configuration Debug|x64. Please verify that .sln file is valid and uses only existing project configurations.

The project references platforms as follows:

<ProjectConfiguration Include="Debug MSVC Win64|x64">
      <Configuration>Debug MSVC Win64</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug Clang Win64|x64">
      <Configuration>Debug Clang Win64</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profiling MSVC Win64|x64">
      <Configuration>Profiling MSVC Win64</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Profiling Clang Win64|x64">
      <Configuration>Profiling Clang Win64</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Final MSVC Win64|x64">
      <Configuration>Final MSVC Win64</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Final Clang Win64|x64">
      <Configuration>Final Clang Win64</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>

What am I doing wrong? How should I map these concepts in the new model?

Thanks

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the slnx Configurations mapping and compare it with the project's ProjectConfiguration entries, especially the requested Debug|x64 combination. Determine how build types, platforms, and the combined project configuration names are expected to correspond; done means the slnx loads without the configuration error.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.