我正在为2009年在axapta女士中使用的.net activeX而奋斗。
在编译它的本地机器上使用这个组件,它运行得很好。它可以作为activeX元素添加到表单上,方法和事件列在axapta-activeX-explorer中,我可以与它进行交互,而不会出现任何问题。
但是,试图将dll分发给其他客户端并不符合预期。通过regasm /codebase /tlb注册dll工作正常-获得消息,注册成功。在选择要添加ax的activeX元素时,也列出了组件,但既没有列出函数,也没有列出属性。并且启动表单会导致错误消息- activeX组件CLSID .在系统上找不到,也没有安装。classID确实是在.net中定义的。
奇怪的事情发生了,看看任务经理。activeX组件本身只是一个与com应用程序交互的包装器.当用不工作和_not_installed_启动ax表单时!taskmanager显示了com-应用程序的一个新进程,该进程由activeX :/
我试过的事情:
使用不同版本的
出于这样的希望,在visual中进行编译,启用了注册COM-Interop选项,不仅仅是注册注册,我还使用了注册表监视器-microsoft-工具来记录编译过程中发生的注册表活动。
此外,使用这些日志在目标客户机上创建所有注册表项也不起作用。
任何提示或帮助都将不胜感激!这东西挡住我好几天了:
发布于 2010-06-08 07:55:02
有关COM集成的概述,请参阅以下内容:
http://msdn.microsoft.com/en-us/library/aa591337.aspx
有关.Net集成的概述,请参阅以下内容:
http://msdn.microsoft.com/en-us/library/aa659581.aspx
发布于 2010-06-01 13:29:57
我想要与之交互的“目标”-application是一个具有COM-功能的独立执行程序。如我所知,COM在AX 2009中不受(或不会)支持,因此应该使用.net。如果我正确地理解了你的答案,那就是另一轮了!dll只是作为一个包装器来访问上述应用程序。regsvr32不使用dll,因为必须使用regasm注册。我还在AOT中添加了一个引用--没有更改。奇怪的是--它已经起作用了,而且还在我的本地开发系统上工作。但不是在其他系统上。
发布于 2010-07-01 08:41:22
问题解决了。一切都是正确的-只有误导的东西是错误消息,启动一个表单添加了activeX组件,告诉“组件在系统上找不到.”
在activeX代码中,这是一个完全不同的错误:解析带有一个特殊字符的xml文档,并且没有在xml文件中定义正确的iso编码,就引发了一个没有捕获的错误。这个(!)引发了所有进一步的问题和最初的文章中提到的崩溃错误:/
不管怎样,谢谢你的帮助。
https://stackoverflow.com/questions/2948338
复制相似问题