我有一个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?)
有谁知道为什么会这样?
答案 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的原因。