微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

x86 32 位支持 Accord.video.FFMPEG

如何解决x86 32 位支持 Accord.video.FFMPEG

协议版本 3.8.2

我正在使用 Accord、Accord.video、Accord.video.FFMPEG Dll 来捕获屏幕,我的代码被编译为 ANYcpu,在 64 位机器上一切正常,但在 32 位机器上我遇到了问题以下是我得到的例外。

Exception occurred while loading the assemblies Could not load file or assembly 'Accord.Video.FFMPEG.dll' or one of its dependencies.  is not a valid Win32 application. (Exception from HRESULT: 0x800700C1),at System.Reflection.RuntimeAssembly.nLoadFile(String path,Evidence evidence)
   at System.Reflection.Assembly.LoadFile(String path)
   at ProHance.ProbeTray.Program.MPvcUlyJUg(Object,ResolveEventArgs  )

解决方法

  1. 将库项目添加到解决方案中。

  2. 将 nuget 包 Accord.Video.ffmpeg(或 x64)添加到库项目 (不要更改平台目标,如果您的环境是 x64,请使用 x64 版本否则使用 x86)

  3. 将这些引用的本地副本更改为虚假的 Accord,Accord.Video,Accord.Video.ffmpeg

  4. 复制packages\Accord.Video.FFMPEG.3.8.0\build+中的所有文件 Accord,Accord.Video.ffmpeg 到您的输出文件夹 像 bin\ffmpeg

  5. 将这些行放在 Application_Start 中。

var path = Thread.GetDomain().BaseDirectory + "bin\ffmpeg\";
Environment.SetEnvironmentVariable("PATH",Environment.GetEnvironmentVariable("PATH") + ";"+ path);
AppDomain.CurrentDomain.AppendPrivatePath(path);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。