强名称程序集(strong name assembly)——为程序集赋予强名称
???????? 引言:
???????????????? 在曾經(jīng)的項(xiàng)目開發(fā)中,在程序集中見到過一個后綴為*.snk的文件。當(dāng)時看這個文件的圖標(biāo)。感覺可能是企業(yè)內(nèi)部保護(hù)版權(quán)啥的一種方式。
? 一,強(qiáng)程序集攻克了哪些問題?
1,唯一標(biāo)識一個程序集
2,放置程序集被仿冒和被篡改。
3,能夠部署到全局程序集緩存(GAC:GlobalAssembly Cache)中;在將強(qiáng)名稱程序集不熟在GAC其中以后,強(qiáng)名稱程序集也能夠稱為共享程序集(shared assembly)
二,強(qiáng)名稱與GAC
????????
強(qiáng)名稱:
定義了一個規(guī)則,不單單以文件名稱來區(qū)分程序集,這個規(guī)則就是強(qiáng)名稱。
?
GAC:
定義一個特殊的目錄,這個目錄能夠識別這樣的規(guī)則。而且同意文件名稱同樣的文件存在,這個特殊的目錄就是GAC。
三,為程序集賦予強(qiáng)名稱
???????? 打開VS 開發(fā)者命令提示工具:
????????????? 首先,我們來創(chuàng)建公鑰私鑰文件。使用 sn -k命令:
?????????????
???????? 然后我們會發(fā)如今此目錄下創(chuàng)建LHC.snk成功:
???????????
須要注意的地方:
1。每次調(diào)用sn時候,創(chuàng)建的私鑰/密鑰對文件都不同樣,不僅自己的計(jì)算機(jī)每次生成的不同,其它全部計(jì)算機(jī)生成的也不同樣。
2。關(guān)于這個文件的命名。假設(shè)是個人。能夠以自己的名字命名。假設(shè)是團(tuán)隊(duì)。。組織火公司,能夠以組織名稱來命名。
3,在大多數(shù)情況下,個人和組織僅僅須要一個snk文件就能夠了。以后創(chuàng)建強(qiáng)名稱的時候,都使用這個snk文件。因?yàn)闀褂?/span>snk文件的私鑰對強(qiáng)名稱程序集進(jìn)行簽名,因此這個文件必須嚴(yán)密保護(hù)。
?
上面創(chuàng)建的LHC.snk里面既包括公鑰。也包括私鑰。
公鑰能夠使用sn.exe查看。可是私鑰無法查看。
??? 假設(shè)須要查看公鑰的話。能夠使用 sn -p命令:
????
????? 之后使用sn -tp命令查看*.pk文件:
?????
???? 創(chuàng)建好這個公鑰私鑰文件之后,我們就能夠使用它來標(biāo)識程序集的唯一性了。
? ?? 在須要設(shè)置的程序集中,為此程序集設(shè)置簽名屬性:
????????
?????? 保存之后再觀察此程序集,會發(fā)現(xiàn)多出來一個文件:
??????
轉(zhuǎn)載于:https://www.cnblogs.com/yfceshi/p/6938230.html
總結(jié)
以上是生活随笔為你收集整理的强名称程序集(strong name assembly)——为程序集赋予强名称的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里笔试-二叉树由前序遍历和中序遍历推导
- 下一篇: Linux 系统版本查询