.net Office加载项功能区赢得';调试后不要离开

.net Office加载项功能区赢得';调试后不要离开,.net,visual-studio,debugging,office-2010,office-addins,.net,Visual Studio,Debugging,Office 2010,Office Addins,我使用VisualStudio2010创建了一个Office 2010 Word加载项项目,该项目有一个功能区,其中包含两个基本控件。我甚至还没有添加代码。调试项目时,Word启动,并显示功能区(“功能区1”)。到目前为止一切都很好,但是 问题1:现在,当我打开任何Word文档时,相同的功能区仍然存在 问题2:我有第二个功能区(“功能区2”),我正在另一个项目中工作。当我调试时,功能区1和功能区2显示为一个功能区!当我下一次打开任何Word文档时,组合的功能区仍然会显示 这两个问题的根源似乎是当

我使用VisualStudio2010创建了一个Office 2010 Word加载项项目,该项目有一个功能区,其中包含两个基本控件。我甚至还没有添加代码。调试项目时,Word启动,并显示功能区(“功能区1”)。到目前为止一切都很好,但是

问题1:现在,当我打开任何Word文档时,相同的功能区仍然存在

问题2:我有第二个功能区(“功能区2”),我正在另一个项目中工作。当我调试时,功能区1和功能区2显示为一个功能区!当我下一次打开任何Word文档时,组合的功能区仍然会显示

这两个问题的根源似乎是当我停止调试时VisualStudio没有正确卸载ribbon。我自己手动安装ribbon,然后通过VSTOInstaller.exe卸载它,解决了这个问题——真是一件痛苦的事

停止调试时,如何确保功能区已完全删除


(我发现了一个类似的问题,但两个答案都不清楚。)

安装VSTO加载项后,它将添加到Windows注册表中的Word的
HKEY\U CURRENT\U USER\Software\Microsoft\Office\Word\Addins
下。(其他Office应用程序的加载项就在附近。)

最简单的方法是编写自己的控制台应用程序,只需从该注册表位置删除外接程序。它需要做的就是删除与外接程序名相同的子项。然后,您可以在调试会话结束时运行该实用程序


如果您希望它自动发生,那么您需要弄清楚如何挂接到VisualStudio,以便在停止调试并从注册表中删除加载项时触发事件。不过,我从未尝试过这样的事情。

谢谢!我已将一个.reg文件添加到我的项目中,该文件将删除剩余的注册表项。我不知道如何将它连接到调试后事件中,所以每次调试完成后我都会双击它——这有点麻烦,但我可以忍受。问题#2(多个加载项组合在同一功能区上)是由错误的设置引起的。RibbonTab具有ControlId=“TabAddIns”,这是一个保留的Office选项卡。我将ControlIdType更改为Custom并输入了唯一的ControlID,现在加载项总是单独显示。