• [.NET]


    依据文档:

    https://msdn.microsoft.com/en-us/library/hh415055(v=vs.110).aspx

    虽然文档上给出了看似完整的步骤,但是如果按照上面的步骤,结果是失败的。而且文档的里的option还用错了。(-ac应该用-a, -ac是用于keypaircontainer)

    以下是一个完整的强签名迁移的sample:

    用于测试的代码,可以建一个console app,类似下面的例子:

    using System;
    
    using System.Reflection;
    
     
    
    namespace CLR6
    
    {
    
        class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
                Console.ReadLine("Hello world!");
    
            }
    
        }
    
    }

    按照Signing with SHA-2, with Key Migration的1~3步骤,生成

    IdentityKey.snk,SignatureKey.snk,IdentityPubKey ,sha256的SignaturePubKey.snk。

    然后用第四步的命令来获取AssemblySignatureKeyAttribute需要的两个参数,注意用-a而不是-ac:

    sn -a IdentityPubKey.snk IdentityKey.snk SignaturePubKey.snk

    生成的两个参数需要从控制台窗口拷贝到本地,可以存到text文件。

    在需要重签名的程序文件添加assembly标签,通常是把它放在AssemblyInfo.cs文件中:

    using System;
    
    using System.Reflection;
    
     
    
    [assembly: AssemblySignatureKeyAttribute("002400000c800000940000000602000000240000525341310004000001000100e3997384795973ec459c8ec80019bce59a2edb42dd069cc4f25037370f41e0d041eff3995d26ed28fa0610105ffee4c61992b64a79bfb3af07321eeea3c3c8b9b149efdd5c3ac2962e7ce0d416c5bb1637d438aeb09648f40db8d3d04081f554adf8ea1295b1344bfdde7ec48cae46bdd68f58aa00f4e37a289e55972446b9bc",
    
    "8f29590c4f363e4c468f12c324f5d8ce76887a6bb246dd3237204a8f3232d1284c5a3a74405f235715527b7bd4ff73cd17ee242b863a335cb55c368f6ae8f769d6374fa9daa850d9aed6f19c989b44ffd56a0d8088629962d0e66bf942b3d21a11f54ef5f2800b404a4cc63dcf6380186366caea7c2a8ce25a433767ea2f828e")]
    
     
    
    namespace CLR6
    
    {
    
        class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
            }
    
        }
    
    }

    然后运行延迟签名和fully sign命令。这样一个加强了的强命名程序集产生了,用ildasm看元数据的话, 很清楚的能看到AssemblySignatureKeyAttribute被编译器插入到程序集中了。

  • 相关阅读:
    ndarray转PIL
    215. 数组中的第K个最大元素
    pytorch的分布式
    剑指 Offer 06. 从尾到头打印链表
    最长公共子序列
    剑指 Offer 57
    剑指 Offer 59
    剑指 Offer 48. 最长不含重复字符的子字符串
    Python线程池
    Python 常用内置函数
  • 原文地址:https://www.cnblogs.com/fred-bao/p/4566887.html
Copyright © 2020-2023  润新知