使用C#在VS2010上開發Com控件給JS調用,基於NET2.0

工作中實際處理問題用到的,寫下來記錄下,怕到時候原文鏈接404了,順便幫助同樣遇到這個問題的人。

原文鏈接:https://blogs.msdn.microsoft.com/asiatech/2011/12/05/how-to-develop-and-deploy-activex-control-in-c/

想要不遇到什麼問題順利過關請先準備好VS2010開發工具,當然使用後續版本同樣能完成COM控件的開發,並且也可以正常使用,但是這篇文章並不會告訴你高於VS2010版本怎麼去做這個COM的安裝包。(以下內容爲谷歌自動翻譯結果,部分截圖是用的VS2015和VS2010差別不大。手動滑稽)

創建ActiveX控件DLL

在託管環境中,沒有OCX控件。因此,我們需要構建一個DLL控件。

1.在“ Visual Studio 2010”中,使用“ Visual C#”創建一個新的庫項目。(注意上面的框架版本可以根據你的需求自己調整,不過既然都用Com控件了肯定是針對IE瀏覽器,一般都比較老還是用2.0比較好)

2.重命名類名(這個根據你的實際情況修改就行),在類裏面引入“ System.Runtime.InteropServices”命名空間

 

3.給程序設置簽名(應該是防止瀏覽器阻止控件運行的,由於我們的用戶都會把我們網站加入信任列表,這步對我影響不大)

選中你的項目,右鍵->屬性,選中籤名選項卡,勾選爲程序集簽名,然後新建名稱密鑰文件。

4.選擇“ 工具 -> 創建GUID ”以創建新的GUID(這個GUID就是後面瀏覽器上需要用到的CLSID)

5.       添加 “ProgId”, “Guid”, “ComVisible” 到你的類上, 並且實現你的邏輯

 

using System;

using System.Runtime.InteropServices;

 

namespace DemoCSharpActiveX

{

    /// <summary>

    /// Demo HelloWorld class

    /// </summary>

    [ProgId("DemoCSharpActiveX.HelloWorld")]

    [ClassInterface(ClassInterfaceType.AutoDual)]

    [Guid("415D09B9-3C9F-43F4-BB5C-C056263EF270")]

    [ComVisible(true)]

    public class HelloWord

    {

        [ComVisible(true)]

        public String SayHello()

        {

            return "Hello World!";

        }

    }

}

6. 修改AssemblyInfo.cs文件總的ComVisible爲true,並修改GUID爲你的GUID值(這一步在我這改不改沒有區別)

 

7.編譯控件,並註冊控件

註冊命令(不同於MFC開發的OCX,此控件不能用RegSvr32註冊):
C:\Windows\Microsoft.NET\Framework\v2.0.50727>regasm /codebase <dll全路徑>

取消註冊的命令: regasm /u <dll全路徑>

8.到此dll開發可以算結束了,親測這些步驟在VS2015上也同樣可以通過。

 

包裝控件到安裝包文件中。         

公司電腦沒有VS2010,家裏電腦被老婆關機了,晚上回去再補寫。。。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章