You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#生成DLL通过Overwolf调用时无法加载Interop.iTunesLib求助

问题

我尝试通过编写C# DLL并借助Overwolf API在TypeScript中调用的方式访问iTunes,具体操作如下:

已执行操作

  • 生成.dll文件
    • 引入iTunesLib并创建类库项目,在Windows Forms应用中测试功能正常
    • 生成的类库代码如下:
      namespace MyNamespace{
        public class MyClass {
          public void myFunction() {
            iTunesLib.iTunesAppClass iTunesApp = new iTunesLib.iTunesAppClass();
            // 对iTunesApp执行相关操作....
          }
        }
      }
      
  • 在TypeScript中调用C#函数:
    overwolf.extensions.current.getExtraObject("myNamespace", (result) => {
            
      if (result.success) {
        pluginInstance = result.object;
        pluginInstance.myFunction(); // 调用C#函数
      }
    }
    

错误报告

ERROR: Error: Failed to execute PauseITunes on AudioController with 0 arguments. details:

System.Reflection.TargetInvocationException: target threw an exception ---> System.IO.FileNotFoundException: Could not load file or assembly 'Interop.iTunesLib, Version=1.13.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies when deploying the application

Where MyNamespace.MyClass.myFunction()

该功能在Windows Forms应用中可正常运行,但打包为DLL后通过Overwolf调用就失效,错误出在iTunesLib相关部分,请问这是为什么?


解决方案

核心原因

Overwolf运行环境找不到iTunesLib对应的互操作程序集(Interop.iTunesLib.dll),导致加载失败。以下是具体分析和解决办法:

  1. 依赖程序集未一同部署
    Windows Forms测试时,Visual Studio会自动把依赖的Interop.iTunesLib.dll复制到输出目录,但打包Overwolf插件时,你只部署了自己写的MyNamespace.dll,没把依赖的互操作程序集一起放进插件目录。Overwolf加载你的DLL时找不到依赖文件,就会抛出FileNotFoundException。

  2. 启用互操作类型嵌入
    在Visual Studio中修改iTunesLib引用的属性,把**"嵌入互操作类型"设置为True**。这样编译时,Visual Studio会把iTunesLib的互操作代码直接嵌入到你的MyNamespace.dll里,不需要单独部署Interop.iTunesLib.dll。操作步骤:

  • 在类库项目的引用列表中找到iTunesLib
  • 右键选择「属性」
  • 将「嵌入互操作类型」改为True
  • 重新生成DLL
  1. 确保依赖文件路径正确
    如果不想嵌入互操作类型,必须把Interop.iTunesLib.dll和你的MyNamespace.dll放在同一个目录下,或者确保Overwolf的程序集搜索路径能找到它。Overwolf插件的部署目录需要包含所有依赖的程序集,不能只放自己的DLL。

  2. 检查平台位数兼容性
    iTunes的COM组件是32位的,如果你编译类库时用的是Any CPU或64位,可能会导致加载失败。确保你的C#类库编译目标平台设置为x86,和iTunes的位数匹配。


内容的提问来源于stack exchange,提问作者yolo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:30:32