Omnisharp-vscode: The "ProtoCompile" task failed unexpectedly

Created on 3 Sep 2019  路  25Comments  路  Source: OmniSharp/omnisharp-vscode

Issue Description

I can't use omnisharp in vscode with grpc projects from the .Net Core 3.0 Preview

Steps to Reproduce

Execute:

dotnet new grpc -n TestApp -o src/

cd src/

code .

Expected Behavior

Normal behavior

Actual Behavior

Exception: The "ProtoCompile" task failed unexpectedly.

Logs

OmniSharp log

Starting OmniSharp server at 9/3/2019, 3:40:05 PM
Target: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer

OmniSharp server started.
Path: /home/jose/.vscode/extensions/ms-vscode.csharp-1.21.1/.omnisharp/1.34.2/run
PID: 26921

    Starting OmniSharp on ubuntu 18.4 (x64)
    DotNetPath set to dotnet
    Located 1 MSBuild instance(s)
        1: StandAlone 16.0 - "/home/jose/.vscode/extensions/ms-vscode.csharp-1.21.1/.omnisharp/1.34.2/omnisharp/.msbuild/Current/Bin"
    MSBUILD_EXE_PATH environment variable set to '/home/jose/.vscode/extensions/ms-vscode.csharp-1.21.1/.omnisharp/1.34.2/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
    Registered MSBuild instance: StandAlone 16.0 - "/home/jose/.vscode/extensions/ms-vscode.csharp-1.21.1/.omnisharp/1.34.2/omnisharp/.msbuild/Current/Bin"
        MSBuildExtensionsPath = /home/jose/.vscode/extensions/ms-vscode.csharp-1.21.1/.omnisharp/1.34.2/omnisharp/.msbuild
        BypassFrameworkInstallChecks = true
        CscToolPath = /home/jose/.vscode/extensions/ms-vscode.csharp-1.21.1/.omnisharp/1.34.2/omnisharp/.msbuild/Current/Bin/Roslyn
        CscToolExe = csc.exe
        MSBuildToolsPath = /home/jose/.vscode/extensions/ms-vscode.csharp-1.21.1/.omnisharp/1.34.2/omnisharp/.msbuild/Current/Bin
    Detecting Cake files in '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer'.
    Could not find any Cake files
    No solution files found in '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer'
    Queue project update for '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/clients/csharp/grpc_client.csproj'
    Queue project update for '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/audit_logger/gen_csharp/audit_logger.csproj'
    Queue project update for '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/facenet/gen_csharp/facenet.csproj'
    Queue project update for '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/health_check/gen_csharp/health_check.csproj'
    Queue project update for '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/midas/gen_csharp/midas.csproj'
    Queue project update for '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/tessocr/gen_csharp/tessocr.csproj'
    Queue project update for '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/src/FaissBalancer.csproj'
    Detecting CSX files in '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer'.
    Could not find any CSX files
    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
    Loading project: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/clients/csharp/grpc_client.csproj
    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.EditorConfigWorkspaceOptionsProvider, Order: 200
    Configuration finished.
    Omnisharp server running using Stdio at location '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer' on host 26740.
    Successfully loaded project file '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/clients/csharp/grpc_client.csproj'.
    Adding project '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/clients/csharp/grpc_client.csproj'
    Loading project: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/audit_logger/gen_csharp/audit_logger.csproj
    Successfully loaded project file '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/audit_logger/gen_csharp/audit_logger.csproj'.
    Adding project '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/audit_logger/gen_csharp/audit_logger.csproj'
    Loading project: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/facenet/gen_csharp/facenet.csproj
    Successfully loaded project file '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/facenet/gen_csharp/facenet.csproj'.
    Adding project '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/facenet/gen_csharp/facenet.csproj'
    Loading project: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/health_check/gen_csharp/health_check.csproj
    Successfully loaded project file '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/health_check/gen_csharp/health_check.csproj'.
    Adding project '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/health_check/gen_csharp/health_check.csproj'
    Loading project: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/midas/gen_csharp/midas.csproj
    Successfully loaded project file '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/midas/gen_csharp/midas.csproj'.
    Adding project '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/midas/gen_csharp/midas.csproj'
    Loading project: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/tessocr/gen_csharp/tessocr.csproj
    Successfully loaded project file '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/tessocr/gen_csharp/tessocr.csproj'.
    Adding project '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/lib/namku_grpc/services/tessocr/gen_csharp/tessocr.csproj'
    Loading project: /media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/src/FaissBalancer.csproj
    The "ProtoCompile" task failed unexpectedly.

