2012-04-19 32 views
0

我有一個COM可見的dll「COMInterface.dll」,它被部署到現有的應用程序的文件夾中。我創建了一個測試工具,驗證了此dll的功能。經典的asp如何訪問由COM-Visible類引用的.NET dll?

但是,當我嘗試使用傳統的ASP來調用這個DLL的方法之一,我得到像下面這樣的消息:

MyCompany.MyProject.COMInterface(0x80070002) 無法加載文件或程序集「 MyCompany.Framework,Version = 2.6.4202.14897,> Culture = neutral,PublicKeyToken = null'或其依賴項之一。該系統找不到指定的文件。

我的「COMInterface.dll」引用了許多其他dll,例如我公司的標準框架,日誌記錄類等。「框架」就是其中一個這樣的dll。

asp頁面將在哪裏尋找這些DLL?我猜測我的線束工作,因爲它是從程序文件夾運行,而asp頁面是在IIS網站。

我需要在這裏使用GAC註冊嗎?我希望不會有那麼多需要在那裏部署的dll,我希望擴展應用程序,而不必影響用戶機器上的核心安裝。

在此先感謝您的問題和建議。

[編輯] 我應該指出,該對象可以創建好。這是導致問題的引用dll的位置。

回答

1

當您使用Regasm來註冊dll時,您需要使用/Codebase開關來確保可以找到dll。

+0

謝謝,我會檢查一下。你知道嗎,如果這可以通過VS(2008)IDE完成的話,那麼你知道嗎? – Ste 2012-04-20 07:49:18

+0

謝謝,安東尼。即使我沒有完全解決我的問題,我仍然接受這個答案。我敢肯定,這將最終排序的問題,但我有問題引用DLL沒有強命名! – Ste 2012-04-20 13:37:51

1

作爲一般答案,您可以使用Fusion Log Viewer來確定程序集活頁夾搜索的路徑。

有關此工具的信息,請參閱http://msdn.microsoft.com/en-us/library/e74a18c4.aspx

Fusion Log Viewer將列出活頁夾探測到的所有路徑。如果你把你的程序集放到任何這些路徑中,它都會被找到。對於你的情況,這些路徑中的任何一條將是合適的我不太確定。

+0

謝謝,RB。我現在就來看看。 – Ste 2012-04-19 13:40:43