What is Microsoft.csharp.dll in .NET 4.0

.net, .net-4.0, c#-4.0, visual-studio, visual-studio-2010

Solution

It is used when/if you use the `dynamic` keyword in your project. The assembly contains the C# runtime binder.

The C# compiler has essentially been extracted out into a library so that it can emit, compile and run code needed to support the `dynamic` keyword. The first time you use `dynamic` in your code, this assembly (as well as System.dll, System.Core.dll and System.Dynamic.dll) will get loaded into your AppDomain.

Problem

This DLL is added by default in Visual Studio 2010 projects. What is this new assembly used for? It does not seem to contain much after looking at it using Reflector and Google does not seem to have much to say about it either.

Original source