簡體   English   中英

無法使用regsvr32注冊我的DLL,但是通過IDE可以工作

[英]Unable to register my DLL using regsvr32, but via IDE works

我已經使用classlibrary創建了一個DLL,但是正在通過IDE注冊,但是無法使用regsvr32注冊。

參考如何在C#中創建ActiveX控件(COM)?

.NET程序集不是本機DLL。 您只能在支持自我注冊的本機DLL上使用regsvr32

要注冊.NET程序集,可以改用regasm 您可以在此路徑或類似路徑中找到它:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe"

但是,在安裝程序中,建議注冊COM服務器的方法是安裝所需的注冊表項,而不是使用regsvr32或regasm。 有關SelfReg表Windows Installer文檔列出了這樣做的一些原因。

Regasm.exe用於圍繞.NET程序集創建COM可調用包裝(CCW)。 .NET托管程序集(EXE,DLL)不同於COM DLL(后者是非托管的,即它們直接與OS交互)。 因此,要注冊非托管DLL,請使用regsvr32.exe。

但是,如果您具有托管的.NET程序集,並且希望COM組件像使用COM程序集一樣使用它,則需要使用regasm.exe。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM