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 Frameworkアセンブリのほとんどが含まれているため、たとえば、mscorlib.dllを明示的に参照する必要はありません。

于 2011-09-29T06:44:50.073 に答える