System.IO.FileNotFoundException:无法加载文件或程序集“Interop.iTunesLib,版本= 1.13.0.0,文化=中性,PublicKeyToken = null”

问题描述 投票:0回答:1

我正在尝试使用 C# 访问 iTunes。 步骤是用 C# 编写一个 dll,并使用 Overwolf API 通过 TypeScript 执行它。

我做了什么

生成.dll

我基于this介绍了iTunesLib。抱歉日本文章..

我在 Visual Studio 中创建了一个 ClassLibrary 项目,并在 Windows 窗体应用程序中对其进行了测试。这有效。

然后构建ClassLibrary并生成.dll文件。

namespace MyNamespace{
  public class MyClass {
    public void myFunction() {
      iTunesLib.iTunesAppClass iTunesApp = new iTunesLib.iTunesAppClass();
      // do something with iTunesApp ....
    }
  }
}

在 Typescript 中调用 C# 函数

overwolf.extensions.current.getExtraObject("myNamespace", (result) => {
        
  if (result.success) {
    pluginInstance = result.object;
    pluginInstance.myFunction(); // Call C# function
  }
}

错误报告

错误:错误:无法使用 0 个参数在 AudioController 上执行 PauseITunes。详情:
System.Reflection.TargetIncationException:目标抛出异常 ---> System.IO.FileNotFoundException:无法加载文件或程序集“Interop.iTunesLib,Version = 1.13.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一部署应用程序时
其中 MyNamespace.MyClass.myFunction()


它在 Windows 窗体应用程序中工作,但为什么当我将其构建到 dll 中时它停止工作?该错误似乎发生在 iTunesLib 部分。

c# .net typescript dll itunes
1个回答
0
投票

正如 Heinz Siahaan 所说,我能够通过将

interop.iTunesLib.dll
放在同一层次结构中来解决问题。

非常感谢。

© www.soinside.com 2019 - 2024. All rights reserved.