【发布时间】:2015-09-29 21:07:23
【问题描述】:
我正在尝试从 ExcelDNA .xll 中运行 RTD 服务器。所有开发文件都在我网络上的共享驱动器上。在我开发的计算机上,服务器运行良好并按预期生成实时数据。但是,当我尝试访问 .xll 并从网络上的其他计算机运行 RTD 服务器时,我正在进行的服务器函数调用(需要下面的 RTD 调用的那些)总是将 #N/A 返回到 Excel。通过日志记录,我确定服务器永远不会启动(即永远不会调用 ServerStart),也不会调用任何 RTD 函数。
正在使用的 .xll 文件是其目录中的唯一文件。因为这是在任何计算机都可以访问的共享驱动器上,所以我真的不明白为什么这应该在主机而不是其他计算机上工作。如果相关,我不会将 .xll 复制到本地用户的 Addins 文件夹中。
据我所知,我将所有相关的 .dll 引用打包到 .xll 中。我的 .dna 文件如下:
<DnaLibrary Name="ExcelRTD Add-In" RuntimeVersion="v4.0">
<ExternalLibrary Path="W:\nate2\ExcelRTD\Build2\ExcelRTD.dll" Pack="true" ComServer="true" LoadFromBytes="true"/>
<ExternalLibrary Path="C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.6\Assemblies\v4.0\MySql.Data.dll" Pack="true" />
<ExternalLibrary Path="C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll" Pack="true" />
<ExternalLibrary Path="W:\nate2\Excel-DNA.0.32.0\tools\ExcelDna.Integration.dll" Pack="true" />
<ExternalLibrary Path="C:\Windows\assembly\GAC_MSIL\Office\14.0.0.0__71e9bce111e9429c\Office.dll" Pack="true" />
<ExternalLibrary Path="C:\Windows\assembly\GAC_MSIL\Microsoft.Vbe.Interop\14.0.0.0__71e9bce111e9429c\Microsoft.Vbe.Interop.dll" Pack="true" />
</DnaLibrary>
任何帮助将不胜感激!
【问题讨论】:
-
在 Excel-DNA Google 小组 (groups.google.com/forum/#!forum/exceldna) 上解决此类问题要容易得多。
-
您可以删除大部分 .dna 文件。您只需要前两行(只要 COM 引用标记为“Embed Interop Types=true”)。第二个条目应该是
而不是 。 -
那么第一个问题就是如果.xll文件是在本地复制而不是在网络上运行,它是否在问题机器上工作。