首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开Excel自动更新(Excel) XLL

打开Excel自动更新(Excel) XLL
EN

Stack Overflow用户
提问于 2015-05-21 10:21:37
回答 1查看 3.9K关注 0票数 8

我正在开发一个使用Excel和C#的Excel外接程序.外接程序称为MyAddIn.xll。外接程序已保存到用户本地计算机,并已通过以下过程安装/添加到Excel中:

Excel选项->外接程序->管理Excel外接程序->然后添加MyAddIn.xll。

现在,我想向我的所有用户推出MyAddIn.xll的更新。我正在使用一个部署工具,如盐类。但是,这似乎需要关闭用户计算机上的Excel。

有什么方法可以在用户打开Excel时将新的xll推送给他们,并让他们在重新启动Excel时进行更改?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 15:07:20

.xll文件将始终被Excel锁定,因此在加载外接程序时无法更新该文件。您可能可以构造您的外接程序,以便.xll不会随更新而更改,但是您使用的.dll文件会发生更改。

有两种Excel支持的方法可以做到这一点:

  1. .dna文件可以重定向到子目录,在加载外接程序时可以更新根.dna文件。所以你可能会:
代码语言:javascript
复制
- \AddInRoot\MyAddIn.xll
- \AddInRoot\MyAddIn.dna
- \AddInRoot\Version1\MyAddInImpl.dna
- \AddInRoot\Version1\MyAddInImpl.dll
- \AddInRoot\Version2\MyAddInImpl.dna
- \AddInRoot\Version2\MyAddInImpl.dll

在MyAddIn.dna中,你有<DnaLibrary ...> <ExternalLibrary Path="Version1\MyAddInImpl.dna" /> </DnaLibrary>

加载外接程序时,可以将MyAddIn.dna替换为引用新Version2目录的新版本。

  1. Excel支持加载.dll库文件而不锁定.dll。所以你可以拥有:<DnaLibrary ...> <ExternalLibrary Path="MyFunctions.dll" LoadFromBytes="true" /> </DnaLibrary> 然后,即使在外接程序运行时,您也可以替换MyFunctions.dll。

在这两种情况下,您不需要重新打开Excel来加载新版本,只需文件->打开.xll文件,它就会重新加载(或者从代码中调用xlfRegisterApplication.RegisterXLL )。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30370965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档