PolySharp icon indicating copy to clipboard operation
PolySharp copied to clipboard

C# 12 need net8 sdk to be installed in Ubuntu 22.04, but success in Windows using visual studio 2022.

Open moh-hassan opened this issue 3 months ago • 1 comments

A multi target project net6, net472 with c# 12 is developed to support both windows and Linux. <LangVersion>12</LangVersion>

i use global.json that allow sdk6:

{
  "sdk": {
    "version": "6.0.419",
    "rollForward": "latestFeature"
  }
}

When the project is built in windows 11 using visual studio v17.9.2 , it is compiled without errors.

Note: visual studio 2022 v 17.9.2 auto install net8 (that support c# 12). So it is expected to success compilation

When the project is built in In Ubuntu 22.04 (with Mono 6 installed), using the command dotnet build , the compiler raise error:

CSC : error CS1617: Invalid option '12' for /langversion. Use '/langversion:?' to list supported values. 

Resolving the issue:

I had to install net8 sdk (8.0.200) with runtime in Ubuntu 22.04 to build the project and modify the global.json. Then rebuild. The build success without errors:

{
  "sdk": {
    "version": "8.0.200",
    "rollForward": "latestFeature"
  }
}

It seems that c# 12 support need net8 to be installed in UbUntu 22.04. (or windows)

I suggest, this limitation can be documented.

moh-hassan avatar Mar 06 '24 10:03 moh-hassan