对 Accord.video.FFMPEG 的 x86 32 位支持
Posted
技术标签:
【中文标题】对 Accord.video.FFMPEG 的 x86 32 位支持【英文标题】:x86 32 bit support for Accord.video.FFMPEG 【发布时间】:2021-05-28 20:58:01 【问题描述】:雅阁 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】:将库项目添加到解决方案中。
将 nuget 包 Accord.Video.ffmpeg(或 x64)添加到库项目 (不要更改平台目标,如果您的环境是 x64,请使用 x64 版本,否则使用 x86)
将这些引用的本地副本更改为错误协议 ,Accord.Video ,Accord.Video.ffmpeg
复制 packages\Accord.Video.FFMPEG.3.8.0\build + 中的所有文件 Accord ,Accord.Video , Accord.Video.ffmpeg 到您的输出文件夹 像 bin\ffmpeg
将这些行放在 Application_Start 中。
var path = Thread.GetDomain().BaseDirectory + "bin\ffmpeg\"; Environment.SetEnvironmentVariable("PATH", Environment.GetEnvironmentVariable("PATH") + ";"+ path); AppDomain.CurrentDomain.AppendPrivatePath(path);
【讨论】:
以上是关于对 Accord.video.FFMPEG 的 x86 32 位支持的主要内容,如果未能解决你的问题,请参考以下文章