使用 UDF 发布 C# Excel 插件
Posted
技术标签:
【中文标题】使用 UDF 发布 C# Excel 插件【英文标题】:publish C# Excel Addin with UDF 【发布时间】:2017-11-02 13:29:45 【问题描述】:我在 C# 中使用 Excel 插件,当我发布我的 C# 插件时,我的问题就出现了。
我会解释:
我使用了这个代码:http://csharpramblings.blogspot.fr/2011/09/communicating-between-vsto-and-udfs-in.html
这允许我在我的插件中使用 UDF。而且效果很好! ...在 Visual Studio 2013 中。
当我使用 Visual Studio 启动我的插件时,我会在 Excel 的“COM 插件”中看到我的插件。还有我在 Excel 中的“Excel Addins”中的 UDF。
那么如果: 我在 Visual Studio 的项目中右键单击发布我的插件。 我使用 VS 生成的 setup.exe 安装插件。 我启动 Excel => 我的插件运行良好,但我的 UDF 不起作用。单元格的值为“#NAME?”。
我检查了 COM 插件,我的插件存在。 我签入了 Excel 插件,但没有看到我的 UDF。
所以我使用 RegAsm 注册已发布 DLL 的程序集。 现在我在“Excel 插件”中看到了我的 UDF,但它仍然不起作用。
如果有人有想法可以帮助我,那就太好了!
我使用:Windows 8.1 Pro、Visual Studio Pro 2013、带有 Office365 的 Excel 2016
提前感谢您的宝贵时间。
【问题讨论】:
您是否在 Office 中注册了您的 XLAM? 您的链接似乎无效。获取消息Sorry, the page you were looking for in this blog does not exist.
我更正了链接。对不起。而且我没有 XLAM 文件。我的插件是一个 dll。
【参考方案1】:
我终于找到了解决办法!
我的错误是使用没有任何参数的 Regasm。 现在我使用带有 /codebase 参数的 Regasm,并使用强名称对我的程序集进行了签名。因为 Regasm 文档说:
在注册表中创建一个代码库条目。代码库条目指定 未安装在全局中的程序集的文件路径 程序集缓存。如果您愿意,则不应指定此选项 随后将您要注册的程序集安装到 全局程序集缓存。您指定的 assemblyFile 参数 /codebase 选项必须是强名称程序集。
来源:https://msdn.microsoft.com/fr-fr/library/tzat5yw6(v=vs.110).aspx
现在我在 Excel 中看到了我的 UDF,它们可以工作了。
【讨论】:
以上是关于使用 UDF 发布 C# Excel 插件的主要内容,如果未能解决你的问题,请参考以下文章