使绑定重定向适用于 Office 加载项

2023-11-24

我在 Word 插件中使用 Microsoft.Bcl.Async,我的插件被编译为 exe (test_addin.exe) 文件,该文件从 Microsoft Word 作为程序集加载,当我直接启动可执行文件时,一切正常,但是当我从 Word 运行它时,我收到一条错误消息,指出它无法加载系统.线程.任务集会。

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

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

我的 test_addin.exe.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

我尝试过设置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;
        }
    }

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使绑定重定向适用于 Office 加载项 的相关文章

  • 静态只读字符串数组

    我在我的 Web 应用程序中使用静态只读字符串数组 基本上数组有错误代码 我将所有类似的错误代码保存在一个数组中并检查该数组 而不是检查不同常量字符串中的每个错误代码 like public static readonly string m
  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 这个可变参数模板示例有什么问题?

    基类是 include
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • GCC 的“-Wl,option”和“-Xlinker option”语法之间有区别吗?

    我一直在查看一些配置文件 并且看到它们都被使用 尽管在不同的体系结构上 如果您在 Linux 机器上使用 GCC 将选项传递给链接器的两种语法之间有区别吗 据我所知 阅读 GCC 手册时 他们的解释几乎相同 From man gcc Xli
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析

随机推荐

  • Visual Studio 2012:编译器设置(可以使用 SDK 中的编译器,例如 VC++2008-编译器 VC++ 2010-编译器)

    我真的很喜欢 Visual Studio 2012 因为它的 GUI 非常快速且灵活 问题是我需要 VS2010 的 VC 编译器 是否可以在 VS 2012 中设置旧的编译器 SDK 我真的很讨厌 VS 2010 Gui 因为它真的很慢而
  • eclipse 在此持久性单元中定义名为“ID_GENERATOR”的重复生成器

    我目前遇到了这个问题 而在迁移到 eclipse jee kepler 之前我没有遇到过这个问题 我拥有的 我有 2 个类 基础类和扩展类 public abstract class BaseEntity implements Serial
  • 如何将数组从 Asp.net 服务器端传递到客户端的 Javascript 函数

    如何将在服务器端创建的数组传递到客户端以通过 Javascript 进行操作 任何伪代码都会有所帮助 您需要将其作为 JavaScript 数组声明嵌入到页面中 有多种方法可以做到这一点 但通常意味着将数组转换为写入页面的文本 可能使用 C
  • Swift 中的反向范围

    有没有办法在 Swift 中使用反向范围 例如 for i in 5 1 do something 是一个无限循环 在较新版本的 Swift 中 该代码可以编译 但在运行时会出现错误 致命错误 无法形成 upperBound 我知道我可以使
  • 如何在 iOS 14 Home Widget 中显示当前时间(实时)

    我正在为 ios 14 Home Widget 开发一个应用程序 在显示当前时间 数字时钟 时遇到一个问题 即该小部件没有每秒更新 众所周知 苹果不允许每秒触发时间线 有没有其他方法可以实时更新显示当前时间 我尝试了这些方法 但没有按预期工
  • 以编程方式访问 JPA

    是否可以访问其中的信息
  • 如何在 Istio 中设置 AWS ALB 而不是 ELB?

    我正在尝试在 Kubernetes AWS 中设置 ALB 负载均衡器而不是默认的 ELB 负载均衡器 负载均衡器必须连接到 istio ingressgateway 我寻找解决方案 只找到了one 但提到的 istio 版本是 V1 现在
  • Chartjs - 保持 2 个图表并排对齐

    杰斯小提琴 http jsfiddle net 8gvkmLxL 我有 2 个彼此相邻的条形图 我希望它们相对于 x 轴对齐 我很难实现这一点 因为图形高度根据标签的长度而变化 请参阅 jsfiddle 链接 保持实际图表高度一致性的最佳方
  • Typescript/Angular/ES6:我终于可以让 `hasOwnProperty()` 死在 for 循环中了吗?

    我一直不喜欢检查的必要性hasOwnProperty 当在 javascript 中循环对象时 for var key in object if object hasOwnProperty key continue Now I can do
  • 如何使用 Istio 创建内部网关?

    目前 我们成功设置 Istio 来创建几个入口网关 例如 api example com 和 app example com 将流量路由到具有目的地规则等的各种服务 除此之外 我们还愿意使用Istio 的功能仅限内部 API 但我们不确定如
  • 相当于内联输出参数声明?

    搜索了一下 找不到这个 我正在寻找 C 7 内联输出变量声明的 VB Net 等效项 例如 MethodCall arg1 out string arg2 等效的 VB Net 版本中是否存在这样的东西 恐怕重复的提议不太正确 但我已将海因
  • 如何在 iOS 上的 Swift 4 中以编程方式重新启动应用程序?

    我有问题 更改语言后 我想重新启动我的应用程序 所以我想收到一条带有文本 的警报消息 您想重新启动应用程序以更改语言吗 Yes No 如果用户按 是 我该如何重新启动应用程序 我的解决方案 let alertController UIAle
  • 在 TypeScript 中引用没有名称的类以在子类中使用不同的静态方法

    在 ES6 中 您可以通过以下方式引用静态方法this constructor class MainClass static info return This is some information constructor this inf
  • Android USB主机:异步中断传输

    我正在尝试连接 USB 设备 我自己构建 来与我的开发板 ODROID X 进行通信 不幸的是 就异步通信而言 例子很少 我在中断驱动的数据交换方面遇到了一些问题 如何使用异步中断模式建立连接 在一个方向上 传输是可能的 但在两个方向上都不
  • 控制相机纵向拍照不会旋转最终图像

    我试图控制 Android 相机在肖像应用程序中拍照 但当我保存照片时 它是横向的 我将图像旋转了 90 度setCameraDisplayOrientation 方法 但是不起作用 然后我找到了这个post但是TAG ORIENTATIO
  • T4 模板 - 适合生成 C++ 代码吗?

    是否存在任何问题可能导致 MS 的 T4 模板代码生成系统不适合生成 C 代码 答案有点长 但我想有些人可能会觉得有趣 我想说 T4 非常适合生成 C 有些人可能会反驳说 C 已经有了进行元编程的工具 例如 预处理器 使用预处理器和高阶宏
  • C99 'restrict' 关键字的实际用法?

    我正在浏览一些文档和问题 答案 并看到提到了它 我读了一个简短的描述 指出这基本上是程序员的承诺 指针不会被用来指向其他地方 谁能提供一些值得实际使用的实际案例 restrict表示指针是唯一访问底层对象的东西 它消除了指针别名的可能性 使
  • 什么是热观测值和冷观测值?

    我看了视频我知道一般原则 即使没有人订阅 热也会发生 冷会 按需 发生 此外 Publish 将冷数据转换为热数据 Defer 将热数据转换为冷数据 但我仍然觉得我错过了细节 以下是我想回答的一些问题 您能为这些术语给出一个全面的定义吗 在
  • 在线图像编辑器 - Ajax 还是 Flex / Flash?

    我正在制定一个计划 构建一个只有一些基本功能的在线图像编辑器 它 显然 应该包含一个画布工作区并支持以下功能 1 从您的计算机上传图像或提交链接2 调整图像大小 通过拖动角 3 旋转和翻转4 拖动 移动 平移5 分层 如果画布上有多个图像
  • 使绑定重定向适用于 Office 加载项

    我在 Word 插件中使用 Microsoft Bcl Async 我的插件被编译为 exe test addin exe 文件 该文件从 Microsoft Word 作为程序集加载 当我直接启动可执行文件时 一切正常 但是当我从 Wor