Outlook Addin 自定义菜单无法删除

本文探讨了Outlook插件卸载后自定义菜单未删除的问题,并介绍了如何通过调整插件代码中的Temporary参数来控制菜单的生命周期。此外,还提供了一种简单方法,即删除Outlook配置文件夹的内容,以确保卸载插件后自定义菜单也被移除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天有人问到其Outlook Addin卸载后,自定义的菜单没有被删除,出于好奇就花时间看了下,原以为是插件没有被卸载,经过查看代码发现,在添加自定义菜单时有这样


CommandBarControls.Add方法的最后一个参数Temporary 导致的,当Temporary 为TRUE时,在插件退出后自定义的菜单也会被删除,当Temporary 为FALSE时及时卸载掉插件自定义菜单会依然存在。

据说解决该问题的方法有很多种,为了方便我就找到了一个简单方法,通过删除当前用户目录下的Outlook配置,再次打开Outlook就会删除自定义菜单。

Win 7:~user\AppData\Local\Microsoft\Outlook

xp:~user\Application Data\Local\Microsoft\Outlook

### 关于 Outlook 插件的开发与使用指南 #### 开发环境设置 为了创建 Outlook 插件,开发者通常会选择 Visual Studio 作为主要集成开发环境 (IDE),因为它提供了丰富的工具集来支持 Office Add-ins 的构建。通过安装 .NET 工具包以及 VSTO(Visual Studio Tools for Office),可以极大地简化插件项目的搭建过程[^2]。 #### 创建项目模板 启动 Visual Studio 后,在新建项目对话框里选择适用于 C# 或 VB.NET 的 “Office/SharePoint” 类别下的 “Outlook VSTO 添加项”。这一步骤会自动生成必要的文件结构和初始代码框架以便快速上手。 #### 主要功能实现 - **读取邮件内容**: 使用 `Microsoft.Office.Interop.Outlook` 命名空间中的类库访问当前选中的邮件对象并获取其属性如主题、正文等。 ```csharp using Outlook = Microsoft.Office.Interop.Outlook; private void ReadEmailContent() { var application = new Outlook.Application(); var activeExplorer = application.ActiveExplorer().Selection as Outlook.Selection; foreach(Outlook.MailItem item in activeExplorer) { Console.WriteLine($"Subject: {item.Subject}"); } } ``` - **发送新邮件**: 利用相同的命名空间调用方法打开新的 compose 窗口,并预填充收件人地址或其他字段。 ```csharp private void SendNewMail(string recipientAddress) { var mailItem = Application.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); ((Outlook.MailItem)mailItem).Recipients.Add(recipientAddress); ((Outlook.MailItem)mailItem).Display(false); // 显示编辑窗口但不自动发送 } ``` #### 用户界面定制 对于希望向 Ribbon 菜单添加按钮或者其他控件的情况,可以通过修改 `.ribbonXML` 文件定义 UI 元素布局;也可以采用 Fluent UI SDK 提供更灵活的方式设计交互式组件。 #### 发布部署注意事项 完成编码测试之后,需考虑如何分发给最终用户。一般情况下建议打包成 MSI 安装程序或是利用 ClickOnce 技术让使用者能够方便快捷地安装更新版本。另外还需注意确保目标机器已安装相应版本的 .NET Framework 和 Office 应用程序本身。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值