我正在使用Aforge.net框架来完成图像处理工作。 我已经添加了' AForge.Video.FFMPEG.dll'作为对我项目的尊重。 我正在使用VS2012和32位构建目标。 当Buiding我得到
System.IO.FileNotFoundException was unhandled
HResult=-2147024770
Message=Could not load file or assembly 'AForge.Video.FFMPEG.dll' or one of its dependencies. The specified module could not be found.
Source=VideoReadere
FileName=AForge.Video.FFMPEG.dll
FusionLog=""
StackTrace:
at VideoReadere.Form1..ctor()
at VideoReadere.Program.Main() in c:\Users\Prabad\Documents\Visual Studio 2012\Projects\VideoReadere\VideoReadere\Program.cs:line 19
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
我的代码是发生异常
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VideoReadere
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//here below line give exception
Application.Run(new Form1());
}
}
}
答案 0 :(得分:11)
您需要将DLL从“Externals \ ffmpeg \ bin”复制到AForge.Video.FFMPEG.dll位置,并且可能需要安装Microsoft Visual C ++ Redistributable。
答案 1 :(得分:3)
我知道它有点晚了,但我希望我的回答有助于某人。 我有这个问题,这让我有点困难。 这是它对我有用的方式:
就是这样。这对我有用,我发布了我的应用程序,它在Windows平板电脑上工作。 干杯
答案 2 :(得分:2)
试试这个
检查项目目标是否为x86,因为程序集在64中不起作用。然后检查FFMPEG dll是否在应用程序的同一目录中。
答案 3 :(得分:0)
试试这个工具:Dependency Walker 它节省了我的时间几次。
编辑: 对不起,我看到上次评论太晚了。
答案 4 :(得分:0)
我通过在发布模式下重建项目解决了这个问题(我使用Visual Studio 2013)
答案 5 :(得分:0)
我尝试了所有推荐的解决方案,但没有一个适用于我,当我使用dependencywalker时,我注意到该库缺少文件(版本2.2.5)。所以我下载了以前的2.2.4版本,它对我来说很好。
答案 6 :(得分:0)
为了修复此错误,我将目标CPU更改为X86以匹配引用的Chilkat-dll组件的体系结构。对于其他dll,必须选择与dll组件的体系结构匹配的项目的正确目标CPU。错误将得到解决。右键单击项目名称&gt;属性&gt;编译&gt;目标CPU - &gt;你会来到Target CPU。
答案 7 :(得分:0)
这对我有用:
useLegacyV2RuntimeActivationPolicy="true"
添加到App.Config
AForge.Video.dll
,AForge.Video.FFMPEG.dll
\AForge.NET Framework-2.2.5\Externals\ffmpeg\bin *.dlls