Можно ли установить надстройку .NET Word 2003 за пределами GAC?

StackOverflow https://stackoverflow.com/questions/553794

  •  23-08-2019
  •  | 
  •  

Вопрос

Я создал компонент надстройки Word и проект установки Visual Studio для установки этого компонента.

На чистом компьютере с установленным Office 2003, похоже, невозможно загрузить компонент надстройки в Word.

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

caspol -af AssemblyName.dll

Это не имеет значения, и компонент по-прежнему не загружается в Word.Каспол распечатывает сообщение «Поскольку все собрания GAC всегда получают полное доверие, полный список доверия больше не имеет значения.Вы должны установить любые сборки, которые используются в политике безопасности в GAC, чтобы убедиться, что им доверяют »

Изменение установщика для помещения сборки в GAC позволяет ей корректно загрузиться в Word.Но в будущем компоненту, возможно, придется использовать общие сборки, совместно используемые другими нашими .NET-приложениями, и добавление этих библиотек в GAC было бы нежелательным.

Кто-нибудь знает, как настроить безопасность, чтобы разрешить загрузку компонента при установке вне GAC?

Это было полезно?

Решение

Вы можете вручную запустить следующую команду, чтобы настроить безопасность и разрешить Word запускать сборку из-за пределов GAC.При этом создается новая группа с полным доверием, что позволяет запускать сборку.

caspol.exe -u -addgroup All_Code -url "\*"  FullTrust -n AssemblyName.dll

У Microsoft есть пример настраиваемого действия для установщика на следующем сайте. ссылка на MSDN, что позволит вам включить эту команду в качестве дополнительного действия установщика.

Другие советы

Вам определенно не нужно устанавливать сборки в GAC, а также нет необходимости определять какую-либо политику безопасности для сборки надстройки.

Используете ли вы .NET 2.0 с Office 2003?В Office 2003 и Office XP возникают проблемы с загрузкой надстроек .NET 2.0.Они загружаются с помощью .NET 1.1 Framework (если он присутствует на машине, что весьма вероятно).Поэтому вам необходимо исправить установку Office с помощью Обновление поддержки общей надстройки для Microsoft .NET Framework 2.0 (KB908002).

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

Подробности ищите в ответь на эти вопросы.

И, конечно же, в вашей целевой системе должна быть установлена ​​правильная версия PIA (чуть не забыл об этом моменте, неправильные или отсутствующие PIA — одна из основных проблем, почему надстройки не загружаются).

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

Если вы используете Visual Studio 2008, вам необходимо следовать обходной путь упомянуто ниже, чтобы получить KB908002 в списке в диалоговом окне добавления предварительных требований:

  1. Загрузите и установите исправление на компьютере, на котором установлена ​​Visual Studio 2005.
  2. Перейдите к C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages, найдите папку KB908002.
  3. Войдите на компьютер, на котором установлена ​​Visual Studio 2008, и скопируйте папку KB908002 в C:\Program Files\Microsoft SDK\Windows\v6.0A\Bootstrapper\Packages
  4. Теперь, если вы перейдете к списку предварительных требований на компьютере с Visual Studio 2008, вы увидите список исправлений.

Другой вариант, когда вам вообще не нужен VS 2005:

  1. Загрузите исправление во временную папку.
  2. Откройте командную строку, перейдите в папку, в которой находится исправление, и запустите следующую команду, чтобы извлечь файлы из самораспаковывающегося установочного файла:

    vs2005-kb908002-enu-x86.exe /C /T:C:\KB908002\
    cd \KB908002
    

    Теперь папка C:\KB908002 будет содержать три файла: vs2005-kb908002-enu-x86.exe /C /T:C: mp\KB908002 mp, setup.exe и bootstrapper.msi.

  3. Нас интересует содержимое bootstapper.msi, поэтому извлекаем содержимое этого файла:

    msiexec /a bootstrapper.msi /qb TARGETDIR=C:\KB908002\tmp\
    cd tmp
    
  4. Наконец, мы копируем папку packages, которую мы извлекли, в папку загрузчика Windows SDK.

    xcopy /E "C:\KB908002\tmp\SDK\BootStrapper\Packages" "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages"
    
  5. Теперь, если вы перейдете к списку предварительных требований в Visual Studio 2008, вы увидите список исправлений.

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

Офисные приложения, такие как MS Word, загружают свои надстройки, читая определенные записи реестра.Скорее всего, вы не создаете эти записи во время развертывания.

Чтобы узнать подробности обо всех этих делах с реестром, см. этот статья.Также, чтобы узнать о развертывании надстроек Office в целом, см. этот статья

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top