2010-08-04 33 views
2

我正在寫一個ActiveX控件在Internet Explorer中運行。我正在使用C#和System.Runtime.InteropServices命名空間。爲什麼我的.NET ActiveX控件無法在Internet Explorer中註冊?

當我在我的開發機器上使用regasm手動註冊控件時,控件起作用,我可以使用Javascript的new ActiveXObject(..)功能調用它。

但是,爲了生產,我想用<OBJECT>標籤將對象嵌入到我的頁面中,這就是我遇到問題的地方。

該ActiveX DLL未能註冊,當我檢查的ActiveX登記錯誤消息(使用代碼下載錯誤日誌查看器),我看到以下內容:

OCX報名方式:在沒有中的DllRegisterServer入口點(路徑到我的control.dll)。跳過註冊。

任何人都可以幫助我得到這個底部?我的C#代碼是否需要執行DllRegisterServer操作的方法? .NET中開發的ActiveX控件能以這種方式使用嗎?

非常感謝。

+2

我認爲,通過RegSrv32(或一些等效的API調用)的註冊嘗試的消息「OCX註冊:沒有DllRegisterServer入口點」字體。在使用頁面上的控件之前,您需要一些regasm-call。 – 2010-08-04 18:57:37

+0

好的......是否有可能讓IE調用Regasm來註冊程序集而不是RegSrv32? – 2010-08-04 19:11:35

回答

0

如果「生產」是指公共Internet,並且希望頁面自動下載並註冊ActiveX控件,則需要按照this answer中的說明進行一些特殊打包,以解決「如何部署一個來自VS2008項目的ActiveX控件?「

但是,如果您的生產環境是Intranet,則可以使用regasm.exe註冊您的程序集,然後使用gacutil.exe將其安裝到GAC中(如文章中所述)。

相關問題