2011-08-02 5 views
2

.Netライブラリへの参照で構築されたC#実行ファイルを実行しています。 .NetLibraryはC++ライブラリのラッパーで、別のフォルダ(.NetLibraryとは別のフォルダ)にあります。コマンドラインから実行可能なC#を実行し、必要なライブラリへのパスを指定してください

C++ライブラリは、/ usr/binにローカル にされている.NETライブラリです/プロジェクト/ CSHARP/NetWrapperProj/binに/デバッグ 実行可能である中/プロジェクト/ CSHARP/testharness/binに/デバッグ

であなたはパスから推測しているかもしれませんが、私はLinuxでモノを使って.Netを実行しています(Ubuntu 10.0.4)。 monoバージョン2.10。

実行可能ファイルに必要なバイナリを指定する方法 - 未処理の例外を回避する方法:System.IO.FileNotFoundException型の例外がスローされていますか?

+0

なぜあなたは '/ usr/local/bin'にライブラリを持っていますか?これはローダーが探す場所ではありません。 '$ LD_LIBRARY_PATH'のどこかに入れてください。 – skolima

答えて

4

通常、DLL /ライブラリは実行可能ファイルと同じディレクトリにある必要があります。

ライブラリの場所を明示的にアプリケーションまたはアセンブリ.configファイル内DllMap エントリに指定されていない場合は、モノがいくつかの場所で のためのライブラリを検索します:Mono websiteから

  • 参照イメージがロードされたディレクトリ。
  • システムのダイナミックローダーは、共有ライブラリの場合は となるように設定されています。たとえばLinuxでは、これは $ LD_LIBRARY_PATH環境変数と/etc/ld.so.confファイルで指定されています。 ウィンドウでは、代わりに$ PATH環境変数が使用されます。

あなたはこの問題を解決する方法についてはモノラルのウェブサイトで詳細を読むことができます。

関連する問題