我尝试运行COM.Scanner项目,但遇到以下异常:
检索具有 CLSID {9F8D4F16-0F61-4A38-98B3-1F6F80F11C87} 的组件的 COM 类工厂失败,原因是以下错误:80040154 类未注册 (来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))。
像 Interop.CoreScanner
一样,这是一个 .NET 程序集,我使用 regasm
注册 COM 对象,但仍然出现错误。
我阅读了这篇好的帖子,但没有任何答案解决了问题。
这是Corflags的信息:
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.6.81.0
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 0x1
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 0
生成的
.reg
文件使用 regasm
和 /regfile
选项,内容如下:REGEDIT4
[HKEY_CLASSES_ROOT\CLSID\{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}\InprocServer32]
"Class"="CoreScanner.CCoreScannerClass"
"Assembly"="Interop.CoreScanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///D:/Github/miscelaneas/COM.Scanner/libs/Interop.CoreScanner.dll"
[HKEY_CLASSES_ROOT\CLSID\{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}\InprocServer32\1.0.0.0]
"Class"="CoreScanner.CCoreScannerClass"
"Assembly"="Interop.CoreScanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v2.0.50727"
"CodeBase"="file:///D:/Github/miscelaneas/COM.Scanner/libs/Interop.CoreScanner.dll"
环境:
- 操作系统:Windows 10(x64)
- Visual Studio 2015
问题
- 这似乎是注册表中缺少条目,但我不知道是哪些。
- 如果我走对了路,为什么
regasm
不能生成缺失的注册表项?