What some of the tutorials I’ve found for using dotnet with mono miss, are these issues:

https://github.com/dotnet/core/issues/2540#

https://github.com/NuGet/Home/issues/7956

This will give you the following error:​​​​

/usr/share/dotnet/sdk/2.2.203/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(5,5): Error MSB4018: The "GenerateDepsFile" task failed unexpectedly.
System.TypeLoadException: Could not load type of field 'Microsoft.NET.Build.Tasks.DependencyContextBuilder:_filteredPackages' (12) due to: Could not resolve type with token 01000027 from typeref (expected class 'NuGet.Packaging.Core.PackageIdentity' in assembly 'NuGet.Packaging, Version=5.0.0.6, Culture=neutral, PublicKeyToken=31bf3856ad364e35') assembly:NuGet.Packaging, Version=5.0.0.6, Culture=neutral, PublicKeyToken=31bf3856ad364e35 type:NuGet.Packaging.Core.PackageIdentity member:(null)
at Microsoft.NET.Build.Tasks.TaskBase.Execute () [0x00000] in :0
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <58f0218f988743a48dd7c84cbe933f4e>: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) [0x001f6] in <58f0218f988743a48dd7c84cbe933f4e>:0 (MSB4018) (. . .

However, the solution to downgrade to 2.2.105 is not available in the most recent releases for ubuntu 18.04 (it would require selecting a previous snapshot but this doesn’t seem to be possible with the microsoft repository for ubuntu 18.04 https://packages.microsoft.com/ubuntu/18.04/prod

Instead you should downgrade to 2.1.105 SDK and runtime envirnoment 2.0.7. To see how I got this look here:

https://weblog.west-wind.com/posts/2018/Jun/05/Which-NET-Core-Runtime-Download-do-you-need

After you install the right SDK version:

joel@joel-Aspire-E5-575G:~$ sudo apt-cache search dotnet | grep 2.1.105
dotnet-sdk-2.1.105 - Microsoft .NET Core SDK - 2.1.105
joel@joel-Aspire-E5-575G:~$sudo apt install dotnet-sdk-2.1.105

You can see what the corresponding runtime should be to your SDK by doing this: (here we see SDK 2.1.105 is supposed to use runtime 2.0.7, bolded text is my own)

joel@joel-Aspire-E5-575G:~$ dotnet --info
.NET Command Line Tools (2.1.105)

Product Information:
Version: 2.1.105
Commit SHA-1 hash: 141cc8d976

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

Microsoft .NET Core Shared Framework Host

Version : 2.0.7
Build : 2d61d0b043915bc948ebf98836fefe9ba942be11

You can search for it like so:

joel@joel-Aspire-E5-575G:~$ sudo apt-cache search dotnet | grep 2.0.7
dotnet-hostfxr-2.0.7 - Microsoft .NET Core Host FX Resolver - 2.0.7 2.0.7
dotnet-hosting-2.0.7 - Microsoft .NET Core 2.0.7 Linux Server Hosting
dotnet-runtime-2.0.7 - Microsoft .NET Core Runtime - 2.0.7 Microsoft.NETCore.App 2.0.7

So to install everything

joel@joel-Aspire-E5-575G:~$ sudo apt install dotnet-sdk-2.1.105  dotnet-runtime-2.0.7 dotnet-hosting-2.0.7 dotnet-hostfxr-2.0.7
joel@joel-Aspire-E5-575G:~$ sudo apt install mono-devel mono-complete monodevelop

And then the instructions for running your “ASP.NET Core Web API” in mono will work here: https://www.c-sharpcorner.com/article/create-net-core-web-api-c-sharp-in-monodevelop-on-ubuntu-18-04/

The version of mono I am using (so I know it works with this) is 5.20.1.19:

joel@joel-Aspire-E5-575G:~$ mono --version
Mono JIT compiler version 5.20.1.19 (tarball Thu Apr 11 09:02:17 UTC 2019)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: yes(600)
Suspend: hybrid
GC: sgen (concurrent by default)

1 Comment

Eberhard · May 28, 2019 at 11:16

Be aware that installing dotnet-sdk-2.1.105 despite it’s name doesn’t install .NET SDK 2.1. If you’re targeting for .NET Core 2.1 this will cause an error saying that 2.1 isn’t installed. See https://developercommunity.visualstudio.com/content/problem/213229/the-current-net-sdk-does-not-support-targeting-net.html.

I solved it by running the following commands:

“`
sudo apt install dotnet-sdk-2.2=2.2.105-1
sudo apt-mark hold dotnet-sdk-2.2
“`

Leave a Reply

Your email address will not be published. Required fields are marked *