我试图将RTD服务器嵌入到预先存在的C#应用程序中。 Microsoft文档声明" RTD服务器可以作为ActiveX DLL存在,或作为在同一本地计算机上运行的.exe 或在远程服务器上。 "所以我相信这是可能的。
我的RTD服务器运行正常,当我从excel引用它时,我在计时器上获得了预期的值更新。
但是,如果我运行控制台应用程序(期望使用嵌入式RTD服务器),Excel似乎忽略它,并实例化它自己的RTD服务器的进程内实例。
我已经使用RegAsm注册了exe(当然服务器类是COM可见的)。我缺少一些配置吗?我发现这个领域的MS文档有点缺乏......
以下链接都是相关的: ExcelRTDServerinCS client-other-than-excel MyRTDEXE
答案 0 :(得分:2)
没有指定服务器的RTD公式将始终实例化它自己的dll实例,似乎它只能在“远程模式”下使用.exe而不是.dll。
我建议您尝试在RTD公式的server参数中指定本地计算机(因此它适用于可执行文件)。
(另外,请确保从原始RTD dll中删除progid注册(如果存在)。