RTD服务器无法启动ExcelDNA加载项

时间:2015-08-12 14:45:44

标签: vb.net excel excel-dna

我正在尝试从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>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您是否看过流程的权限/权限级别?使用提升权限运行的进程以不同方式访问注册表,这可能会阻止基于Excel-DNA的插件工作。例如,运行在c:\ Program Files下安装的二进制文件需要提升的权限。但是,具有提升权限的进程无法访问HKEY_CURRENT_USER下的每个用户设置,而是转到HKEY_LOCAL_MACHINE。这是为了防止漏洞利用。 Excel-DNA将其自动注册表项置于HKEY_CURRENT_USER下以进行RTD注册。请参阅ExcelRtd.cs。因此,要使用基于Excel-DNA的RTD服务器的插件,必须安装 在c:\ Program Files之外,无需提升权限即可运行。

Component creation fails under UAC admin, works without UAC elevation

https://msdn.microsoft.com/en-us/library/bb756926.aspx