我试图在UWP应用程序中使用v4 of pcsc sharp库。
我理解v4,pcsc-sharp现在使用的是UWP支持的.net标准2.0。
好消息是我们能够传输CommandApdu并读取ISO7816智能卡的公共数据。坏消息是,这似乎只在调试模式下工作,并且在发布模式下运行时,我们会得到以下错误:
异常详细信息 {System.TypeLoadException:此方法中未解析的P/Invoke方法'winscard.dll!SCardEstablishContext‘。有关详细信息,请在生成警告中查找此方法。 构建警告 警告MCG0007:未解析的P/Invoke方法'winscard.dll!SCardSetAttrib‘,用于方法' System.Int32,System.Byte[],System.Int32’。调用此方法将在运行时引发异常。 请确保P/Invoke指向UWP应用程序中允许的Windows,或者是包的一部分的本机DLL。如果您的P/Invoke由于某些原因不能满足这些要求,请使用[DllImport(ExactSpelling=true) ]表示您理解使用非UWP API的含义。
你是怎么解读这个的?我是不是想在这里做不可能的事?
顺便说一句,我尝试在调试模式下启用.net本机工具链。这就是我是如何得到这些异常细节的。我还尝试在x64和x86模式下运行,但这两种方式都无法运行。只有在项目属性中没有签入.net本机工具链时,它才能在调试模式下工作。
根据错误,我们必须执行DllImport来调用这些方法,但是在pcsc-sharp的代码中,我们已经在我们试图调用的方法上导入了所有的Dll。所以,为什么它仍然给我们这些错误,这是没有意义的。
发布于 2018-03-14 20:33:48
不幸的是,UWP目前不支持WinScard.dll。如果SmartCard API中缺少功能,您可以通过UserVoice或反馈中心发送反馈。
https://stackoverflow.com/questions/49281451
复制相似问题