<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
強名稱是一個由程式集的標識組成並通過公鑰和數位簽章(針對該程式集生成)加強的名稱,其中的標識包括程式集的簡單文字名稱、版本號和區域性資訊。
由於程式集清單包含構成程式集實現的所有檔案的檔案雜湊,因此只對程式集中包含程式集清單的一個檔案生成數位簽章就足夠了。強名稱相同的程式集應該是相同的。
通過簽發具有強名稱的程式集,您可以確保名稱的全域性唯一性。強名稱還特別滿足以下要求:
注意:強名稱的應用程式只能參照強名稱的dll,不能參照未強名稱的dll,但是未強名稱的dll可以參照強名稱的dll。
上面我們講了什麼是強簽名,以及強簽名的好處,下面我們來看看如何給應用程式設定強名稱。
開啟vs tool command,如下圖所示:
然後進入要設定強名稱的dll檔案所在的路徑,使用下面的命令生成簽名公鑰:
sn -k StrongName.snk
如下圖所示:
將公鑰加入專案中,並設定專案屬性,設定簽名公鑰:
最後重新生成專案即可。
如果專案中參照了其它第三方的dll檔案,而且還沒有原始碼,並且此dll檔案是沒有強名稱的程式集,則在編譯時會出現類似“程式集生成失敗--參照的程式集XXX沒有強名稱”。
比如我在程式中使用到了Dapper,而Dapper是沒有強名稱的,所以生成的時候報錯了,如下圖所示:
這時我們就需要把Dapper變成有強名稱的程式集。
我們這裡以VS 2012為例開啟SDK命令提示視窗,如下圖所示:
然後需要進入Dapper.dll檔案所在的目錄:
使用下面的命令生成一個隨機的金鑰對。
sn -k Dapper.snk
如下圖所示:
使用下面的命令反編譯目標程式集,該指令會反組合該dll並生成Dapper.il,如果該dll含有嵌入的resource,則會有Dapper.res檔案產生,並有相應的嵌入資原始檔產生。
ildasm Dapper.dll /out=Dapper.il
如下圖所示:
使用下面的命令重新編譯Dapper.dll,然後會附帶強命名引數
ilasm Dapper.il /dll /resource=Dapper.res /key=Dapper.snk /optimize
如下圖所示:
這樣就表示編譯成功了。
編譯成功以後,我們使用下面的命令來驗證重新編譯後的dll檔案是否帶有強名稱
sn -v Dapper.dll
如下圖所示:
這就表示重新編譯後的dll檔案有了強名稱。
編譯成功以後,會在目錄下面生成這麼幾個檔案:
可以看到:Dapper.dll這個檔案是最新生成的,我們在專案裡面重新參照上面新編譯的Dapper.dll檔案,然後重新編譯專案:
可以看到,這時就不會報Dapper.dll沒有強名稱的錯誤了。其它沒有強名稱的dll檔案也使用同樣的方式進行處理。
到此這篇關於.Net解決參照程式集沒有強名稱報錯的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45