Since Visual Studio 2017 is released and we can use the new C# 7 features I expected this will work when deploying on Azure Web apps.
Unfortunately we\'re seeing compile
As pointed out by @joshuanapoli in a comment to the accepted answer Scenario #2 works only with Microsoft.Net.Compilers v2.4.0 and below.
Took me a couple of hours to notice and figure it out.
since we don't yet have msbuild15 in Azure. if you want to use c#7 features with continuous integration, you may need some workaround
dotnet msbuild.dll
) [repository sample]Microsoft.Net.Compilers
2.0+ nuget package to the project where the new language feature is applied. For example, if a class library in the solution is using the new syntax, you need to add nuget package to that lib project. (the new c# compiler is thus imported if you refer this nuget package) [repository sample]nuget restore
for the .NET framework lib project independently since dotnet restore
is not backwards compatible, it cannot retore project from the old build system. I did this by hacking my deploy.cmd
[repository sample]these workarounds either try to
imitate msbuild15 (case1: dotnet msbuild.dll
, case2: compiler as a nuget package)
or imitate nuget4.0 (case 3: run both dotnet restore
and nuget3.5 restore
)
we are in the process of building these tools for Azure, they should be out soon. you can stay updated on github
Adding the Microsoft.Net.Compilers
NuGet package fixes the issue.