有谁知道是否有办法获取 C# 互操作调用加载的库的路径?
例如,如果我这样做:
[DllImport("R")]
private static extern IntPtr someFunc()
Mono(我假设是 .NET)显式地找到库所在的路径。有没有办法获得作为变量找到库的路径?(例如 /usr/bin/libR.so 或 C:\Programs\R\R.dll")
不可能。mono 库执行复杂的加载,但不会将该信息存储在任何地方以供以后编程使用。
为此,您可以使用环境变量 MONO_LOG_LEVEL 和 MONO_LOG_MASK,这样:
MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono YourProgram.exe
您可以玩关卡以获得更少的信息,但仍然足够。更多信息在这里。