簡體   English   中英

打開Excel自動更新(Excel-DNA)XLL

[英]Automatic update of (Excel-DNA) XLL with Excel opened

我正在使用Excel-DNA和C#開發Excel XLL加載項。 加載項名為MyAddIn.xll。 加載項已保存到用戶本地計算機,並已通過以下過程安裝/添加到Excel:

Excel選項 - >加載項 - >管理Excel加載項 - >然后添加MyAddIn.xll。

我現在想向所有用戶推出MyAddIn.xll的更新。 我正在使用像Salt這樣的部署工具。 但是,似乎這需要在用戶計算機上關閉Excel。

有沒有辦法可以將新的xll推送到用戶機器,當他們打開Excel時,讓他們在重啟Excel時進行更改?

謝謝!

.xll文件將始終由Excel鎖定,因此在加載加載項時無法更新該文件。 您可以構建加載項,以便.xll不會隨更新而更改,但您使用的.dll文件會發生更改。

Excel-DNA支持兩種方法:

  1. .dna文件可以重定向到子目錄,並且可以在加載加載項時更新根.dna文件。 所以你可能有:

    • \\ AddInRoot \\ MyAddIn.xll
    • \\ AddInRoot \\ MyAddIn.dna
    • \\ AddInRoot \\版本1 \\ MyAddInImpl.dna
    • \\ AddInRoot \\版本1 \\ MyAddInImpl.dll
    • \\ AddInRoot \\版本2 \\ MyAddInImpl.dna
    • \\ AddInRoot \\版本2 \\ MyAddInImpl.dll

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

    加載加載項后,您可以將MyAddIn.dna替換為引用新版本2目錄的新版本。

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

    然后,即使加載項正在運行,您也可以替換MyFunctions.dll。

在這兩種情況下,您無需重新打開Excel以加載新版本,您只需文件 - >打開.xll文件即可重新加載(或從代碼中調用xlfRegisterApplication.RegisterXLL )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM