Создание настройки (ClickOnce) для надстройки VSTO Outlook - PullRequest
5 голосов
/ 17 марта 2009

Итак, я создал надстройку Outlook и использовал ее установку по щелчку для ее развертывания.

Настройка работает нормально, если пользователь является администратором, но в противном случае: нет.

Запуск установки с помощью «запустить как ...» и вход в систему как администратор работает, но надстройка устанавливается под администратором, а не текущим пользователем. Надстройка не отображается в Outlook.

Я пытался следовать этому руководству: http://blogs.msdn.com/mshneer/archive/2008/04/24/deploying-your-vsto-add-in-to-all-users-part-iii.aspx

Но я застрял в первой части: http://blogs.msdn.com/mshneer/archive/2007/09/04/deploying-your-vsto-add-in-to-all-users-part-i.aspx

Я следую примеру и запускаю Excel, как описано:

Теперь запустите приложение Excel. исследовать ключи реестра в кусте HKCU, например вы найдете два интересных ключи реестра, которые появляются под вашим HKCU улей:

  • HKCU \ Software \ Microsoft \ Office \ TestKey раздел реестра, содержащий значение реестра TestValue
  • Теперь у вас также есть HKCU \ Software \ Microsoft \ Office \ 12.0 \ User Настройки \ Раздел реестра TestPropagation со значением счетчика, установленным на 1

Но на моей машине ключи не создаются ... Что я могу попробовать дальше?

Ответы [ 6 ]

0 голосов
/ 27 декабря 2011
  1. Создайте учетную запись локального администратора, скажем, TESTAccount.
  2. Установите надстройку, нажав один раз для этого пользователя.
  3. Повторно войдите в систему как администратор и скопируйте TESTAccount в пользователя по умолчанию.

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

0 голосов
/ 05 июня 2010

На какую версию Office вы нацеливаетесь с помощью надстройки и на какую версию .NET Framework вы нацеливаетесь? Кроме того, какую версию Visual Studio вы используете?

Это должно работать; У меня есть две надстройки Office в производстве, которые развернуты с ClickOnce.

Статья, которую вы перечислили, посвящена установке для всех пользователей. Это не использует ClickOnce, и не имеет отношения к вашему случаю.

Я могу дать вам несколько шагов по развертыванию после того, как выясню, какие версии вы используете / нацеливаете. : -)

0 голосов
/ 04 июня 2010

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

0 голосов
/ 26 марта 2009

Если я правильно понимаю вопрос, позвольте мне описать ваш сценарий: приложение clickonce будет установлено для всех пользователей и, следовательно, должно изначально запускаться через механизм развертывания, который имеет права администратора, чтобы записывать ключи в HKLM. После этого стандартный пользователь входит в систему, Microsoft Office при запуске копирует ключи HKLM в HKCU, а надстройка запускается в контексте обычного пользователя для любого пользователя на этом компьютере.

Если все попытки исчерпаны при получении Office для использования ключей HKLM для копирования в HKCU, когда пользователь запускает Office, я бы собрал вместе скрипт vbs и reg-файл, поместив скрипт vbs в файл запуска всех пользователей (используя некоторые инструменты развертывания на уровне администратора) и сам управляю созданием специальных ключей в HKCU без помощи Office. Файл сценария vbs будет автоматически запускать regedit для помещения соответствующих ключей в HKCU при входе пользователя в систему.

Это похоже на то, как мы управляем WordPerfect в моем офисе.

Обновление: используйте исправление KB976477 для решения проблемы.

0 голосов
/ 24 марта 2009

Просто чтобы прояснить ситуацию, вы добавляете ключи реестра в "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 12.0 \ User Settings"

И они до сих пор не отображаются в HKCU \ Software \ Microsoft \ Office \?

Я полагаю, вы используете 64-битную ОС?

Если это просто, попробуйте вместо этого

Редактор реестра Windows, версия 5.00 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Wow6432Node \ Microsoft \ Office \ 12.0 \ Настройки пользователя \ TestPropagation] "Count" = dword: 00000001 [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Wow6432Node \ Microsoft \ Office \ 12.0 \ Настройки пользователя \ TestPropagation \ Создать \ Программное обеспечение \ Microsoft \ Office \ TestKey] "TestValue" = "Test"

Обратите внимание, что путь к ключу находится под ключом Wow6432Node. Он должен быть там или не будет работать в 64-битной ОС.

0 голосов
/ 22 марта 2009

Я не делал этого в течение нескольких лет, но из памяти офиса дополнения регистрируются следующим образом:

  1. поместите файлы в нужное место
  2. зарегистрируйте .NET COM-объект, который представляет ваше дополнение
  3. поместите записи реестра в Microsoft\Office\Addins, чтобы сообщить офису о загрузке вашего COM-объекта.

Если мое мышление верное, проблема в том, что вам нужно зарегистрировать COM-объект. Регистрация COM-объектов является действием для каждого компьютера и, следовательно, требует прав администратора.

Вы сможете увидеть, действительно ли это происходит. Ваш раздел реестра под надстройкой Office будет называться что-то вроде MyAddin.Connect. Затем вы можете выполнить поиск в HKEY_CLASSES_ROOT для MyAddin.Connect, и он должен присутствовать при запуске установки от имени администратора, а не присутствует при запуске от имени пользователя.

Если это так, вы можете обойти это, выполнив индивидуальную регистрацию COM-объекта для каждого пользователя, но это немного болезненно.

В наши дни все может быть проще, но когда мне пришлось это сделать, вы использовали утилиту под названием RegCap.exe для записи записей реестра, связанных с COM-объектом, в файл .reg, а затем изменили файл .reg с помощью текстовый редактор, чтобы заменить HKLM на HKCU, затем вместо регистрации COM-объекта, вы загружаете этот файл .reg.

...