我正在尝试使用 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 部分。