使用代码:
CompilerParameters parameters = new CompilerParameters();
parameters.ReferencedAssemblies.Add("System.dll");
parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
到目前为止,它很好并且它可以工作,我可以运行我给它的代码,但是如果我添加这些程序集:
//parameters.ReferencedAssemblies.Add("System.Text.dll");
//parameters.ReferencedAssemblies.Add("System.Linq.dll");
在运行时它给我一个错误说:
无法找到元数据文件“System.Text”。
那我在这里做错了什么?
答案 0 :(得分:6)
没有System.Text
和System.Linq
程序集。 名称空间被称为,但它完全不同。
LINQ在System.Core.dll
中实现;你可以看到这个,例如在System.Linq.Enumerable
的文档中:
命名空间:
System.Linq
汇编:
System.Core
(在System.Core.dll
)
要找出需要引用的程序集,只需浏览您感兴趣的类型的文档,然后查看程序集实现它们的内容。由于.NET库开发人员重视一致性,您会发现命名空间完全在同一个程序集中实现(至少 I 不知道任何异常)。