我正在运行一个C#可执行文件,它是通过引用.Net库构建的。 .NetLibrary是C ++库的包装器,它位于另一个文件夹中(与.NetLibrary不同的文件夹)。
C ++库位于/ usr / local bin中 .Net库位于/ projects / csharp / NetWrapperProj / bin / Debug中 可执行文件位于/ projects / csharp / testharness / bin / Debug
中正如您可能已经从路径中猜到的那样,我在Linux上使用mono运行.Net(Ubuntu 10.0.4)。 mono version 2.10。
如何指定可执行文件所需的二进制文件 - 以避免未处理的异常:抛出System.IO.FileNotFoundException类型异常?
答案 0 :(得分:4)
通常,DLL /库需要与可执行文件位于同一目录中。来自Mono website:
如果未在DllMap中明确指定库位置 在应用程序或程序集.config文件中输入,Mono将搜索 几个地方的图书馆:
- 从中加载引用图像的目录。
- 在任何地方,系统的动态加载程序都配置为查看 用于共享库。例如在Linux上,这在。中指定 $ LD_LIBRARY_PATH环境变量和/etc/ld.so.conf文件。上 windows改为使用$ PATH环境变量。
您可以在Mono网站上阅读更多有关如何解决此问题的信息。