[英]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支持兩種方法:
.dna文件可以重定向到子目錄,並且可以在加載加載項時更新根.dna文件。 所以你可能有:
在MyAddIn.dna中你有<DnaLibrary ...> <ExternalLibrary Path="Version1\\MyAddInImpl.dna" /> </DnaLibrary>
加載加載項后,您可以將MyAddIn.dna替換為引用新版本2目錄的新版本。
Excel-DNA支持加載.dll庫文件而不鎖定.dll。 所以你可以: <DnaLibrary ...> <ExternalLibrary Path="MyFunctions.dll" LoadFromBytes="true" /> </DnaLibrary>
然后,即使加載項正在運行,您也可以替換MyFunctions.dll。
在這兩種情況下,您無需重新打開Excel以加載新版本,您只需文件 - >打開.xll文件即可重新加載(或從代碼中調用xlfRegister
或Application.RegisterXLL
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.