C# 打开Excel时自动更新(Excel DNA)XLL
我正在使用Excel DNA和C#开发一个Excel XLL外接程序。外接程序名为MyAddIn.xll。外接程序已保存到用户本地计算机,并已通过以下过程安装/添加到Excel: Excel选项-->加载项-->管理Excel加载项-->然后添加MyAddIn.xll 我现在想向所有用户推出MyAddIn.xll的更新。我正在使用一个部署工具,比如Salt。然而,这似乎需要在用户计算机上关闭Excel 有没有一种方法可以在用户打开Excel时将新的xll推送到他们的计算机上,并在他们重新启动Excel时进行更改C# 打开Excel时自动更新(Excel DNA)XLL,c#,deployment,updates,excel-dna,xll,C#,Deployment,Updates,Excel Dna,Xll,我正在使用Excel DNA和C#开发一个Excel XLL外接程序。外接程序名为MyAddIn.xll。外接程序已保存到用户本地计算机,并已通过以下过程安装/添加到Excel: Excel选项-->加载项-->管理Excel加载项-->然后添加MyAddIn.xll 我现在想向所有用户推出MyAddIn.xll的更新。我正在使用一个部署工具,比如Salt。然而,这似乎需要在用户计算机上关闭Excel 有没有一种方法可以在用户打开Excel时将新的xll推送到他们的计算机上,并在他们重新启动Ex
谢谢 Excel将始终锁定.xll文件,因此加载加载项时无法更新该文件。您可以对外接程序进行结构化,以便.xll不会随更新而更改,但您使用的.dll文件会更改 Excel DNA支持两种方法:
- \AddInRoot\MyAddIn.xll
- \AddInRoot\MyAddIn.dna
- \AddInRoot\Version1\MyAddInImpl.dna
- \AddInRoot\Version1\MyAddInImpl.dll
- \AddInRoot\Version2\MyAddInImpl.dna
- \AddInRoot\Version2\MyAddInImpl.dll
加载加载项时,可以使用引用新版本2目录的新版本替换MyAddIn.dna
这样,即使外接程序正在运行,您也可以替换MyFunctions.dll在这两种情况下,您都不需要重新打开Excel来加载新版本,只需文件->打开.xll文件,它就会重新加载(或者从代码中调用
xlfRegister
或Application.RegisterXLL
)您好,我刚刚尝试了上面的解决方案2。它适用于MyAddIn.dll,这是一个C#项目,所有Excel函数都在该项目中公开(dna文件位于该项目中)。但是,它不适用于此项目引用的其他dll(例如ExcelDna.Integration)。啊,是的-我忘记了这个选项。输出目录中永远不需要ExcelDna.Integration.dll,这可能会造成一些伤害。右边的已打包在.xll文件中。只需在项目中将对ExcelDna.Integration的引用设置为“Copy Local=false”。