【问题标题】:Why I can't add some assemblies to my referenced assemblies为什么我不能将一些程序集添加到我引用的程序集中
【发布时间】:2012-04-30 14:47:50
【问题描述】:

附上代码:

 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”。

那我在这里做错了什么?

【问题讨论】:

    标签: c# assemblies


    【解决方案1】:

    没有System.TextSystem.Linq 程序集。有命名空间这样称呼,但它完全是另一回事。

    LINQ 在System.Core.dll 中实现;你可以看到这个,例如在System.Linq.Enumerable 的文档中:

    命名空间:System.Linq

    程序集:System.Core(在System.Core.dll

    要找出您需要引用哪些程序集,只需浏览您感兴趣的类型的文档并查看哪些程序集实现了它们。由于 .NET 库开发人员重视一致性,您会发现命名空间是在同一个程序集中整体实现的(至少不知道有任何异常)。

    【讨论】:

    • 如果我希望用户能够使用 Linq 或一些 System.IO 方法等...那么我应该加载哪些其他程序集?
    • @BDotA:更新完答案,看看吧。
    • 谢谢,知道了,但即使有参数。ReferencedAssemblies.Add("System.Core.dll");它给了我和以前一样的错误。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 2012-08-03
    相关资源
    最近更新 更多