Xamarin,便携式多平台解决方案,便携式项目部分

对于MD5哈希,我创建了md5类。添加到项目参考PCLCrypto.dll。



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PCLCrypto;
using static PCLCrypto.WinRTCrypto;


namespace WCHSBMobile
{
    public static class md5
    {
        public static string GetMD5hash(string data)
        {
            //string result = data;
            IHashAlgorithmProvider algoProv = PCLCrypto.WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Md5);
            byte[] dataB = Encoding.UTF8.GetBytes(data);
            byte[] dataHash = algoProv.HashData(dataB);
            var hex = new StringBuilder(dataHash.Length * 2);
            foreach (byte b in dataHash)
            {
                hex.AppendFormat("{0:x2}", b);
            }
            return hex.ToString();
            //return result;
        }

    }
}





在这条线上的android上进行测试时,出现运行时错误IHashAlgorithmProvider algoProv = PCLCrypto.WinRTCrypto.HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Md5);我得到错误
PCLCrypto.NotImplementedByReferenceAssemblyException:这是一个参考程序集,不包含实现。确保将PCLCrypto软件包安装到您的应用程序中,以便在运行时使用平台实现程序集。
我该怎么办?你能给我建议任何解决方案吗?
谢谢

最佳答案

我在Xamarin应用程序中遇到了这个问题。如dylan-s和thomas的评论中所建议,请尝试以下步骤:


卸载应用
确保将PCLCrypto Nuget软件包安装在Android项目以及可移植项目中。

关于xamarin - PCLCrypto.dll运行时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38478851/

10-11 22:40