Как сделать мой GUID видимым для надстройки VSTO - PullRequest
6 голосов
/ 13 октября 2011

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

Namespace NS
    [Guid("211B3945-E2AE-48DD-8A9A-77ADB40EC6D5")]
    [ComVisible(true)]
    public partial class Classname
    {

, но он не появляется, когда я перечисляю COMAddins (имя делает, но неGUID).

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

Кстати - проблема, которую я пытаюсь решить, заключается в том, видит ли надстройка COMзагружается путем поиска его GUID.Описание Addin появляется, когда я проверяю список ComAddIns, но GUID по-прежнему показывает нули независимо от того, как я следую этим указаниям.Я пытаюсь увидеть, что видно, используя следующий код:

olApp = this.Application;
Office.COMAddIns CAIs = olApp.COMAddIns;
foreach (Office.COMAddIn CAI in CAIs)
{
    StringBuilder sb = new StringBuilder();
    sb.AppendLine(CAI.Description);
    sb.AppendLine(CAI.Guid);
    sb.AppendLine("****");
    Debug.Print(sb.ToString());
}

1 Ответ

0 голосов
/ 26 октября 2011

Для раскрытия COM здесь не хватает нескольких вещей, включая переопределение RequestComAddInAutomationService и настройку [InterfaceType(ComInterfaceType.InterfaceIsDual)]

См. Следующие элементы:

  1. VSTO Добавить-ins, COMAddIns и RequestComAddInAutomationService
  2. VSTO в VBA: AddIn.Object иногда возвращает ничего (ноль)
...