razzmatazz / csharp-language-server

Roslyn-based LSP language server for C#
MIT License
605 stars 41 forks source link

Project fails to load with IKVM package installed #146

Closed mphe closed 6 months ago

mphe commented 7 months ago

I am working on a project that requires IKVM and includes it as nuget package.

But, as the title says, as soon as a project includes IKVM, either directly or indirectly as a dependency of another package, csharp-ls fails to load the project. It seems to be related to the custom build tasks it provides. In that regard, it is likely other projects suffer from the same issue.

Steps to reproduce:

  1. dotnet new console
  2. dotnet add package IKVM
  3. csharp-ls now fails to load the project

Happening on Windows and Linux with Dotnet 8.0.

Output:

csharp-ls: initializing, csharp-ls version 0.11.0.0; cwd: \"/home/marvin/Dokumente/csharp-ls-ikvm\"
csharp-ls: csharp-ls is released under MIT license and is not affiliated with Microsoft Corp.; see https://github.com/razzmatazz/csharp-language-server
csharp-ls: MSBuildLocator: will register \".NET Core SDK\", Version=8.0.103 as default instance
csharp-ls: attempting to find and load solution based on root path (\"/home/marvin/Dokumente/csharp-ls-ikvm\")..
csharp-ls: 0 solution(s) found: []
csharp-ls: no or multiple .sln files found on /home/marvin/Dokumente/csharp-ls-ikvm
csharp-ls: looking for .csproj/fsproj files on /home/marvin/Dokumente/csharp-ls-ikvm..
csharp-ls: loading project \"/home/marvin/Dokumente/csharp-ls-ikvm/csharp-ls-ikvm.csproj\"..
csharp-ls: OK, 1 project files loaded
csharp-ls: msbuildWorkspace.Diagnostics: [Failure] Msbuild failed when processing the file '/home/marvin/Dokumente/csharp-ls-ikvm/csharp-ls-ikvm.csproj' with message: ROSLYNCODETASKFACTORYCSHARPCOMPILER: (0, 0): unrecognized argument: '/usr/share/dotnet/sdk/8.0.103/Roslyn/bincore/csc.dll'.
csharp-ls: msbuildWorkspace.Diagnostics: [Failure] Msbuild failed when processing the file '/home/marvin/Dokumente/csharp-ls-ikvm/csharp-ls-ikvm.csproj' with message: /home/marvin/.nuget/packages/ikvm.image/8.7.5/buildTransitive/IKVM.Image.targets: (95, 9): The source file for this compilation can be found at: \"/tmp/nvim.marvin/VXfnhA/MSBuildTempmarvin/tmpb92c8cce39c249c3b902edc09ba7be68.tmp\"
csharp-ls: msbuildWorkspace.Diagnostics: [Failure] Msbuild failed when processing the file '/home/marvin/Dokumente/csharp-ls-ikvm/csharp-ls-ikvm.csproj' with message: /home/marvin/.nuget/packages/ikvm.image/8.7.5/buildTransitive/IKVM.Image.targets: (95, 9): The \"_ExpandIkvmImageItems\" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is \"public\" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the \"/usr/share/dotnet/sdk/8.0.103\" directory.

Let me know if you need any more information.

mphe commented 6 months ago

Seems to be fixed with 0.12 👍