Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 23:00   #1
iehf
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 12
По умолчанию Надстройка Word не работает на других компьютерах

В общем, помогите кто чем может, уже не знаю куда копать, нужна свежая идея, заиклился.

Есть надстройка для ворда, пока еще просто тестовая, не выполняющая особых функций.
Код:
public partial class MyRibbon
    {
        private void MyRibbon_Load(object sender, RibbonUIEventArgs e)
        {

        }

        private Microsoft.Office.Interop.Word.Bookmark bm = null;

        private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            Progress progress = new Progress();
            progress.backgroundWorker1.DoWork += backgroundWorker1_DoWork;
            progress.ShowDialog();
        }

        void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            MessageBox.Show("Самое начало DoWork");
            BackgroundWorker worker = (BackgroundWorker)sender;
            worker.WorkerReportsProgress = true;

            Microsoft.Office.Interop.Word.Document Doc = Globals.ThisAddIn.Application.ActiveDocument;
            Microsoft.Office.Interop.Word.Paragraphs par = Doc.Paragraphs;

            string str = Globals.ThisAddIn.Application.ActiveDocument.Path + "\\" + Globals.ThisAddIn.Application.ActiveDocument.Name;
            Object missing = Type.Missing;

            Doc.Close(missing, missing, missing);

            DocumentFormat.OpenXml.Packaging.OpenSettings set = new DocumentFormat.OpenXml.Packaging.OpenSettings();
            set.MaxCharactersInPart = 0;
            int tmp = 1;

            using (DocumentFormat.OpenXml.Packaging.WordprocessingDocument myDocument = DocumentFormat.OpenXml.Packaging.WordprocessingDocument.Open(str, true))
            {
                MessageBox.Show("Внутри юзинга");
                //вот тут происходит работа с документом ворда
            }
        }
    }
Создаю сетап через ClickOnce, устанавливаю на комп, при запуске ворда надстройка видится, при нажатии на кнопку показывается прогрес бар, вылетаю необходимые меседжбоксы.

При установке той же надстройки на другой копм, офис все также видит надстройку, все так же нажимаются кнопочки, но не появляется ни одного меседжбокса. Как будто вообще не заходит в этот обработчик. Прогресбар мелькает и закрывается.

Если из кода убрать использование
Код:
using (DocumentFormat.OpenXml.Packaging.WordprocessingDocument myDocument = DocumentFormat.OpenXml.Packaging.WordprocessingDocument.Open(str, true))
            {
                MessageBox.Show("Внутри юзинга");
                //вот тут происходит работа с документом ворда
            }
то меседжбокс появляется, тоесть в обработчик заходит.

Отсюда вопрос, чем этот юзинг так не угодил другим компам? Библиотеки все вроде бы подключаю, должно ему хватать (вернее добавляю в сетап те библиотеки, которые предлагает студия при создании установщика, это VSTO Runtime и Client Profile .NetFramework 4)

И, даже если не хватает ему библиотек, то почему оно не выводит первый в методе меседжбокс? Почему оно вообще в метод не заходит?

В общем, помогите, сколько кому не жалко)))
iehf вне форума Ответить с цитированием
Старый 10.12.2011, 23:17   #2
iehf
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 12
По умолчанию

Дорогие модераторы, не обессудьте, не обратил внимание, что сдесь не весь офис, а только Exel, перенесите пожалуйста в правильный разде, к ворду...
iehf вне форума Ответить с цитированием
Старый 11.12.2011, 05:22   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Код:
                MessageBox.Show("Внутри юзинга");
                //вот тут происходит работа с документом ворда
А не будет ли свежей идеей сделать эту работу посредством VBA?
Цитата:
Сообщение от iehf Посмотреть сообщение
Ну с VBA я не знаком совершенно, так что как то даже не рассматривал такой вариант. А к C# я более привычен.
А!.. Зачем рулить мерседесом, если есть автопогрузчик!

Последний раз редактировалось Sasha_Smirnov; 12.12.2011 в 04:27. Причина: шутка.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 11.12.2011, 09:15   #4
iehf
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 12
По умолчанию

Ну с VBA я не знаком совершенно, так что как то даже не рассматривал такой вариант. А к C# я более привычен.
iehf вне форума Ответить с цитированием
Старый 11.12.2011, 10:32   #5
iehf
Пользователь
 
Регистрация: 30.03.2010
Сообщений: 12
По умолчанию

В общем, как говориться, утро вечера мудренее.

Если кому интересно:

Так как проблема была похожа на отсутствие необходимых для работы программы библиотек, решил просмотреть все зависимости и найти таки ту библиотеку, которой не хватает.

Все оказалось банально, установил библиотеку OpenXMLSDKv2 (http://www.microsoft.com/download/en...s.aspx?id=5124) и все заработало. Теперь надо найти, как ее включить в установщик надстройки созданый с помощью ClickOnce

А ексепшены не вылетали и меседжбоксы не показывались видимо из-за установок самого Ворд по отношению к стороним надстройкам. Дабы не ломать документ все ошибки, генерируемые надстройками и необработанные разработчиком просто игнорировались.

Вот так вот.
iehf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кто может объяснить,почему на моем компе программа работает на других нет?код в Delphi Symba Общие вопросы Delphi 1 24.03.2011 01:03
запуск .exe из папки Debug на других компьютерах opensuse2008 Общие вопросы C/C++ 3 18.05.2010 12:06
exe-файл не работает на других машинах D-mann Помощь студентам 8 04.09.2009 11:17
Highslide не правильно работает в других браузерах Barmunk HTML и CSS 1 28.08.2009 16:40
надстройка "поиск решения" не работает ariksh Microsoft Office Excel 1 20.06.2009 20:40