Windows 8 使用Neuro technology SDK在Windows 8 Metro应用程序中获取指纹扫描仪列表时发生TypeInitializationException

Windows 8 使用Neuro technology SDK在Windows 8 Metro应用程序中获取指纹扫描仪列表时发生TypeInitializationException,windows-8,windows-runtime,microsoft-metro,windows-store-apps,biometrics,Windows 8,Windows Runtime,Microsoft Metro,Windows Store Apps,Biometrics,我正在使用。我已从dotNET_Portable文件夹添加了所有受支持的DLL。我已将任何CPU更改为x64。但我在初始化NDeviceManager对象时得到了execption。我的代码如下。谁能告诉我我做错了什么 System.TypeInitializationException:的类型初始值设定项 “Neurotec.Devices.NDeviceManager”引发异常。例外情况 消息:“Neurotec.Devices.NDeviceManager”的类型初始值设定项 抛出了一个异

我正在使用。我已从dotNET_Portable文件夹添加了所有受支持的DLL。我已将任何CPU更改为x64。但我在初始化NDeviceManager对象时得到了execption。我的代码如下。谁能告诉我我做错了什么

System.TypeInitializationException:的类型初始值设定项 “Neurotec.Devices.NDeviceManager”引发异常。例外情况 消息:“Neurotec.Devices.NDeviceManager”的类型初始值设定项 抛出了一个异常。InnerException:无法加载DLL“NDevices”: 找不到指定的模块。(HRESULT的例外情况: 0x8007007E)


除了dotNET_可移植dll之外,您还需要从Bin\Win64_x64(或Bin\Win32_x86,取决于您的目标平台)添加本机库NDevices.dll、NCore.dll、NMedia.dll和其他依赖项。请参考图片,了解如何执行此操作:


WinRT?这似乎是一个不受支持的环境(请参阅)。我询问了他们的支持团队,他们告诉我试用SDK有“dotNET_Portable”文件夹,其中包含支持x86和x64 WinRT而不是ARM WinRT的DLL。基于此,您可能在PCL或WinRT项目中缺少作为参考的驱动程序DLL。它进一步建议您检查并跟踪它是哪个DLL。不,我不认为我缺少任何模块。因为我正在关注它的Winform应用程序。我添加了与WinForm应用程序相同的所有DLL(仅限名称)。我需要复制到哪里?当我尝试添加这些DLL的引用时,我得到一个错误,即“它不是有效的程序集或COM组件”。我是否需要使用“dotNET_Portable”或“Bin\Win64_x64或Bin\Win32_x86”中的DLL。我正在创建Windows 8 metro应用程序,而不是WinForm或WPF应用程序。您需要使用dotNET_Portable中的DLL(您可能正确使用了它,因为它们与任何其他.NET程序集类似),还需要使用本机DLL,它们应该作为内容添加到项目中(请参阅编辑的答案,了解如何在Visual Studio中完成此操作的屏幕截图)。
using Neurotec.Devices;

private NDeviceManager _deviceMan;

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    _deviceMan = new NDeviceManager(NDeviceType.FingerScanner, true);
}

private void btnRefreshScannerList_Click(object sender, RoutedEventArgs e)
{
    var Scanners = _deviceMan.Devices;
    //TODO:
}