gpt4 book ai didi

C# 使用 MediaInfo.dll 发布应用程序

转载 作者:行者123 更新时间:2023-12-02 22:11:39 27 4
gpt4 key购买 nike

我已经构建了一个程序,它将使用 MediaInfo.dll 读取 mkv 文件的一些视频和音频信息。

程序在从源代码运行时运行完美,dll 位于 bin 文件夹中。

现在我想发布我的应用程序并能够继续使用它。不再找到 MediaInfo.dll 库。我尝试将它放在 C:\WIndows\C:\Windows\system32 中,但没有成功。如果我运行安装程序(发布后),程序将安装在同一位置(我不想要这个,但这是另一个问题)。我也尝试将 dll 放入该文件夹中。

给我错误的代码是:

try{
Handle = MediaInfo_New();
}
catch (Exception ex){
Handle = (IntPtr)0;
Console.Out.WriteLine(ex.ToString());
}

错误抛出是 System.BadImageFormatExceptionSystem.DllNotFoundException: Unable to load DLL 'MediaInfo.dll'

知道在哪里放置 dll 吗?

最佳答案

您需要将 DLL 部署到您复制 EXE 的同一目录。

您遇到 BadImageFormatException 问题并且看不到 c:\windows\system32 工作,因为您正在将程序部署在启动 64 位版本 Windows 的机器上。但是,您的程序无法在 64 位模式下运行,您依赖于 32 位 native 代码。您需要通过强制您的程序在 32 位模式下运行来解决这个问题。右键单击您的 EXE 项目,属性,构建选项卡,将平台目标设置更改为 x86。将 DLL 复制到 Windows 目录是一个非常糟糕的主意,但在这样的机器上它是 c:\windows\syswow64。 始终支持本地部署,与 EXE 相同的目录。

如果在此之后您仍然遇到 DllNotFoundException 问题,那么可能的问题是 MediaInfo.dll 本身依赖于另一个 DLL。这很常见,存储 C 运行时的 DLL 是一种非常常见的依赖项。如果您不知道可能是什么 DLL,那么您可以使用 SysInternals 的 ProcMon 实用程序。您会看到程序正在搜索 DLL 但找不到。

关于C# 使用 MediaInfo.dll 发布应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15184713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com