Как получить доступ к контекстным свойствам надстройки VSTO?

#outlook #registry #vsto

#outlook #реестр #vsto

Вопрос:

Я пытаюсь получить доступ практически к любому идентифицирующему свойству надстройки «отношения» или «регистрация» из надстройки VSTO в Outlook. Как мне получить доступ к этой информации из запущенной сборки?

Поскольку я предполагаю, что на самом деле это не очень хорошо задает мой вопрос, я сделаю резервную копию: для того, чтобы Outlook или приложение Office распознали и загрузили надстройку VSTO, раздел реестра должен быть создан в одном из нескольких расположений. в этом расположении есть ключ с именем «идентификатор» надстройки, и этот ключ затем имеет несколько значений, включая одно, которое направляет приложение Office к сборке для надстройки.

Это эффективно регистрирует надстройку в приложении Office, и я хочу иметь возможность получить доступ к чему-то отличительному в этой регистрации — я думаю, в идеале к самому разделу реестра.

Редактировать / Я хотел бы иметь возможность регистрировать одну и ту же сборку более одного раза, но пусть она знает, какая это «регистрация», чтобы знать, где искать разные настройки для каждой регистрации. / редактировать

Возможно ли это? Как мне это сделать?

Ответ №1:

Надстройка VSTO в основном является обычной.СЕТЕВОЕ приложение, которое регистрирует некоторые разделы реестра для Office, чтобы иметь возможность идентифицировать установленные надстройки и заставить Office взаимодействовать с этими надстройками.

Здесь вы можете найти сведения реестра, которые используются Office для идентификации надстроек.

https://msdn.microsoft.com/en-us/library/bb386106.aspx

Если вы посмотрите на картинку на следующей странице, вы сможете узнать, как распознается надстройка и как она загружается клиентскими приложениями Office:

https://msdn.microsoft.com/en-us/library/bb386298.aspx

Комментарии:

1. Я зарегистрировал ее и все работает нормально — я хочу добавить в dll код, который позволит ей идентифицировать себя, в отличие от других надстроек, возможно, через разделы реестра, которые использует Outlook, возможно, через некоторые значения, такие как FriendlyName

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

3. Некоторое время назад я внес правку в сообщение, в которой объясняется, что я могу не знать точный раздел реестра — в идеале я хочу, чтобы он мог определять свой собственный раздел реестра «регистрация» — и, таким образом, иметь доступ к другим значениям, применяемым к этому ключу — я не вижу никакого способа сделатьэто, возможно, не через какой-либо API для надстроек VSTO … (?). В нем уже есть жестко закодированный раздел реестра, который используется для получения некоторых дополнительных настроек, но я хочу иметь возможность регистрировать одну и ту же сборку и заставлять ее действовать по-разному в зависимости от этих других настроек (разных ключей) — пожалуйста, дайте мне знать, если это имеет смысл

Ответ №2:

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

https://social.msdn.microsoft.com/Forums/office/en-US/d35b9b50-e8c0-4df0-b6a1-5a28ec1f00b6/programmatically-obtain-product-version-of-excel-addin-project-with-visual-basic-net?forum=exceldev