1

我有一个 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?)

有谁知道为什么会这样?

4

2 回答 2

4

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

csc /t:library /out:test.dll /r:OtherAssembly.dll test.cs
于 2011-09-29T06:38:45.390 回答
2

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

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

于 2011-09-29T06:44:50.073 回答