ComErrorException 'Class Not Registered'
ComErrorException 'Class Not Registered'
我正在尝试编写一个从 SQLServer Replication dll 调用对象的集成(单元)测试。
当它试图实例化对象时 MergeSynchronizationAgent
我得到一个异常:
'{Class Not Registered}'
-2147221164
我尝试将平台切换到 x86,但没有成功。
确切的 dll 是 Microsoft.SQLServer.Replication.dll
。
非常感谢任何帮助!
首先要做的是确保对象已注册 -- ProgId 和 CLSID 在注册表中。转到 HKEY_CLASSES_ROOT 并搜索对象的 ProgId(如果您知道)。如果您不知道,如果是 64 位 DLL,请在 HKEY_CLASSES_ROOT\CLSID 中搜索 CLSID;如果 DLL 是 32 位 DLL,请在 HKEY_CLASSES_ROOT\Wow6432Node\CLSID 中搜索。您的进程需要与要通过 COM 加载的 DLL 具有相同的位数。
在尝试创建对象之前,您是否调用了 CoInitialize() 或 OleInitialize()? (如果从 .NET 调用,则不必调用它)
我正在尝试编写一个从 SQLServer Replication dll 调用对象的集成(单元)测试。
当它试图实例化对象时 MergeSynchronizationAgent
我得到一个异常:
'{Class Not Registered}'
-2147221164
我尝试将平台切换到 x86,但没有成功。
确切的 dll 是 Microsoft.SQLServer.Replication.dll
。
非常感谢任何帮助!
首先要做的是确保对象已注册 -- ProgId 和 CLSID 在注册表中。转到 HKEY_CLASSES_ROOT 并搜索对象的 ProgId(如果您知道)。如果您不知道,如果是 64 位 DLL,请在 HKEY_CLASSES_ROOT\CLSID 中搜索 CLSID;如果 DLL 是 32 位 DLL,请在 HKEY_CLASSES_ROOT\Wow6432Node\CLSID 中搜索。您的进程需要与要通过 COM 加载的 DLL 具有相同的位数。
在尝试创建对象之前,您是否调用了 CoInitialize() 或 OleInitialize()? (如果从 .NET 调用,则不必调用它)