2012-03-02 87 views
0

我有一個引用dll的wcf服務。只有它的工作方式是將dll放在%windir%/ system32文件夾中。iis7託管wcf服務:避免將dll放在system32文件夾

事情我已經試過

  • 試圖之間切換IIS表達,開發服務器和IIS(但是這是不相關)
  • 放置DLL bin文件夾和/或其他應用程序文件夾
  • 試圖使用「regsvr32」實用程序,但該DLL不是一個COM DLL,所以它不工作(無ddl入口點)
  • 它不是一個.NET DLL,所以我不認爲GAC可以操縱與t合作他
  • 與系統路徑變量發揮沒有任何成功

其實我是想
一個更簡單的方法來訪問的dll,所以我不必放在SYSTEM32的DLL,但包含它的什麼應用程序文件夾並從那裏訪問它。

我在想什麼?


編輯: 我發現this後趣味性和類似,但同樣,它也採用了SYSTEM32方法,是不是要走的路。

回答

1

如果這是一個Win32本地庫,你可以從已知位置「預加載」,它使用pinvoked LoadLibrary通過你的庫的完整路徑作爲參數,在處理管線中較早的地方。

當調用由DllImport裝飾的庫中的任何方法時,運行時將嘗試加載庫(因爲無法找到dll,因此會下載),但是由於您預裝了加載器,加載將會成功(加載程序會檢查庫文件名,不關注庫加載的目錄)。

+0

不,它不是一個本地庫,否則我不需要將它放在system32中,它已經在那裏 – arkoak 2012-03-02 10:15:00

+1

對我來說,「本地」意味着不是.NET而不是COM。 – 2012-03-02 12:21:57

+0

好吧,我需要檢查如何使用LoadLibrary – arkoak 2012-03-02 17:04:53