Процесс обновления надстройки Excel?

Вопрос:У меня есть надстройка Excel 2003, развернутая в одном из наших отделов, которая иногда нуждается в обновлении. В настоящее время я публикую новую версию с моей машины в центральное место, это обновляет номер версии, хранящейся в базе данных, которую надстройка проверяет каждый раз, когда выполняется какой-либо из модулей внутри нее, и если номер новой версии,

Вопрос:

У меня есть надстройка Excel 2003, развернутая в одном из наших отделов, которая иногда нуждается в обновлении. В настоящее время я публикую новую версию с моей машины в центральное место, это обновляет номер версии, хранящейся в базе данных, которую надстройка проверяет каждый раз, когда выполняется какой-либо из модулей внутри нее, и если номер новой версии, то надстройка останавливается с сообщением, информирующим пользователя о необходимости обновления надстройки.

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

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

Я бы создал некоторый код в пользователе personal.xls “на лету”, чтобы обрабатывать переход, но я не могу установить флаг “Доверять доступ к визуальному базовому проекту” на машинах пользователей, поэтому не может быть реплицирован кода в надстройке.

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

Может ли кто-нибудь предложить лучшее решение? Это должен быть 100% Excel, не VSTO и т.д.

Лучший ответ:

Было приятно, что Дик Куслайка написал блог об управлении надстройками сегодня!

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

Ответ №1

Мы используем отдельное дополнение как загрузчик.

  • Основное дополнение может обновить загрузчик
  • Если основной аддон нуждается в обновлении, он загружает загрузочный файл, а затем использует вызов OnTime для планирования вызова процедуры бутстрапа в начальной загрузке и сразу же выгружает себя.
  • Выполняется вызов ontime.
  • загрузочный загрузочный файл загружает основное дополнение, перезагружает основной аддон, выгружает сам.

Сложный, но он работает.

Ответ №2

Один из способов я достиг чего-то подобного, хотя, некоторое время назад, выглядит следующим образом:

Предоставьте кнопку “Обновить” на общей странице (это может быть общий файл, если вы используете много), и когда пользователи нажимают на него, он открывает xls в сетевом расположении и копирует код из этого файла в локальный файл и закрывает вновь открытые файлы.

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

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

Ответ №3

Используя развертывание ClickOnce из коробки, версия надстройки проверяется всякий раз, когда запускается приложение, использующее его (Excel). Не уверен, что вы можете развернуть не управляемый код таким образом.

Ответ №4

Я попробовал что-то другое, шаг за шагом:
1. напишите addin и поместите его на разделенное пространство диска
2. добавьте проект в ссылки VBA
3. Ваши функции и макросы, используемые в листах excel, добавляют в качестве ссылок на дополнения
каждый раз, когда загружаются листы, добавляются новые дополнения и ссылки.

i запустите решение кнопки обновления, из-за проблем, когда сеть не подключена к сети.

Ответ №5

Поскольку я нигде не нашел “рабочего процесса”, я опубликую свой опыт со вчерашнего дня, когда я столкнулся почти с той же проблемой. (Нет автоматических обновлений)

В ссылке @Lunatik на dilydoseofexcel.com Чарльз опубликовал свой Addin (можно загрузить с http://www.decisionmodels.com/downloads.htm#addload), который разрешил мою ситуацию.

Содержание

  1. Предпосылки
  2. сооружения
  3. Мой рабочий процесс (обновление Addin)
  4. закрытие

Предпосылки

Любой пользователь, который хочет использовать плагины на удаленном сервере, должен добавить надстройку AddLoaderV2.xla.

Из Excel: Developer Tab — Excel Add-ins — Browse -…AddLoaderV2.xla — select ‘NO’ when asked to copy it locally

сооружения

  • Структура папок на стороне сервера

T:myremotefolderSOFTWAREMSOFFICEExcel_Add-ins . ├── AddinLoad.txt ├── AddLoaderV2.xla └── USER_SonGokussj4 ├── FinancialFunctions_v0.0.1.xlam ├── FinancialFunctions_v0.0.2.xlam └── dev_FinancialFunctions_v0.0.3.xlam

  • Содержание AddinLoad.txt

FinancialFunctions, auto, T:myremotefolderSOFTWAREMSOFFICEExcel_Add-insUSER_SonGokussj4

Примечание: префикс USER папки – это мое предпочтение, потому что я поддерживаю надстройки для большого количества людей.

Мой рабочий процесс (обновление Addin)

  • Когда я хочу обновить FinancialFunctions_v0.0.2.xlam, я делаю копию (потому что v0.0.2 используется многими людьми): dev_FinanctialFunction_v0.0.3.xlam
  • Я открываю v0.0.3 и делаю необходимые изменения
  • Когда я FinanctialFunctions_v0.0.3.xlam, я переименую его в FinanctialFunctions_v0.0.3.xlam
  • Я отправляю электронное письмо в мой отдел, эта новая версия доступна
  • Теперь каждый новый открытый Excel будет auto загружать (определенный в AddinLoad.txt) v0.0.3
  • Если пользователь не хочет закрывать свой Excel, на вкладке Addins есть: https://i.imgur.com/H2ru2hV.png, поэтому пользователь просто выбирает надстройку для перезагрузки.

закрытие

Я предполагаю, что это не будет много работы, чтобы сделать некоторые автоматизации от вашего Addin как “проверить, если новая версия доступна, если да, то вызовите reload функцию AddLoaderV2 Addin.”

Надеюсь, это кому-нибудь поможет. Моя самая большая проблема понимания именования .xlam файлов и AddinLoad.txt имени корня всегда загружать только самую последнюю версию. Существует 3-страничный файл readme, когда вы загружаете его Addin.

Чарльз на помощь! Хорошего дня.

Теперь я должен найти что-то похожее, чтобы загрузить дополнения PowerPoint…

Оцените статью
Добавить комментарий