C# 如何使SourceAFIS在Ubuntu上工作?

C# 如何使SourceAFIS在Ubuntu上工作?,c#,.net,winforms,ubuntu,mono,C#,.net,Winforms,Ubuntu,Mono,我试图在Ubuntu和mono上使用SourceAFIS 1.7.0,但出现了一些错误 一, $mono DatabaseAnalyzer.exe 扫描文件夹测试数据库 运行提取器基准 未处理的异常:System.IO.FileNotFoundException:无法加载 文件或程序集的PresentationCore,版本=4.0.0.0,区域性=中性, PublicKeyToken=31bf3856ad364e35'或其依赖项之一 文件名:“PresentationCore,版本=4.0.0

我试图在Ubuntu和mono上使用SourceAFIS 1.7.0,但出现了一些错误

一,

$mono DatabaseAnalyzer.exe

扫描文件夹测试数据库

运行提取器基准

未处理的异常:System.IO.FileNotFoundException:无法加载 文件或程序集的PresentationCore,版本=4.0.0.0,区域性=中性, PublicKeyToken=31bf3856ad364e35'或其依赖项之一

文件名:“PresentationCore,版本=4.0.0.0,区域性=中性, PublicKeyToken=31bf3856ad364e35'

在DatabaseAnalyzer.DatabaseAnalyzer.RunExtractorBenchmark()上 在:0中的DatabaseAnalyzer.DatabaseAnalyzer.RunMatcherBenchmark()处输入:0

在中的DatabaseAnalyzer.DatabaseAnalyzer.Run()处 :0

位于DatabaseAnalyzer.DatabaseAnalyzer.Main(System.String[]args) 年:0

[错误]致命的未处理异常:System.IO.FileNotFoundException: 无法加载文件或程序集的PresentationCore,版本=4.0.0.0, 区域性=中性,PublicKeyToken=31bf3856ad364e35'或其 依赖关系

文件名:“PresentationCore,版本=4.0.0.0,区域性=中性, PublicKeyToken=31bf3856ad364e35'在 DatabaseAnalyzer.DatabaseAnalyzer.RunExtractorBenchmark()位于0中的DatabaseAnalyzer.DatabaseAnalyzer.RunMatcherBenchmark()位于:0中

在中的DatabaseAnalyzer.DatabaseAnalyzer.Run()处 :0

位于DatabaseAnalyzer.DatabaseAnalyzer.Main(System.String[]args) 年:0

根据,这里应该应用WinForms而不是WPF,并使用bitmap类替换WPF的bitmapimage类,但我不知道如何确切地做到这一点。有人有这样的经验吗

这是WPF位图类使用的原始函数

静态MyPerson注册(字符串文件名、字符串名称)
{
WriteLine(“注册{0}…”,名称);
//初始化空指纹对象并设置属性
MyFingerprint fp=新的MyFingerprint();
fp.Filename=文件名;
//从文件中加载图像
WriteLine(“正在从{0}加载图像…”,文件名);
BitmapImage=新的BitmapImage(新的Uri(文件名,UriKind.RelativeOrAbsolute));
fp.AsBitmapSource=图像;
//上述fp.AsBitmapSource更新也初始化了fp.image中的原始图像
//检查原始图像尺寸,Y轴为第一,X轴为第二
WriteLine(“图像大小={0}x{1}(宽度x高度)”,fp.Image.GetLength(1),fp.Image.GetLength(0));
//初始化空的person对象并设置其属性
MyPerson=新MyPerson();
person.Name=姓名;
//为此人添加指纹
人。指纹。添加(fp);
//执行提取以初始化fp.Template
控制台.WriteLine(“提取模板…”);
Afis提取物(人);
//检查模板大小
WriteLine(“模板大小={0}字节”,fp.Template.Length);
返回人;
}
这里应该应用WinForms而不是WPF,并使用位图类 替换WPF的bitmapimage类,但我不知道如何做 确切地有人有这样的经验吗

你知道如何用C语言编程吗?他们在该论坛中的意思是,您需要将代码更改为不使用WPF库,而是使用Windows窗体UI工具包


如果在运行时尝试加载“PresentationCore”时出现异常,则表示它仍在尝试加载WPF。

请尝试安装
mono complete
软件包,例如

apt-get install mono-complete
相关:

另外,请确保已安装,例如使用
winetricks

apt-get install winetricks
winetricks dotnet46
请参阅:

PresentationCore是.NET 4


此外,您还可以尝试以下方法:

  • 在IIS中,尝试在应用程序池的高级设置中启用32位应用程序
  • 按如下方式配置身份验证:

    • 禁用匿名身份验证
    • 启用ASP.NET模拟
    • 启用Windows身份验证

mono的哪个版本、发行版和版本?我正在使用Ubuntu15.10 64位和mono 4.4.0。您是如何安装mono的?根据mono网站上的说明,我尝试更改“使用System.Windows.Media.Imaging;”代码中的“使用System.drawing”或“使用System.Windows.Forms”。问题是我不知道如何将基于WPF的类更改为基于Winfoms的类。然后您需要学习这些UI工具包API,我建议您使用它们创建一些示例程序,这将花费您几周的时间,非常简单