COM Outlook AddIn регистрируется, но Outlook / Fusion не находит DLL? - PullRequest
0 голосов
/ 25 апреля 2019

Я создал COM AddIn для Office 2013 и выше с помощью Visual Studio 2017. Я перешел на новую машину разработки и зарегистрировал новую сборку AddIn, используя

regasm.exe c:\path\myAddIn.dll /codebase

Я также добавил записи реестра для надстроек Outlook:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Addins\myOLAddIn.Connect]
"FriendlyName"="my outlook AddIn"
"Description"="my outlook AddIn"
"LoadBehavior"=dword:00000003

Но надстройка не загружается. Он появляется в списке надстроек Outlook, но не активируется из-за ошибки загрузки в mscoree.dll .

Я активировал журналы Fusion и нашел это:

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files\Microsoft Office\Office16\OUTLOOK.EXE
--- A detailed error log follows.

=== Pre-bind state information ===
LOG: DisplayName = myOLAddIn, Version=1.4.5878.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files/Microsoft Office/Office16/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = OUTLOOK.EXE
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Download of application configuration file was attempted from file:///C:/Program Files/Microsoft Office/Office16/outlook.exe.Config.
LOG: Found application configuration file (C:\Program Files\Microsoft Office\Office16\outlook.exe.Config).
LOG: Using application configuration file: C:\Program Files\Microsoft Office\Office16\outlook.exe.Config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office16/myOLAddIn.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office16/myOLAddIn/myOLAddIn.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office16/myOLAddIn.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft Office/Office16/myOLAddIn/myOLAddIn.EXE.
LOG: All probing URLs attempted and failed.

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

...