使用C# 开发中的 Shared Add In 技术开发 Excel Add In。在插件初始化时,载入自定义公式 .xll文件,但是在以下代码在Office 2010 版本是好用的,但是在 Office 2013及以上版本会抛出该方法无效的异常。
AddIn udfAddIn = applicationObject.AddIns.Add(progID, true);
udfAddIn.Installed = load;
异常会在第一句话抛出。求大神。。。。
如果还是解决不了,建议提供一下异常堆栈
谢谢,我就是按照这个博客开发的。上面的方法在 office 2010 上运行时没有问题的,但是在 office 2013与2016 下面的代码会抛出那个异常。
AddIn udfAddIn = applicationObject.AddIns.Add(progID, true);
@Alvin_Hi: 完整的异常信息是什么?
@dudu: 异常信息:addin类的add方法无效
@Alvin_Hi: 关键是异常堆栈信息
@Alvin_Hi: 或者提供示例代码,我这边测试一下
@dudu: 稍等一下,我把代码提取出来
@dudu: 借用您发给我的博客 浅谈Excel开发:四 http://files.cnblogs.com/yangecnu/YYUDF.rar
其中运行 YYSharedAddin 这个项目。在 137行就会抛异常。在2010 正常加载。
顺便问一下,测试Office的不同版本,除了用多个机器外,还有没有什么办法?
@Alvin_Hi: 可以使用虚拟机,比如vmware
@Alvin_Hi: 稍等一下,今天晚上我会把这个问题解决
@dudu: 麻烦您了,在网上找了好多资料,找不到解决方案。。我就是想无论是在office那个版本上,通过 shared Add in 这种办法开发的插件,加载 excel-dna开发的自定义公式。也就是.xll文件。
@dudu: 正在用的就是这种办法,但是 虚拟机开两个,计算机8G内存就爆掉了。哈哈
@Alvin_Hi: 可以限制虚拟机的内存,或者使用阿里云或腾讯云的按量计费的云服务器
@dudu:好的,不错的建议
@Alvin_Hi: 异常是在安装插件时出现的吗?
@dudu: 异常是在运行插件时,加载.xll文件发生的。安装过程不会出现异常
@Alvin_Hi: 怎么运行插件?我已经安装好插件了,想重现这个问题
@dudu:
@Alvin_Hi: F5运行起来了,然后呢?之前我是直接在Excel中添加编译好的插件
@dudu:
在这里加断点。就是这里抛出的异常
@Alvin_Hi:
我在Excel 2016中手动安装插件是可以正常运行的
@dudu: 手动添加没问题,就是用程序走到哪一步的时候会抛异常的。你那里没有异常抛出吗?
@dudu: 程序中有两种,一种是.xla ,一种是.xll
我这里是加载.xll出现的异常
@Alvin_Hi: 你手动在Excel中安装插件也会出现这个异常吗?
@dudu: 我就是直接F5运行时,在catch中捕获到的,加载的.xll文件不需要手动添加,你手动添加,是因为程序加载的.xla文件。
@dudu: 很晚了,耽误您这么长时间,您早点休息。明天咱们继续。
@Alvin_Hi: 我这边按F5也能正常运行,你是不是把项目放在中文目录下的?
@Alvin_Hi: 另外有个地方需要注意,要在 YYSharedAddin 项目中添加对 YYWeatherUDFExcelDNA 项目的引用,不然在 build 时会缺少 YYWeatherUDFExcelDNA.dll ,也许问题与这个有关。
@dudu: 谢谢您的耐心,我明天看看,有问题。我再联系您。再次感谢
@dudu: 这个文件是不需要引用的,因为Excel-DNA中的所有dll均生成在.xll文件中。
@Alvin_Hi: 我在 Excel 中手动添加 YYWeather-packed.xll ,如果缺少 YYWeatherUDFExcelDNA.dll 会报错