2

当我将 CSharpCodeProvider 类设置为使用 .NET 3.5 时,尝试加载某些引用的 DLL 时出错:

Line number 0, Error Number: CS0006, 'Metadata file 'System.Linq.dll' could not be found;
Line number 0, Error Number: CS0006, 'Metadata file 'System.Collections.dll' could not be found;

问题是,如果我将它设置为 2.0,它可以工作,但它不能使用 LINQ。

现在在其他线程中有解决方案说这是因为 DLL 不在正确的位置,并提供解决方案,例如:

typeof(System.Xml.Linq.Extensions).Assembly.Location

要获取 Linq 位置的位置,但由于我的程序的工作方式,我不知道我可能需要加载哪些 DLL。这对于外部库来说不是问题,因为用户无论如何都需要输入它们的位置,但是对于系统 dll,我可以使用"System.Linq"or获取它们的位置"System.Collections"吗?

4

1 回答 1

6

我不知道System.Collections.dllSystem.Linq.dll。大多数 LINQ 位于 中System.Core.dll,集合位于mscorlibSystem.dllIIRC 中。您需要区分名称空间程序集。(您使用using指令来导入命名空间,并在项目中添加对程序集的引用。)

您对哪些课程感兴趣?在 MSDN 中查找它们以查看它们所在的程序集。

于 2012-06-01T12:33:54.783 回答