2010-03-17 11 views
151

Este archivo DLL se agrega de forma predeterminada en los proyectos de Visual Studio 2010. ¿Para qué se usa este nuevo ensamblaje? No parece contener mucho después de mirarlo usando Reflector y Google tampoco parece tener mucho que decir al respecto.¿Qué es Microsoft.csharp.dll en .NET 4.0

Respuesta

174

Se usa cuando/si usa dynamic keyword en su proyecto. El conjunto 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 palabra clave dynamic. La primera vez que use dynamic en su código, este ensamblado (así como System.dll, System.Core.dll y System.Dynamic.dll) se cargarán en su AppDomain.

+2

¿Te importaría especular sobre por qué eligieron hacer referencia por defecto? ¿Deberíamos todos estar usando 'dynamic' mucho más de lo que somos actualmente (es decir, nunca)? –

+4

@mo es similar a cómo agregan automáticamente 'using System.Linq;' a todos los archivos. Simplemente hace que las características del lenguaje más nuevo sean un poco más integradas. Si desea usar 'dynamic', simplemente funciona sin ningún esfuerzo de su parte. –

12

Siempre lo quité hasta ahora. No hay problemas todavía

+13

Si su proyecto no usa la palabra clave dinámica, creo que está bien eliminar la línea que dice '' en el archivo .csproj. – Cheeso

+0

Gracias TomTom y @ Cheeso. Estaba intentando construir un .dll (Framework establecido en 3.5) para usar con Unity, y eliminarlo del archivo .csproj fue el truco. – Wolfram

+0

Esta "respuesta" es más apropiada como un comentario debajo de la pregunta. Si bien sugiere una solución alternativa, en realidad no responde la pregunta de para qué sirve el nuevo ensamblaje. – toonice