Разделът на лентата съществува дори след деинсталиране на добавката на PowerPoint

Създадох добавка на ниво приложение за PowerPoint 2010/2013, използвайки C# VSTO. Добавката се инсталира от инсталационния файл на msi.

Проблемът е, че след като деинсталирам добавката от контролния панел и отворя нова презентация на PowerPoint, разделът на лентата все още се вижда с всички функции, работещи правилно.

За да премахна раздела, трябва да направя едно от следните две неща:

  1. Премахнете добавката от списъка с добавки COM от раздела Разработчик на PowerPoint.
  2. Прекратете работещия екземпляр на PowerPoint от диспечера на задачите.

Извиках методите за изхвърляне (в метода ThisAddIn_Shutdown) за всички инициализации, които направих в метода ThisAddIn_StartUp, но това не помага.

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange -= Application_WindowSelectionChange;
        this.Application.SlideSelectionChanged -= Application_SlideSelectionChanged;
        this.Application.SlideShowBegin -= Application_SlideShowBegin;
        this.Application.SlideShowEnd -= Application_SlideShowEnd;          
    }

Изпускам ли нещо?

Всяка помощ е добре дошла. Благодаря!


person gkb    schedule 27.05.2014    source източник
comment
Работи ли PowerPoint, докато деинсталирате приставката си, или приставката все още е там, когато стартирате PowerPoint, след като приставката е инсталирана? Ако не греша, лентата се споделя във всички прозорци на PowerPoint (т.е. също всички презентации). Така че, докато е бил зареден, той няма да бъде разтоварен, преди да излезете от текущия екземпляр на PowerPoint.   -  person Gedde    schedule 27.05.2014
comment
Дори ако затворя текущото копие на PowerPoint и след това деинсталирам, след това отново, ако отворя нова презентация, мога да видя раздела. Освен това има само една активна презентация на PowerPoint в даден момент.   -  person gkb    schedule 27.05.2014
comment
Използвате ли RibbonX, за да модифицирате лентата, или създавате потребителски интерфейс с помощта на по-старите командни ленти (които ще поставят вашите ленти с инструменти/бутони в раздела Добавки на лентата)? Ако е последното, трябва изрично да ги изтриете, когато вашата добавка се разтовари.   -  person Steve Rindsberg    schedule 27.05.2014
comment
Потърсете във вашия регистър друг запис на вашата добавка и ги изтрийте. Powerpoint 2010 обикновено присъства в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\PowerPoint\Addins и HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins   -  person Kiru    schedule 27.05.2014
comment
@SteveRindsberg - Здравей Стив, всъщност използвам шаблона Ribbon(Visual Designer) за създаване на лентата.   -  person gkb    schedule 04.06.2014


Отговори (1)


Най-накрая успя да открие причината. Това се дължи на няколко реда персонализиран код, написан в метода InitializeComponent() във файла Ribbon.Designer.cs.

Отървах се от проблема, когато премахнах тази част от кода.

person gkb    schedule 16.07.2014
comment
можете ли да ми кажете какви промени сте направили, защото съм изправен пред същия проблем - person Dah Sra; 30.09.2014
comment
Ще трябва да се уверите дали всички променливи, използвани във вашия код, се изхвърлят правилно. В моя случай използвах свойството Версия на приложението на PowerPoint и това не се изхвърляше правилно, тъй като го бях използвал в метода InitializeComponent() във файла Ribbon.Designer.cs. Отне много време, за да разберем това, като започнахме отново от нулата, за да разберем по кое време по време на разработката е създаден този проблем. - person gkb; 30.09.2014
comment
stackoverflow.com/questions/26116448/ - person Dah Sra; 30.09.2014