我有一个C#项目,它包含从解决方案中的另一个项目引用win32 dll的存储过程。目前,dllimport正在使用绝对路径来引用它。如果我使用相对路径,那么一旦在sql server中加载clr存储的procs程序集,该路径相对于到的路径是什么?
答案 0 :(得分:0)
很好的问题,因为DLL在物理上不可用。我的猜测是它会查看主机所在的位置(例如SQL服务器二进制文件)。但我试着在具有测试实例的机器上找到Process Monitor或类似的东西; SQL服务器将尝试查找该文件,这应该在进程监视器日志中可见。
也就是说,您还可以使用系统LoadLibrary和GetProcAddress调用,并在必要时使用Marshal类将代理绑定到您获取的地址,因为这允许您对计算的DLL路径执行适当的后期绑定。