当我将 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"
或"System.Collections"
就可以获得他们的位置吗?
我不知道System.Collections.dll
或System.Linq.dll
.LINQ 的大部分内容是 System.Core.dll
的,集合是 IIRC mscorlib
和System.dll
。需要区分命名空间和程序集。(使用 using
指令导入命名空间,并添加对项目中程序集的引用。
您对哪些课程感兴趣?在 MSDN 中查找它们以查看它们位于哪些程序集中。