Compilando código C#7 que contiene ValueTuple con Mono 5
linux c#-7.0 (1)
Desinstalé el mono-desarrollo estable 5.0.1.1-0xamarin5 + ubuntu1604b1 y lo reemplacé con el beta mono-devel 5.2.0.196-0xamarin7 + ubuntu1604b1. El proyecto ahora compila sin error.
Asumiré que se ha corregido un error en mono que resuelve este problema.
Estoy intentando compilar mi nuevo código C # 7 en un servidor de compilación Linux utilizando Mono 5. Desafortunadamente, el proyecto falla cuando uso la nueva sintaxis de ValueTuple:
MyClass.cs (100,38): error CS1003: error de sintaxis, ''('' expected [/path/to/My.csproj]
Tengo la siguiente referencia de paquete en mi archivo de proyecto:
<PackageReference Include="System.ValueTuple" Version="4.3.0" />
y estoy usando los siguientes comandos en mi script de compilación rápida:
# msbuild My.sln /t:restore
# msbuild My.sln /p:Configuration=Release /p:Platform="Any CPU"
y el registro de MSBuild indica una versión de idioma de 7 y muestra una referencia a System.ValueTuple.dll:
CoreCompile:
/usr/lib/mono/4.5/csc.exe / noconfig / unsafe- / checked- / nowarn: 1701,1702,1705,1701,1702 / langversion: 7 / nostdlib + / errorreport: prompt / warn: 4 / doc: bin /Release/net461/My.xml / define: TRACE; RELEASE; NET461 / highentropyva + ... /reference:/root/.nuget/packages/system.valuetuple/4.3.0/lib/netstandard1.0/System.ValueTuple. dll ... / debug- / debug: portable / filealign: 512 / nologo / optimize + /out:obj/Release/net461/My.dll /subsystemversion:6.00 / target: library / warnaserror- / utf8output / deterministic + My.cs " /tmp/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs "obj / Release / net461 / My.AssemblyInfo.cs
¿Alguien ha compilado exitosamente C # usando la nueva sintaxis ValueTuple en Linux usando Mono 5? ¿Funcionó, o necesitó ajustar el entorno para que funcione?
Mi servidor de compilación ejecuta Ubuntu 16.04 y tiene mono-devel 5.0.1.1-0xamarin5 + ubuntu1604b1 instalado.