我知道,有多个帖子,博客等与同一问题有关,但他们都没有帮助我,因此我在这里张贴这个问题,以获得一些专家意见。
Environment: Windows 10, Office 2016, .Net Framework 4.5.1, Visual Studio 2010 Tools for Office runtime
我的outlook插件在Win7,Win8.1,Outlook 2013,2016上运行得非常好。
问题: Outlook外接程序在outlook启动时没有加载,我看到LoadBehaviour正在从3更改为2。当我双击并从安装位置安装.vsto文件时,外接程序成功安装,但在启动期间仍未加载外接程序。
我遵循了哈米德·艾哈迈迪在他的博客里提供的所有步骤。但他们都帮不上忙。
融合日志:
The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Windows\syswow64\MsiExec.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: Where-ref bind. Location = C:\Program Files (x86)\myaddin\myaddin.OutlookAddin\myaddin.OutlookAddin.dll
LOG: Appbase = file:///C:/Windows/syswow64/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MsiExec.exe
Calling assembly : (Unknown).
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: No application configuration file found.
LOG: Using host configuration file: C:\Users\anupraj\AppData\Local\Temp\CFG1405.tmp
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/myaddin/myaddin.OutlookAddin/myaddin.OutlookAddin.dll.
LOG: Assembly download was successful. Attempting setup of file: C:\Program Files (x86)\myaddin\myaddin.OutlookAddin\myaddin.OutlookAddin.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: myaddin.OutlookAddin, Version=1.0.4.0, Culture=neutral, PublicKeyToken=08126df2ce1c130e
LOG: Re-apply policy for where-ref bind.
LOG: Post-policy reference: myaddin.OutlookAddin, Version=1.0.4.0, Culture=neutral, PublicKeyToken=08126df2ce1c130e
LOG: GAC Lookup was unsuccessful.
LOG: Where-ref bind Codebase does not match what is found in default context. Keep the result in LoadFrom context.
LOG: Binding succeeds. Returns assembly from C:\Program Files (x86)\myaddin\myaddin.OutlookAddin\myaddin.OutlookAddin.dll.
LOG: Assembly is loaded in LoadFrom load context.我不太习惯阅读融合日志,因此无法推断出它的意思。
通过使用这个AddinSpy,我厌倦了Github码,但是对于我的外接程序,我得到了这个异常。
System.ArgumentException: Destination array is not long enough to copy all the items in the collection. Check array index and length.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.BitConverter.ToInt32(Byte[] value, Int32 startIndex)
at AddInSpy.ILReader.Next() in e:\POC\AddInSpy-master\AddInScanEngine\ILReader.cs:line 79
at AddInSpy.ILReader.<GetEnumerator>d__0.MoveNext() in e:\POC\AddInSpy-master\AddInScanEngine\ILReader.cs:line 51
at AddInSpy.AssemblyScanner.CheckCustomTaskPaneType(Assembly assembly, ArrayList& assemblyInfo) in e:\POC\AddInSpy-master\AddInScanEngine\AssemblyScanner.cs:line 251注意:当我尝试在这个Win10 Office 2016环境下运行visual的外接程序代码时,外接程序正在正常加载,没有问题。
我正在使用.msi来部署我的外接程序,我已经在Win7、Win8.1上测试了它,并且它在这些环境中运行得很好。
有什么线索吗?
发布于 2017-11-01 10:59:18
最后,我解决了我的问题。
问题在于我在Visual安装程序项目中的注册表项。
我使用的是[INSTALLDIR]PhishLabs.OutlookAddin.vsto|vstolocal,它在Win7、Win8.1部署中非常好,但在Win10中却失败了。
我已经用INSTALLDIR取代了TARGETDIR,现在Win10的工作还不错。
[TARGETDIR]PhishLabs.OutlookAddin.vsto|vstolocal是你所需要的。
https://stackoverflow.com/questions/47050290
复制相似问题