¿Qué es Microsoft.csharp.dll en .NET 4.0?

Respuestas:

193

Se usa cuando / si usa la dynamicpalabra clave en su proyecto. El ensamblado contiene la carpeta de tiempo de ejecución C #.

El compilador de C # se ha extraído esencialmente en una biblioteca para que pueda emitir, compilar y ejecutar el código necesario para admitir la dynamicpalabra clave. La primera vez que utilice dynamicsu código, este ensamblado (así como System.dll, System.Core.dll y System.Dynamic.dll) se cargará en su AppDomain.

adrianbanks
fuente
3
¿Le gustaría especular sobre por qué eligieron hacer referencia a él de forma predeterminada? ¿Todos deberíamos estar usando dynamicmucho más de lo que estamos actualmente (es decir, nunca)?
mes
44
@mo es similar a cómo se agregan automáticamente using System.Linq;a todos los archivos. Simplemente hace que las nuevas funciones del lenguaje sean un poco más fluidas. Si quiere usarlo dynamic, simplemente funciona sin ningún esfuerzo de su parte.
Matt Greer
16

Siempre lo quité hasta ahora. Aún no hay problemas.

TomTom
fuente
13
Si su proyecto no usa la palabra clave dinámica, supongo que está bien eliminar la línea que dice <Reference Include="Microsoft.CSharp" /> en el archivo .csproj.
Cheeso
Gracias TomTom y @Cheeso. Intenté construir un .dll (Framework establecido en 3.5) para usar con Unity, y eliminarlo del archivo .csproj fue el truco.
Wolfram
44
Esta "respuesta" es más apropiada como comentario debajo de la pregunta. Si bien sugiere una solución alternativa, en realidad no responde a la pregunta de para qué sirve el nuevo ensamblado.
toonice