39


I am having some weird problem.
When using this code I am unable to build, however it gives me no build errors.

the code

public void myMethod()
{              
    //This returns a string in JSON format.
    var jsonResponse = myApi.ReadMobileDevice("1");


    dynamic dynamicJson= JsonConvert.DeserializeObject(jsonResponse);

    //THIS LINE BREAKS MY BUILD. NO BUILD ERRORS SHOWN
    var jValue = dynamicJson["general.display_name"];
}

Can anyone tell me why my build braks, and also why no build errors are shown?

UPDATE - Output
*Also changed var to string

1>------ Build started: Project: Control, Configuration: Debug x86 ------
1>  Restoring NuGet packages...
1>  To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'.
1>  All packages listed in packages.config are already installed.
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(563,28,563,40): error CS0656: Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'
1>C:\ActacomProjects\DEV-Google\Control\Classes\DomainObjects\Schedules\HTTPSchedulesResponse.cs(41,34,41,36): warning CS0168: The variable 'Ex' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\Classes\DomainObjects\Schedules\HTTPSchedulesResponse.cs(87,30,87,32): warning CS0168: The variable 'Ex' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(1225,26,1225,45): warning CS0219: The variable 'recreateApplication' is assigned but its value is never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(1809,71,1809,74): warning CS0168: The variable 'dnf' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(1813,54,1813,56): warning CS0168: The variable 'ex' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(5017,34,5017,36): warning CS0168: The variable 'Ex' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(5087,42,5087,44): warning CS0168: The variable 'Ex' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(5154,42,5154,44): warning CS0168: The variable 'Ex' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(5192,42,5192,44): warning CS0168: The variable 'Ex' is declared but never used
1>C:\ActacomProjects\DEV-Google\Control\ModifyService.svc.cs(5267,42,5267,44): warning CS0168: The variable 'Ex' is declared but never used
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Nick Prozee
  • 2,823
  • 4
  • 22
  • 49

4 Answers4

111

You have this error in your output:

Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'

You need to add a reference to the DLL Microsoft.CSharp.dll.

Sᴀᴍ Onᴇᴌᴀ
  • 8,218
  • 8
  • 36
  • 58
amit dayama
  • 3,246
  • 2
  • 17
  • 28
  • Problem solved for me when I added System.Core in-addition to Microsoft.CSharp – Saminathan S Feb 07 '18 at 08:59
  • 7
    I have to add Nuget.CSharp in xamarin.Forms project as projects target .Net core 2.x and CSharp assembly cannot be explicitly added to portable project. worked. – Sakthivel Mar 01 '18 at 10:38
  • 3
    I use the same why from Sakthivel by adding Microsoft.CSharp from nuget to the .net standard project to fix this issue – frank Mar 06 '18 at 12:30
  • 3
    I added the Nuget Package Microsoft.CSharp, but I have the same error. – Renzo Ciot Aug 20 '18 at 13:15
16

As similar to Saminathan S's comment in the accepted answer. If you are using .NETStandard projects (in my case NETStandard 2.0) you need to add Microsoft.CSharp from NuGet rather than as a reference in order to resolve this build error. I was using Visual Studio Community on a Mac.

The Senator
  • 5,181
  • 2
  • 34
  • 49
  • 1
    Same for me in VS2017 Professional on Windows. Why this wasn't included in the project template remains a mystery. – jmdon May 06 '18 at 13:16
  • Same for me using VS2019 Community on Windows x64 with NETStandard2.0. – GaidinD Sep 25 '20 at 11:47
7

Quick solution.

Right click on Packages > Add NuGet Packages... > Microsoft.CSharp

This worked for me. [Mac, Visual Studio 2017 Community]

2

You can also edit your .csproj file adding this, which has the same result as @the-senator said:

<PackageReference Include="Microsoft.CSharp" Version="4.5.0" />
Tena
  • 600
  • 4
  • 14