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