我想从视频中获取缩略图,在代码中一切都很好,但是当我构建 msi 文件并运行我的应用程序时,我收到错误消息:
Error getting video.System.IO.FileNotFoundException: Could not load
file or assembly 'MediaToolkit, Version=1.1.0.1, Culture=neutral,
PublicKeyToken=null' or one of its dependencies. The system cannot
find the file specified.
File name: 'MediaToolkit, Version=1.1.0.1, Culture=neutral,
PublicKeyToken=null'
当我尝试获取视频持续时间时,它发生了。
private TimeSpan GetDurationOfMediaFile(string filePath)
{
var inputFile = new MediaFile { Filename = filePath };
using (var engine = new Engine())
engine.GetMetadata(inputFile);
return inputFile.Metadata.Duration;
}
你应该缺少引用或 nuget 包。我不确定为什么编译器不警告你这一点。当假定某些内容在 GAC 中并且您的应用程序未下载它时,通常会发生类似的事情。检查 MediaToolkit 来自哪个命名空间/dll,并检查您的输出文件夹(bin/Release 或 Debug)是否存在。
将 nuget 添加到您的项目中:
Install-Package MediaToolkit -Version 1.1.0.1
请确保将此 nuget 添加到解决方案中的正确项目中。
我使用Wix创建了一个MSI文件,并且在项目中我还使用了.NSI 文件,我们在其中写入将用于创建它的 DLL 列表