2009-11-24 35 views
1

我有一個C#項目組成的存儲過程引用解決方案中的另一個項目的win32 dll。目前,dllimport正在使用絕對路徑來引用它。如果我使用相對路徑,那麼一旦clr存儲過程程序集加載到sql服務器中,該路徑的相對位置是SQL CLR存儲過程 - DllImport的相對路徑?

回答

0

好的問題,因爲DLL不是物理可用的。我的猜測是它會查看主機所在的位置(例如SQL服務器二進制文件)。但我會試着用帶有測試實例的機器上的進程監視器或類似程序找出問題; SQL服務器將嘗試查找該文件,並且這應該在進程監視器日誌中可見。

也就是說,如果需要,您還可以使用系統LoadLibrary和GetProcAddress調用並將代理綁定到您使用Marshal類獲取的地址,因爲這允許您對計算出的DLL路徑執行適當的後期綁定。