Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 故障排除Pdm加载项:在注册表中找不到类ID_C#_Add In_Solidworks - Fatal编程技术网

C# 故障排除Pdm加载项:在注册表中找不到类ID

C# 故障排除Pdm加载项:在注册表中找不到类ID,c#,add-in,solidworks,C#,Add In,Solidworks,尝试创建Solidworks PDM附加模块,从Epicor ERP系统检索信息,并将其添加到PDM数据卡中的vars 从Epicor erp系统检索信息。我已经添加了必要的.dll引用,并将copy local设置为true 当作为调试外接程序加载时,它可以正常工作,但当作为实时外接程序加载时,它会出现此错误。 从DLL“Epicor.Mfg.BO.SysConfig.DLL”创建外接程序COM对象时出错 原因:加载项注册成功,但在注册表中找不到加载项的类ID。“ 如果每个用户的机器上都有Ep

尝试创建Solidworks PDM附加模块,从Epicor ERP系统检索信息,并将其添加到PDM数据卡中的vars

从Epicor erp系统检索信息。我已经添加了必要的.dll引用,并将copy local设置为true

当作为调试外接程序加载时,它可以正常工作,但当作为实时外接程序加载时,它会出现此错误。 从DLL“Epicor.Mfg.BO.SysConfig.DLL”创建外接程序COM对象时出错 原因:加载项注册成功,但在注册表中找不到加载项的类ID。“

如果每个用户的机器上都有Epicor软件。使用regasm.exe注册.dll是否可能导致问题?是否必须在每个可以使用外接程序的机器上执行此操作

有什么建议吗?
谢谢。

您是否已将组件设置为可见

在AssemblyInfo.cs中:

[assembly: ComVisible(true)]

您使用的库与SOLIDWORKS PDM不兼容(我不确定确切的原因,但一些库在注册时导致冲突)。例如,您可能正在项目中使用System.Threading.Tasks.Extensions.dll。请看
文章了解更多信息

你看过这篇文章了吗:是的,据我所知,它不适用。谢谢。您是否将发布程序集注册为64位?我想您使用的是64位SolidWorks。我们使用的是64位软件。解决方案平台是“任意CPU”,首选32位未选中。谢谢。您需要运行64位RegAsm.exe才能注册程序集。请参考此命令作为示例。c:\windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe“file.dll”/tlb/codebase/verbose您的目标是什么.NET framework?不要使用[assembly:ComVisible(true)],因为PDM会尝试实例化dll中的所有类,以查看它是否是外接程序,并可能遇到错误的外接程序,而只是将[ComVisible]属性放在外接程序类上。我还建议显式地将Guid属性分配给类。检查本文:最初,assembly ComVisible属性设置为“false”。在Andrews回复后,我将其改为“true”,以测试结果。这产生了相同的错误结果。在类名之前是否有[Guid(“某些Guid”)]和[ComVisible(true)]?您的目标.NET Framework版本是什么?如果高于4.0,则将EdmLib的“嵌入互操作类型”选项设置为False。您使用的是interop(来自.NET选项卡)还是tlb from COM选项卡?您应该使用“来自.NET”选项卡。