C#编译器找不到dll;在VS2010中编译的解决方案

时间:2011-09-29 06:34:37

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

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

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

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