打开 Excel 后自动更新 (Excel-DNA) XLL
Automatic update of (Excel-DNA) XLL with Excel opened
我正在使用 Excel-DNA 和 C# 开发 Excel XLL 插件。加载项称为 MyAddIn.xll。 Add-In已经保存到用户本地机器上,通过以下过程installed/added到Excel:
Excel 选项 --> 加载项 --> 管理 Excel 加载项 --> 然后添加 MyAddIn.xll.
我现在想向所有用户推送 MyAddIn.xll 的更新。我正在使用诸如 Salt 之类的部署工具。但是,这似乎需要在用户计算机上关闭 Excel。
有没有一种方法可以在用户计算机 Excel 打开时将新的 xll 推送到用户计算机,并在他们重新启动 Excel 时让更改生效?
谢谢!
.xll 文件将始终被 Excel 锁定,因此您无法在加载加载项时更新该文件。您可能能够构建您的加载项,以便 .xll 不会随着更新而更改,但您使用的 .dll 文件会更改。
Excel-DNA 支持两种方法:
.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.dna 替换为引用新 Version2 目录的新版本。
Excel-DNA支持在不锁定.dll的情况下加载.dll库文件。所以你可以有:
<DnaLibrary ...>
<ExternalLibrary Path="MyFunctions.dll" LoadFromBytes="true" />
</DnaLibrary>
那么即使加载项是 运行,您也可以替换 MyFunctions.dll。
在这两种情况下,您都不需要重新打开 Excel 来加载新版本,您只需文件 -> 打开 .xll 文件,它就会重新加载(或调用 xlfRegister
或 Application.RegisterXLL
来自代码)。
我正在使用 Excel-DNA 和 C# 开发 Excel XLL 插件。加载项称为 MyAddIn.xll。 Add-In已经保存到用户本地机器上,通过以下过程installed/added到Excel:
Excel 选项 --> 加载项 --> 管理 Excel 加载项 --> 然后添加 MyAddIn.xll.
我现在想向所有用户推送 MyAddIn.xll 的更新。我正在使用诸如 Salt 之类的部署工具。但是,这似乎需要在用户计算机上关闭 Excel。
有没有一种方法可以在用户计算机 Excel 打开时将新的 xll 推送到用户计算机,并在他们重新启动 Excel 时让更改生效?
谢谢!
.xll 文件将始终被 Excel 锁定,因此您无法在加载加载项时更新该文件。您可能能够构建您的加载项,以便 .xll 不会随着更新而更改,但您使用的 .dll 文件会更改。
Excel-DNA 支持两种方法:
.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.dna 替换为引用新 Version2 目录的新版本。
Excel-DNA支持在不锁定.dll的情况下加载.dll库文件。所以你可以有:
<DnaLibrary ...> <ExternalLibrary Path="MyFunctions.dll" LoadFromBytes="true" /> </DnaLibrary>
那么即使加载项是 运行,您也可以替换 MyFunctions.dll。
在这两种情况下,您都不需要重新打开 Excel 来加载新版本,您只需文件 -> 打开 .xll 文件,它就会重新加载(或调用 xlfRegister
或 Application.RegisterXLL
来自代码)。