Skip to content

.slnx solution files still cause "No file format header found" in v10.0.1 #1271

Description

@hkuzbyt-fast

CodeConverter Version: 10.0.1
OS: Windows

Error

Microsoft.Build.Exceptions.InvalidProjectFileException: No file format header found.
at Microsoft.Build.Construction.SolutionFile.ParseFileHeader()
at Microsoft.Build.Construction.SolutionFile.ParseSolution()
at Microsoft.Build.Construction.SolutionFile.ParseSolutionFile()
at Microsoft.Build.Construction.SolutionFile.Parse(String solutionFile)
at Microsoft.CodeAnalysis.MSBuild.MSBuildProjectLoader.LoadSolutionInfoAsync(...)
at Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace.OpenSolutionAsync(...)
at ICSharpCode.CodeConverter.CommandLine.MsBuildWorkspaceConverter.SolutionLoader.AnalyzeSolutionAsync(...) in MsBuildWorkspaceConverter.cs:line 87

Description

Despite issue #1195 being listed as fixed in v10.0.1, converting a VB project using a .slnx
solution file still fails with the above error. The bundled
Microsoft.CodeAnalysis.Workspaces.MSBuild.dll is version 4.14.0 (file version
4.1400.25.26210). MSBuildWorkspace in 4.x tries to parse .slnx as a traditional .sln file
and fails at the file header check — .slnx is XML-based and has no such header.

Root Cause

.slnx support in MSBuildWorkspace.OpenSolutionAsync requires
Microsoft.CodeAnalysis.Workspaces.MSBuild 5.x. The latest stable is 5.3.0.

Proposed Fix

Update CodeConv/CodeConv.csproj (and CodeConverter/CodeConverter.csproj):

  • Microsoft.CodeAnalysis.Workspaces.MSBuild 4.14.0 → 5.3.0
  • Microsoft.CodeAnalysis.CSharp.Workspaces 4.14.0 → 5.3.0
  • Microsoft.CodeAnalysis.VisualBasic.Workspaces 4.14.0 → 5.3.0
  • Microsoft.CodeAnalysis.CSharp.Features 4.14.0 → 5.3.0

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions