使绑定重定向适用于办公室加载项

我在我的Word插件中使用Microsoft.Bcl.Async,我的插件编译为exe(test_addin.exe)文件,从Microsoft Word作为程序集加载,当我直接启动可执行文件时,一切正常,但是当我从Word运行它时,我收到一个错误,说它无法加载Systems.Threading.Tasks程序集。

Could not load file or assembly System.Threading.Tasks... 

看起来它与绑定重定向有关,当我尝试从Word运行应用程序时,它希望配置文件位于'C:\Program Files (x86)\Microsoft Office\Office15'文件夹中,并命名为WINWORD.exe.config ,遗憾的是不可能,因为我可能无权访问该文件夹。

我的test_addin.exe.config文件:

                   

我已经尝试将AppDomain.CurrentDomain.SetupInformation.ConfigurationFile设置为指向正确的路径,但它似乎没有帮助,还有其他方法使其适用于Office加载项吗?

我通过实现自定义AssemblyResolve处理程序解决了这个问题

  Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs e) { try { if (!e.Name.ToLower().StartsWith("system.threading.tasks")) return null; AddoDebug.Instance.WriteLine("Assembly_Resolve"); var assemblyDetail = e.Name.Split(','); var assemblyBasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var assembly = Assembly.LoadFrom(assemblyBasePath + @"\" + assemblyDetail[0] + ".dll"); return assembly; } catch (Exception ex) { AddoDebug.Instance.WriteLine("An exception occurred: " + ex, ADDOTraceStatus.Exception); return null; } } 

但我不确定这是一个很好的解决方案,所以我将这个问题留给新答案。