System.MissingMethodException: Method not found: void Microsoft.Build.Utilities.ToolTask.set_UseCommandProcessor(bool)
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <4e0a1f1d78cf4c1ebd6f9a3dbcebf3bb>:0
at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x00212] in <4e0a1f1d78cf4c1ebd6f9a3dbcebf3bb>:0
Failed to load project file '/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/src/FaissBalancer.csproj'.
/media/Datos/Symmetrik/DesarrolloSymmetrik/Dev/Microservice/faiss-balancer/src/FaissBalancer.csproj
/home/jose/.nuget/packages/grpc.tools/1.22.0-pre1/build/_protobuf/Google.Protobuf.Tools.targets(264,5): Error: The "ProtoCompile" task failed unexpectedly.
System.MissingMethodException: Method not found: void Microsoft.Build.Utilities.ToolTask.set_UseCommandProcessor(bool)
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <4e0a1f1d78cf4c1ebd6f9a3dbcebf3bb>:0
at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x00212] in <4e0a1f1d78cf4c1ebd6f9a3dbcebf3bb>:0

C# log

Post the output from Output-->C# here

Environment information

VSCode version: 1.37.1
C# Extension: 1.21.1

Mono Information
OmniSharp using built-in mono

Dotnet Information
.NET Core SDK (reflecting any global.json):
Version: 3.0.100-preview8-013656
Commit: 8bf06ffc8d

Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-x64
Base Path: /home/jose/dotnet/sdk/3.0.100-preview8-013656/

Host (useful for support):
Version: 3.0.0-preview8-28405-07
Commit: d01b2fb7bc

.NET Core SDKs installed:
3.0.100-preview8-013656 [/home/jose/dotnet/sdk]

