我试图在Ubuntu上使用SourceAFIS 1.7.0和mono,但是会出现一些错误。
1
$ mono DatabaseAnalyzer.exe
扫描文件夹TestDatabase
运行提取器基准
未处理的异常:System.IO.FileNotFoundException:无法加载 文件或汇编' PresentationCore,版本= 4.0.0.0,文化=中立, 公钥= 31bf3856ad364e35'或其中一个依赖项。
文件名:' PresentationCore,版本= 4.0.0.0,文化=中性, 公钥= 31bf3856ad364e35'
在DatabaseAnalyzer.DatabaseAnalyzer.RunExtractorBenchmark() < 0x40674790 + 0x00033> in:0在DatabaseAnalyzer.DatabaseAnalyzer.RunMatcherBenchmark()< 0x40674600 + 0x000eb> in:0
在DatabaseAnalyzer.DatabaseAnalyzer.Run()< 0x40642a40 + 0x000bf>在 :0
在DatabaseAnalyzer.DatabaseAnalyzer.Main(System.String [] args) < 0x4063bd50 + 0x00037> in:0
[ERROR]致命的未处理的异常:System.IO.FileNotFoundException: 无法加载文件或程序集' PresentationCore,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个 依赖。
文件名:' PresentationCore,版本= 4.0.0.0,文化=中性, 公钥= 31bf3856ad364e35'在 DatabaseAnalyzer.DatabaseAnalyzer.RunExtractorBenchmark()< 0x40674790 + 0x00033> in:0在DatabaseAnalyzer.DatabaseAnalyzer.RunMatcherBenchmark()< 0x40674600 + 0x000eb> in:0
在DatabaseAnalyzer.DatabaseAnalyzer.Run()< 0x40642a40 + 0x000bf>在 :0
在DatabaseAnalyzer.DatabaseAnalyzer.Main(System.String [] args) < 0x4063bd50 + 0x00037> in:0
根据https://sourceforge.net/p/sourceafis/discussion/1051112/thread/dd8df289/#a006,应该在这里应用WinForms而不是WPF,并使用位图类来替换WPF的bitmapimage类,但我不知道如何准确地完成它。有没有人有过这样的经历?
这是原始函数使用的WPF位图类
static MyPerson Enroll(string filename, string name)
{
Console.WriteLine("Enrolling {0}...", name);
// Initialize empty fingerprint object and set properties
MyFingerprint fp = new MyFingerprint();
fp.Filename = filename;
// Load image from the file
Console.WriteLine(" Loading image from {0}...", filename);
BitmapImage image = new BitmapImage(new Uri(filename, UriKind.RelativeOrAbsolute));
fp.AsBitmapSource = image;
// Above update of fp.AsBitmapSource initialized also raw image in fp.Image
// Check raw image dimensions, Y axis is first, X axis is second
Console.WriteLine(" Image size = {0} x {1} (width x height)", fp.Image.GetLength(1), fp.Image.GetLength(0));
// Initialize empty person object and set its properties
MyPerson person = new MyPerson();
person.Name = name;
// Add fingerprint to the person
person.Fingerprints.Add(fp);
// Execute extraction in order to initialize fp.Template
Console.WriteLine(" Extracting template...");
Afis.Extract(person);
// Check template size
Console.WriteLine(" Template size = {0} bytes", fp.Template.Length);
return person;
}

$ mono SourceAFIS.FingerprintAnalysis.exe
无法加载入口点方法
如何通过更有意义的例外来解决这个问题?
答案 0 :(得分:1)
应该在这里应用WinForms而不是WPF并使用位图类 替换WPF的bitmapimage类,但我不知道该怎么做 究竟。有没有人有过这样的经历?
你知道怎么用C#语言编程吗?他们在该论坛中的意思是您需要将代码更改为不使用WPF库,而是使用Windows窗体UI工具包。
如果您尝试加载" PresentationCore"在运行时,这意味着它仍在尝试加载WPF。
答案 1 :(得分:0)
尝试安装mono-complete
包,例如
apt-get install mono-complete
相关:Mono, failing to open executable。
还要确保您已安装.NET Framework,例如使用winetricks
:
apt-get install winetricks
winetricks dotnet46
请参阅:Could not load file or assembly 'PresentationCore'。
PresentationCore是.NET 4
此外,您可以尝试以下suggestions:
配置身份验证,如下所示: