自动更新(Excel- dna) XLL与Excel打开

本文关键字:XLL Excel 打开 dna 更新 Excel- | 更新日期: 2023-09-27 17:50:11

我正在使用Excel- dna和c#开发一个Excel XLL插件。这个外接程序叫做MyAddIn.xll。Add-In已保存到用户的本地计算机,并已通过以下步骤安装/添加到Excel中:

Excel选项-> Add-Ins ->管理Excel Add-Ins ->然后添加myadd .xll.

我现在想推出一个更新的MyAddIn。给我所有的用户。我正在使用像Salt这样的部署工具。然而,这似乎需要在用户的机器上关闭Excel。

是否有一种方法,我可以推动新的xll到用户的机器,当他们有Excel打开,让改变发生,当他们重新启动Excel?

谢谢!

自动更新(Excel- dna) XLL与Excel打开

.xll文件将始终被Excel锁定,因此在加载加载项时您无法更新该文件。您可以对外接程序进行结构调整,使.dll不会随着更新而更改,但是您使用的.dll文件确实会更改。

Excel-DNA支持两种方法:
  1. .dna文件可以重定向到子目录,并且您的根。dna文件可以在加载加载程序时更新。所以你可以输入:

    • ' 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。

  2. Excel-DNA支持加载。dll库文件而不锁定。dll。所以你可以有: <DnaLibrary ...> <ExternalLibrary Path="MyFunctions.dll" LoadFromBytes="true" /> </DnaLibrary>

在这两种情况下,你不需要重新打开Excel加载新版本,你可以只是文件->打开。xll文件,它将重新加载(或调用xlfRegisterApplication.RegisterXLL从代码)。