我有一个.Net Core应用程序,可以在Ubuntu上运行。有了它,我希望分发2个.so文件,该文件取决于应用程序。该应用程序将通过[DllImport("mylibrary")]
属性加载这些库。
如果我尝试按原样运行我的应用程序,它将抱怨找不到mylibrary
。这是因为搜索路径中不存在该库。如果我通过apt-get而不是分发来安装库,则一切正常(库最终以/usr/lib/x86_64-linux-gnu/
结尾,这是我搜索库的一部分)。
这不是一个非常可扩展的解决方案。我想要的是在运行dotnet myapplication.dll
时可以“运行”的东西,而不必通过apt-get(或其他方式)预安装我的.so文件。
如何在运行应用程序之前使库加载器与本地.so文件一起使用而无需最终用户采取任何额外措施?
让.Net Core应用程序在启动时运行一些安装/ bash命令来设置环境的想法听起来很不错,只是需要sudo
。这不是交易杀手,但也不是很干净。
有什么想法吗?