2009-06-11 17 views
0

私は名前空間が含まれているC#コンソールアプリケーションを作成しているSystem追加のアセンブリを参照するコマンドプロンプトからC#DLLをコンパイルする方法はありますか?

System.Dataまた、私はMicrosoft.SqlServer.Smoを追加しました。

私はコマンドプロンプトからコンパイルしようとすると、それはようなエラーが表示されます。

SqlSmoDiscovery.cs(3,27):エラー CS0234:型または名前空間名 「管理」 が存在しません。 SqlSmoDiscovery.cs(4,27):エラー CS0234:型または名前空間の名前 '管理' 名前空間に存在しません 'Microsoft .SqlServer '( がありません。 アセンブリリファレンス?)

ただし、Visual Studioからコンパイルされます。

コマンドプロンプトからコンパイルして、純粋なC#dllとして出力しています。グラムで

マイプロジェクト:

その後、私はGに移動します。

SqlSmoDiscovery.csライブラリ/ R Micrsoft.SqlServer.Smo.Dllが、それはようerroeを示しています> CSC /対象:\ SqlDiscを

エラーCS0006:メタデータファイルには、「Microsoft.SqlServer.Smo.dll」

答えて

8

は、コマンドラインから追加のアセンブリを参照する/rフラグを使用して見つけることができませんでした。

csc /target:library /r:OtherAssembly.dll Foo.cs 
+0

前に同じフォルダにアセンブリを挿入する – Cute

+2

コンパイル時に同じフォルダにアセンブリを配置する必要はありません。アセンブリをフルパスで参照できます。実行時に、アセンブリはアクセス可能である必要があります。一般的には、ローカルディレクトリまたはGACのいずれかです。 GACのアセンブリを参照すると、csc.exeコマンドでc:¥Windows¥assembly¥GAC¥DataGridEx¥1.0.1.0__852e0362e1c80f34¥DataGridEx.dllのように指定できます。実行時に、GACのアセンブリはどこにでもコピーされることなく、きちんと読み込まれます。 – Cheeso