【问题标题】:C# compiler does not find dlls ; solution compiled in VS2010C# 编译器没有找到 dll; VS2010编译的解决方案
【发布时间】:2011-09-29 06:34:37
【问题描述】:

我有一个 C# 解决方案和一些引用的 dll-s。即使在 Visual Studio(vs2010) 中编译时它显示为成功,但使用 C# 编译器时它失败:显然缺少 dll..

csc /t:library /out:test.dll test.cs


test.cs(22,10): error CS0246: The type or namespace name
    'Attribute' could not be found (are you missing a using directive
    or an assembly reference?)

有人知道为什么会这样吗?

【问题讨论】:

  • 您是否修改了默认响应文件? (csc.rsp.cfg 或类似的东西)。如果这是一个简短的测试程序,你能给出代码吗?我认为您要查找的只是 System.Attribute?
  • @Jon Skeet 它不是 system.attribute,我在将其粘贴到此处时缩短了名称..引用的文件是另一个 dll,之前测试为工作..我确实修改了响应文件..不工作..

标签: c# visual-studio-2010 c#-4.0 csc


【解决方案1】:

由于您没有提供代码,因此尚不清楚 Attribute 是什么类型。如果是System.Attribute,我希望通过默认程序集引用自动找到它。如果它是另一个程序集中的类型,则需要从命令行显式引用它:

csc /t:library /out:test.dll /r:OtherAssembly.dll test.cs

【讨论】:

  • @Leah:即使你已经让它工作了,我强烈建议不要使用已经在核心 BCL 命名空间中的类型名称。
  • 我会记住这一点......正如我之前所说......在这种情况下,粘贴错误时名称会缩短:) ..现在可以使用。谢谢。
【解决方案2】:

CSC 对包含 test.cs 的项目以及该项目引用的任何库一无所知。

您必须使用 /r 开关才能引用其他程序集。请注意,包含 csc.exe 的文件夹中有一个名为 csc.rsp 的文件,它指定了默认的命令行开关。这包含大多数常用的 .NET 框架程序集,这就是为什么您不必显式引用 mscorlib.dll 等原因。

【讨论】:

  • ..好奇一些引用的 dll 被识别了......但不是所有的......虽然现在可以工作
猜你喜欢
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 2013-03-28
  • 2012-08-08
  • 1970-01-01
  • 2011-08-05
相关资源
最近更新 更多