錯誤現象
在 Visual Studio 2010 專案右鍵「加入參考」選擇 DLL 時,提示無法加入、或 DLL 不含有效組件。
原因
部分傳統 COM 元件 (ActiveX、VB6 DLL) 需先在系統登錄才能被 .NET 專案參考 (透過 Interop 組件)。
解決步驟
- 以**系統管理員身分**開啟「命令提示字元」。
- 執行註冊指令:
regsvr32.exe "DLL完整路徑"
例如:`regsvr32.exe "C:\MyLib\LegacyCom.dll"`
- 出現「DllRegisterServer 成功」對話框即完成。
- 返回 VS2010 重新「加入參考」→「COM」分頁,即可找到並勾選該元件。
補充說明
- 32 位元 DLL 在 64 位元 OS 需用 `C:\Windows\SysWOW64\regsvr32.exe`;64 位元 DLL 用 `C:\Windows\System32\regsvr32.exe`。
- 若為純 .NET Assembly (Managed DLL),**不需** `regsvr32`,直接「瀏覽」加入參考即可。
- 註冊失敗常見原因:權限不足、DLL 相依檔案缺失、DLL 損壞、架構不匹配 (x86/x64)。