2011-08-02 25 views
2

我正在運行一個C#可執行文件,該文件是使用對.Net庫的引用構建的。 .NetLibrary是一個C++庫的包裝,位於另一個文件夾(與.NetLibrary分開的文件夾)中。從命令行運行C#可執行文件並指定所需庫的路徑

的C++庫是在/ usr /本地bin 在.NET庫是在/項目/ CSHARP/NetWrapperProj/bin中/調試 的可執行文件是在/項目/ CSHARP/testharness/bin中/調試

正如您可能已經從路徑中猜到的那樣,我正在Linux上運行使用mono的.Net(Ubuntu 10.0.4)。 單聲道版本2.10。

如何指定可執行文件所需的二進制文件 - 避免未處理的異常:拋出System.IO.FileNotFoundException類型的異常?

+0

爲什麼你在'/ usr/local/bin'中有一個庫?這不是加載程序會尋找它的地方。把它放在'$ LD_LIBRARY_PATH'裏面。 – skolima

回答

4

通常,DLLs/Libraries需要與可執行文件位於同一目錄中。從Mono website

如果庫的位置還沒有明確的應用程序或組件config文件一DllMap 項規定,單將搜索 在少數地方庫:

  • 引用圖像從其中加載的目錄。
  • 在任何地方,系統的動態加載器都被配置爲查看共享庫的 。例如,在Linux上,這在 $ LD_LIBRARY_PATH環境變量和/etc/ld.so.conf文件中指定。替代地,在 窗口中使用$ PATH環境變量。

你可以閱讀更多的關於如何解決此問題的單網站。

相關問題