什么是.NET 4.0中的Microsoft.csharp.dll

ano*_*non 162 .net .net-4.0 visual-studio-2010 visual-studio c#-4.0

默认情况下,此DLL在Visual Studio 2010项目中添加.这个新组件用于什么?在使用Reflector查看它之后似乎没有多少内容,谷歌似乎也没有太多可说的.

adr*_*nks 190

如果您在项目中使用dynamic关键字,则使用它.程序集包含C#运行时绑定程序.

C#编译器基本上被提取到库中,以便它可以发出,编译和运行支持dynamic关键字所需的代码.第一次dynamic在代码中使用时,此程序集(以及System.dll,System.Core.dll和System.Dynamic.dll)将加载到您的AppDomain中.

  • @mo它类似于他们如何自动将`using System.Linq;`添加到所有文件中.它只是使新的语言功能更加无缝.如果你想使用`dynamic`,那么你就可以毫不费力地工作了. (4认同)
  • 您是否愿意猜测他们为什么选择默认引用它?我们是否应该比现在更多地使用`dynamic`(即从不)? (3认同)

小智 16

到目前为止始终将其删除.还没有问题.

  • 如果你的项目没有使用dynamic关键字,我想可以删除.csproj文件中名为`<Reference Include ="Microsoft.CSharp"/>`的行. (13认同)
  • 这个"答案"更适合作为问题下方的评论.虽然它提出了一种解决方法,但实际上并没有回答新装配的问题. (3认同)