gpt4 book ai didi

c# - 打开 Excel 后自动更新 (Excel-DNA) XLL

转载 作者:太空狗 更新时间:2023-10-29 21:17:08 25 4
gpt4 key购买 nike

我正在使用 Excel-DNA 和 C# 开发 Excel XLL 加载项。该加载项称为 MyAddIn.xll。加载项已保存到用户本地计算机,并已通过以下过程安装/添加到 Excel:

Excel 选项 --> 加载项 --> 管理 Excel 加载项 --> 然后添加 MyAddIn.xll。

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

有没有一种方法可以在用户打开 Excel 时将新的 xll 推送到用户计算机,并在他们重新启动 Excel 时让更改生效?

谢谢!

最佳答案

.xll 文件将始终被 Excel 锁定,因此您无法在加载项加载时更新该文件。您可能能够构建您的加载项,以便 .xll 不会随着更新而更改,但您使用的 .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.dna 替换为引用新 Version2 目录的新版本。

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

    然后,即使加载项正在运行,您也可以替换 MyFunctions.dll。

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

关于c# - 打开 Excel 后自动更新 (Excel-DNA) XLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com