2010-03-17 120 views
151

此DLL在默认情况下添加到Visual Studio 2010项目中。这个新组件用于什么?在使用Reflector查看它之后,它似乎并没有太多含义,谷歌似乎也没有太多的话要说。什么是.NET 4.0中的Microsoft.csharp.dll

回答

174

当/如果您在项目中使用dynamic keyword时,会使用它。该程序集包含C#运行库。

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

+2

您是否愿意推测他们为什么默认选择引用它?我们是否应该比现在更多使用“动态”(即从未)? – 2013-02-28 14:55:15

+4

@mo这与他们如何自动添加'使用System.Linq;'到所有文件类似。它只是让更新的语言功能更加无缝。如果你想使用'动态',它只是毫不费力地工作。 – 2013-09-05 21:44:44

12

到目前为止一直删除它。还没有问题。

+13

如果您的项目不使用动态关键字,我想可以删除.csproj文件中的“行。 – Cheeso 2011-04-23 17:34:54

+0

感谢TomTom和@Cheeso。我试图建立一个.dll(框架设置为3.5)与Unity一起使用,并从.csproj文件中删除它。 – Wolfram 2015-05-20 13:45:39

+0

这个“答案”更适合作为问题下方的评论。虽然它提出了一种解决方法,但它并没有真正回答新组件的用途。 – toonice 2017-11-17 10:13:50

相关问题