VS2008没有获得重新编译组件的正确参考

时间:2011-02-15 15:17:48

标签: c# com strongname rms

我的客户是一家零售商,它使用Microsoft Dynamics RMS作为他们的前端,而Sage的Simply Accounting 2010作为他们的会计软件包。我正在尝试自动化从RMS到SA转录销售数据等的一些流程。

RMS使用COM与Addins进行交互,因此我的程序集名称很强(就此而言,RMS的程序集也是如此)。然而,SA的装配并没有很强的命名,而且我一直在试着强力命名SA的组件,而是一直在撞墙。

所以:我现在正在使用ildasm和ilasm,而且它似乎工作了一秒钟,我需要的组件是强名。主程序集Sage_SA.SDK.dll引用Sage_SA.Domain.dll和Sage_SA.Domain.Utility.dll。当我将所有这三个新的强命名程序集添加到我的VS2008解决方案中并尝试编译时,Sage_SA.SDK.dll似乎无法正确识别其他2个程序集。具体来说,VS2008中的错误消息说:“XXX”类型是在未引用的程序集中定义的。您必须添加对程序集“XXX”的引用。

如果我能提供任何其他信息,请告诉我。

谢谢,

莱斯特

1 个答案:

答案 0 :(得分:0)

不要试图逆流而行。通过两个步骤进行集成:1)签名的程序集相互通信;然后2)使用一些代理或额外的EXE在无符号程序集之间进行交谈。

我会创建两个可执行文件(有符号和无符号),或者一个可执行文件和一个Windows服务(或者其他任何对你来说都很舒服和可行的东西)。然后让他们以某种方式相互交谈(命名管道,TCPIP等)来传输数据。