Создана надстройка Word уровня приложения Word 2007 - не работает для новых документов - PullRequest
1 голос
/ 11 июня 2011

Я создал надстройку Word после статьи здесь . Я нажимаю F5 и запускаю проект, и он работает, как и ожидалось, и я думаю, что надстройка была установлена ​​на моем компьютере. Итак, теперь я открываю другой экземпляр Word 2007 и создаю документ, и я не вижу, чтобы этот код работал над новым документом. Я что-то упустил?

Ниже приведен код, который я использую: -

using Word = Microsoft.Office.Interop.Word;

namespace WordAddIn1
{
    public partial class ThisAddIn
    {
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            this.Application.DocumentBeforeSave +=
   new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler(Application_DocumentBeforeSave);
        }

        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
        }

        void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel)
        {
            Doc.Paragraphs[1].Range.InsertParagraphBefore();
            Doc.Paragraphs[1].Range.Text = "Text was added by using code.---";
        }


        #region VSTO generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);


        }

        #endregion
    }
}

С здесь : - Когда вы закончите разработку проекта, удалите сборку надстройки, записи реестра и параметры безопасности со своего компьютера разработчика. В противном случае надстройка будет продолжать работать каждый раз, когда вы открываете Word на компьютере разработчика. Очистить завершенный проект на компьютере разработчика В Visual Studio в меню «Построение» выберите «Очистить решение».

Теперь, когда я не очищаю решение, у меня всегда должна быть надстройка для Word 2007, верно? Я не вижу такого вообще.

Ответы [ 2 ]

1 голос
/ 11 июня 2011

В зависимости от того, как вы делаете, есть несколько возможностей.

Скорее всего, когда вы открываете новый экземпляр, отладчик не подключается, поэтому ваши точки останова не попадают.1003 *

Другая возможная причина заключается в том, что это не новый экземпляр, а фактически новый документ в том же экземпляре, и один и тот же экземпляр одной и той же надстройки совместно используется двумя документами.В этом случае событие ThisAdd.Loaded не будет запущено снова, вам нужно прослушивать активируемые новые документы (из слова памяти нет события NewDocument)

Какой код не работает?Это эффекты, которые нельзя увидеть, или точка останова не достигнута?

0 голосов
/ 12 июня 2011

Я вижу, что удаление этой надстройки из Word 2007 решает проблему. Если вы столкнулись с этой проблемой, попробуйте удалить надстройку из Word 2007 и снова создать решение, и ваши изменения вступят в силу. По какой-то причине «Чистое решение» иногда не удаляет надстройку слова (хотя бы иногда в моем случае: -))

enter image description here

enter image description here

...