COM加载项不会在Word 2007中消失

时间:2011-03-27 17:42:20

标签: c# vsto word-2007 comaddin word-2003

所以我有两个不同的COM插件,一个用于单词2k3,另一个用于2k7。单词2k3每次都像魅力一样,没有问题......但是现在当我打开单词2k7时,2k3的按钮出现在我的2k7彩带中。即使在我禁用我的插件或清理我的项目之后,这仍然会发生...我已经尝试了所有内容,包括删除我的2k3插件的所有dll但问题仍然存在...

有关问题的任何建议?

欢呼声

3 个答案:

答案 0 :(得分:1)

如果您在模板中配置这些按钮而不是normal.dot,那么它们将自动地“消失”#34;安装时。

对Normal.dot进行更改通常被认为是不好的做法,但很多人都没有意识到,除非你设置&#34; CustomizationContext&#34;在创建你自己的按钮和工具栏之前的单词属性,这正是你正在做的,修改normal.dot,并且这些更改将在你卸载你的插件后继续存在。< / p>

答案 1 :(得分:0)

作为卸载过程的一部分,您必须“手动”删除该按钮。这是我使用的代码:

    public static void removeWordToolbarButton(
        Microsoft.Office.Interop.Word.Application word )
    {
        var commandBar = word.CommandBars["Tools"];
        var btn = commandBar.FindControl(
            Microsoft.Office.Core.MsoControlType.msoControlButton,
            System.Reflection.Missing.Value,
            "name_of_the_button",
            System.Reflection.Missing.Value,
            System.Reflection.Missing.Value ) as Microsoft.Office.Core.CommandBarButton;
        if ( btn != null )
        {
            btn.Delete( -1 );
            Marshal.ReleaseComObject( btn );
        }
        Marshal.ReleaseComObject( commandBar );
    }

答案 2 :(得分:0)

我怀疑问题依赖于normal.dot模板。 使用以下命令删除按钮,命令栏等后尝试保存普通模板:

wordApplication.NormalTemplate.Save();