После нескольких бесконечных ночей я наконец понял проблему. Это действительно все о Code Access Security и caspol.exe
Некоторые советы по развертыванию надстроек Outlook 2003 (Outlook 2007 отличается).
Прежде всего, на своем тестовом клиенте обязательно установите переменную среды Windows VSTO_LOGALERTS = 1, поскольку это запишет все ошибки надстройки в файл журнала, который находится в целевом каталоге установки. Также очень важно знать, что если ваша надстройка выдает исключение во время запуска, она будет отключена в реестре при следующем запуске Outlook (см. Здесь Что может заставить Outlook изменить LoadBehavior COM-надстройки до 2 - кроме необработанных исключений? ). Это может вызвать некоторую путаницу, когда вы об этом не знаете.
Теперь давайте перейдем к проблемам с касполом. Обязательно сначала подпишите свои сборки ключом строгого имени. Затем вы должны убедиться, что ваши сборки полностью доверяют клиенту. Для этого вы можете запустить caspol.exe со следующими настройками: "caspol.exe -machine -addgroup 1 -strong -hex [ключ] -noname -noversion FullTrust -n \" Имя \ "-описание \" desc \ " С этими аргументами вы дадите всем сборкам, подписанным ранее вашим ключом, полное доверие на машине. Это намного лучше, чем предоставление всего каталога FullTrust.
В производственной среде вам наверняка захочется создать настройку для вашей надстройки. Вы также можете создать пользовательское действие для вашего проекта установки, чтобы автоматически выполнять все операции с caspol. Вы можете использовать приведенный здесь пример кода "http://msdn.microsoft.com/en-us/library/cc136646.aspx#AutoDeployVSTOse_CreatingtheCASPolicy", но будьте внимательны: проверьте наличие аргумента -pp в аргументах caspol. Если приглашение на изменение политики включено, автоматическая установка завершится неудачно, так как для этого требуется взаимодействие с пользователем. установите для -pp значение off, выполните политику и снова включите ее. Остерегайтесь снова: пример кода не ожидает завершения процесса.
После того, как я все понял, развертывание надстройки стало простым даже для установки «всех пользователей». Надеюсь, это кому-нибудь поможет.