Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在Ubuntu上的Mono ASP.NET MVC项目中使用LibGit2Sharp_Asp.net Mvc_Ubuntu_Mono_Libgit2_Libgit2sharp - Fatal编程技术网

Asp.net mvc 在Ubuntu上的Mono ASP.NET MVC项目中使用LibGit2Sharp

Asp.net mvc 在Ubuntu上的Mono ASP.NET MVC项目中使用LibGit2Sharp,asp.net-mvc,ubuntu,mono,libgit2,libgit2sharp,Asp.net Mvc,Ubuntu,Mono,Libgit2,Libgit2sharp,我已经在Ubuntu上的MonoDevelop中创建了ASP.NET MVC项目。 我使用Nuget添加了LibGit2Sharp包,但它没有为linux环境编译libgit2库。 然后我下载了源代码并进行了编译 现在我有了libgit2-06d772d.so,但是当我把它放到asp.net mvc项目的bin文件夹中时,我得到了System.DllNotFoundException git2-06d772d 注意 当我创建Console项目并将libgit2-06d772d.so放入该项目的b

我已经在Ubuntu上的MonoDevelop中创建了ASP.NET MVC项目。
我使用Nuget添加了LibGit2Sharp包,但它没有为linux环境编译libgit2库。
然后我下载了源代码并进行了编译
现在我有了libgit2-06d772d.so,但是当我把它放到asp.net mvc项目的bin文件夹中时,我得到了System.DllNotFoundException git2-06d772d

注意

当我创建Console项目并将libgit2-06d772d.so放入该项目的bin文件夹时,应用程序工作正常。

共享对象在特定文件旁边时不会加载,而是在其目录位于库加载路径时加载。操作系统设置了一些对所有程序都有效的路径,但如果您的库位于其他位置,则需要自己指定目录

使用库的目录导出
LD_LIBRARY_PATH
,库加载器将知道您希望从哪些其他路径加载库。例如,如果您使用libgit2sharp脚本构建libgit2,您可能会运行

export LD_LIBRARY_PATH=$HOME/libgit2sharp/libgit2/build
在控制台中,让操作系统知道从该shell启动的任何程序都可以找到libgit2


基于mono的应用程序通常会提供一个脚本供用户运行,该脚本在调用mono启动程序的实际
.exe
之前设置环境。

谢谢您的回答,但它没有帮助。如果它在基于mono的应用程序中很常见,那么为什么在创建控制台应用程序时它工作得很好呢?这在unix系统上的每个应用程序中都很常见
/usr/lib
是标准加载路径的一部分,因此将其放在那里将使每个程序都能够找到它。