.NET Core runtimes installed:
Microsoft.AspNetCore.App 3.0.0-preview8.19405.7 [/home/jose/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.0.0-preview8-28405-07 [/home/jose/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download


Visual Studio Code Extensions

|Extension|Author|Version|
|---|---|---|
|bracket-pair-colorizer-2|CoenraadS|0.0.28|
|cpptools|ms-vscode|0.25.1|
|csharp|ms-vscode|1.21.1|
|dotenv|mikestead|1.0.1|
|dotnet-test-explorer|formulahendry|0.7.1|
|gitconfig|sidneys1|2.0.1|
|gitflow|vector-of-bool|1.2.1|
|JavaScriptSnippets|xabikos|1.7.2|
|jinjahtml|samuelcolvin|0.10.5|
|markdown-all-in-one|yzhang|2.4.2|
|markdown-preview-enhanced|shd101wyy|0.4.3|
|material-icon-theme|PKief|3.9.0|
|night-owl|sdras|1.1.3|
|npm-intellisense|christian-kohler|1.3.0|
|pgformatter|bradymholt|1.7.0|
|prettier-vscode|esbenp|2.2.2|
|python|ms-python|2019.8.30787|
|rainbow-csv|mechatroner|1.3.1|
|swdc-vscode|softwaredotcom|1.1.26|
|vetur|octref|0.22.2|
|vscode-ant-design-vue-helper|ant-design-vue|1.0.6|
|vscode-coverage-gutters|ryanluker|2.4.0|
|vscode-django|batisteo|0.19.0|
|vscode-docker|ms-azuretools|0.7.0|
|vscode-eslint|dbaeumer|1.9.1|
|vscode-jumpy|wmaurer|0.3.1|
|vscode-proto3|zxh404|0.3.0|
|vscode-status-bar-format-toggle|tombonnike|1.5.0|
|vue-vscode-extensionpack|sdras|0.2.0|
|vue-vscode-snippets|sdras|1.8.0|
|wordpress-snippet|tungvn|1.1.5|;

Resolved-Fixed Triaged

Most helpful comment

Same issue found on MacOS, Any ETA of the release including the fix? Or any workaround could make my project goes on?
Thanks.

All 25 comments

@nguerrera Do you have an idea what the ProtoCompile task is and why it might be failing here ?

I don't know what it is yet, but it seems to be due to binding it to an older version of msbuild than what has this defined:

System.MissingMethodException: Method not found: void Microsoft.Build.Utilities.ToolTask.set_UseCommandProcessor(bool)

Hmm, that property is pretty ancient.

So, the net45 copy of Protobuf.MSBuild.dll references Microsoft.Build.Utilities.v4.0, and it appears that wherever that is coming from doesn't have void Microsoft.Build.Utilities.ToolTask.set_UseCommandProcessor(bool)

Looks like Microsoft.Build.Utilities.v4.0 comes from mono, and not from msbuild:

"C:\Users\nicholg\Downloads\omnisharp-osx\lib\mono\gacMicrosoft.Build.Utilities.v4.0\4.0.0.0__b03f5f7f11d50a3aMicrosoft.Build.Utilities.v4.0.dll"

@nguerrera Does that mean it used to exist in previous versions and is no more present, hence updating the mono version would not be helpful ?

@akshita31 It may be the case the mono implementation of this dll never had this property. I don't know. But ideally, nothing would use this old .v4.0 assembly in mono (or full .net framework) and instead use the .Core version that comes with a recent msbuild.

@juntaoluo my recommendation would be to use a MSBuild 15.0+ package reference for both net45 and non-net45 here: https://github.com/grpc/grpc/blob/b7d69ad42533b88c70868dd61ed543c2c8a055da/src/csharp/Grpc.Tools/Grpc.Tools.csproj#L86-L91

cc @Pilchie

cc @rainersigwald

@nguerrera Thanks for the detailed analysis 馃挴

Strong agree on @nguerrera's analysis. Including @radical for Mono MSBuild.

Also including @jamesnk too

Mono adds facade assemblies for Microsoft.Build.{Tasks,Utilities}.v{4,12}.0, which just typeforward to the newer assemblies. But Omnisharp doesn't seem to be copying them over - https://github.com/OmniSharp/omnisharp-roslyn/blob/master/mono-packaging/copy-msbuild.sh#L53-L58 . When I copy the assemblies over manually, the error goes away.

PR for a fix: https://github.com/OmniSharp/omnisharp-roslyn/pull/1595

this wss discussed here https://github.com/grpc/grpc/pull/19589 but never merged

the fix from @radical looks good to me for the embedded mono flow 馃憤

however OmniSharp can also run on global mono (in fact it will prefer that if found) which still wouldn't work

The issue will be fixed in the next release of the extension. Thanks @radical for the prompt response 馃

I have the same problem.

VSCode version: 1.38.1
C# Extension: 1.21.3

Happy to see a PR merged, but, what is the expected release date? Do you work with regular or irregular releases?

Same issue found on MacOS, Any ETA of the release including the fix? Or any workaround could make my project goes on?
Thanks.

@akshita31 the issue is still there with the 1.21.5 release which as far as I can tell has OmniSharp 1.34.5 which should have @radical changes, but I still get the same error

/home/ahmed/.nuget/packages/grpc.tools/2.23.0/build/_protobuf/Google.Protobuf.Tools.targets(264,5): Error: The "ProtoCompile" task failed unexpectedly.
System.MissingMethodException: Method not found: void Microsoft.Build.Utilities.ToolTask.set_UseCommandProcessor(bool)
  at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <b695b16788dd418cbe8b4d98f7a92ff3>:0 
  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x002a9] in <b695b16788dd418cbe8b4d98f7a92ff3>:0 

Repro:

$ dotnet new grpc -o GrpcGreeter
$ cd GrpcGreeter
$ code .
$ dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.0.100
 Commit:    04339c3a26

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64
 Base Path:   /usr/share/dotnet/sdk/3.0.100/

Host (useful for support):
  Version: 3.0.0
  Commit:  95a0a61858

.NET Core SDKs installed:
  3.0.100 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

just updated to vscode 1.40.2 + ms-vscode.csharp 1.21.8 on my laptop and checked in on this issue for the first time in a while, and the fix appears to have landed, but ymmv

Was this page helpful?
0 / 5 - 0 ratings

Related issues

slevengood picture slevengood  路  3Comments

Alumniminium picture Alumniminium  路  3Comments

mattwoberts picture mattwoberts  路  3Comments

hamhub7 picture hamhub7  路  3Comments

jrmcdona picture jrmcdona  路  3Comments