1. 程式人生 > >關於程式集生成失敗-引用的第三方DLL沒有強名稱的解決辦法

關於程式集生成失敗-引用的第三方DLL沒有強名稱的解決辦法

          如果一個Assembly希望封裝成為ActiveX/COM元件,那麼它必須擁有強名(Strong Name),也就是說在編譯的時候需要指定SNK(Strong Name Key)。但是當一個Assembly如果以擁有強名的方式編譯的話,它又要求所有自身所引用的其他Assembly都必須擁有強名,否則不能夠成功編譯。這時可以使用按照以下方式來建立或重建一個名稱程式集。

首先無論我們有需要一個金鑰對(以VS2008為例):

1、執行在“開始選單”-“程式”-“Microsoft Visual Studio 2008”-“Visual Studio Tools”-“Visual Studio 2008命令提示”(使用這一命令列工作才能能任意路徑下執行VS命令列工具);

2、建立一個強名稱程式集金鑰檔案檔案

執行命令C:\sn -k keypair.snk

3、為類庫繫結金鑰檔案

      (1)a. 如果你有要引用的類庫的原始碼,可以在類庫專案中的AssemblyInfo.cs原始檔中加入如下面的屬性:
                  [assembly:AssemblyKeyFile("C:\keypair.snk")]

      (如果有原始碼的情況下,也可以直接使用專案配置來使類庫專案直接生成並繫結金鑰對。配置如:右擊“類庫專案”->“屬性”->“簽名”選項卡->選擇“為程式集簽名”複選框->“選擇強名稱金鑰檔案(K):”下拉框->“新建”或“瀏覽”選擇一個已存在的金鑰檔案。)

b. 生成專案即可得到擁有強名稱的型別庫

      (2)如果你只有第三方的類庫(xxxxxx.dll)檔案而沒有原始碼專案的話,需要繼續做如下操作。

               a. 使用類庫檔案獲取微軟中間語言(MSIL)原始碼檔案。

               C:\>ildasm xxxxxx.dll /out:xxxxxx.il

               b. 使用MSIL原始碼檔案(xxxxxx.il)和新生成的(keypair.snk)金鑰檔案建立新的程式集類庫檔案

                C:\>ilasm xxxxxx.il /dll /key=keypair.snk

相關推薦

關於程式生成失敗-引用第三方DLL沒有名稱解決辦法

          如果一個Assembly希望封裝成為ActiveX/COM元件,那麼它必須擁有強名(Strong Name),也就是說在編譯的時候需要指定SNK(Strong Name Key)。但是當一個Assembly如果以擁有強名的方式編譯的話,它又要求所有自身

Asp.net中簽名dll:引用程式沒有名稱解決辦法

本文呢,意在和大家共同學習一下如何對自己的Dll檔案實現強簽名,在一定程度上防止別人反編譯和破解,具體為專案新增強名稱方法如下三步走: 1.右鍵單擊專案,開啟屬性視窗; 2.在屬性窗口裡選擇《簽名》標籤,選中為程式集簽名的選項,在下拉列表裡選擇新建,如下圖所示:  

【轉】引用程序沒有名稱解決辦法

密鑰 新的 tro 進行 arch 隨機 引用 width 其他 原文地址:https://www.cnblogs.com/tearer/archive/2010/09/01/1814655.html 為項目添加強名稱方法:1.右鍵單擊項目,打開屬性窗口;2.在屬性

程序生成失敗 -- 引用的程序“ThoughtWorks.QRCode”沒有名稱,為沒有源碼的程序簽名

程序 名稱 sdk div logs 提示符 cnblogs lda code 進入sdk提示符界面,依次輸入如下指令 sn -k ThoughtWorks.QRCode.snk ildasm ThoughtWorks.QRCode.dll /out=Thoug

解決引用 System.Windows.Interactivity程式生成多國語言資料夾fr、es、ja等問題

通過以下方式對 System.Windows.Interactivity程式集新增的引用編譯生成後會生成多國語言對應的檔案 de、en、es、fr、it、ja、ko、ru,這些檔案有時候沒有用到但是會存在於編譯生成的資料夾中,當然可用收到刪除這些檔案。為了從根本上解決這個問題,必須讓他

[經驗總結] 從其它sheet頁引用資料生成圖表時沒有圖例的解決辦法

1、先給出一個在有資料區域的sheet頁中生成的圖表,比較全,圖表和圖例全部都有,如下圖:   2、但是如果在其它 sheet頁中引用該有資料的sheet資料時並生成圖表,生成的圖表只有圖表區域顯示,圖例區域並不直接顯示出來,就會讓給人造成這個完整圖表不知道是具體哪些專案的走勢圖,下面給出引

用VS新建多層架構時引用第三方dll 時清理解決方案時,放bin資料夾下的bll被清空問題

今天新建一個新的專案時,引用了多個第三方的dll,每次一清空解決方案重新生成,dll就被清空,導致專案報錯,整個解決方案的dll都沒生成,so 看起來很嚴重。後來搜了下,說第三方的dll檔案不能放bin 檔案中,新建一個資料夾用來存放dll,檔案。另外也注意下引

PHP 生成驗證碼(+圖片沒有顯示的解決辦法)

subst 今天 部分 轉換 pan cde sta 操作 緩沖 今天有需要用到驗證碼,就敲了個,畢竟用途比較廣,所以打算把代碼留下來,以後肯定用得上的。當然,今天在做的時候也是有一些問題的,分享出來吧,記錄自己所犯的錯誤,避免以後再掉坑裏。 先給個效果圖(下面的真的是圖)

win10程式最小化後任務欄沒有顯示的解決方法

通常情況下我們會在電腦開啟很多應用程式,當我們暫時不需要使用的時候我們會將它最小化,最小化後會以縮圖的形式出現在工作列中,等我們有需要的時候再開啟就行。但是今天用電腦時發現將程式最小化之後工作列中卻看不到程式的最小化視窗(注意為win10作業系統),這樣使用帶來非常的不方便,那麼為什麼會出現這種情況呢?經研究

利用C#開發web應用程式時,對登錄檔進行操作提示沒有許可權的解決辦法

因為公司專案需要對web程式新增一套限制客戶惡意傳播的方案。沒辦法,東西放在客戶的伺服器或者電腦裡面。鑑於本人菜鳥一個,也就能想到利用兩種方案,具體的實現的方式,將會在之後的博文中寫出。 我寫這篇文章

第三方dll加上命名的方法

在VS.NET 的命令列視窗下,輸入如下的程式碼 # 1 ,生成一個KeyFile sn -k keyPair.snk # 2, 得到程式集的MSIL ildasm SharpRaven.dll /

linux下使用make指令生成程式時提示“XXX is up to date”問題的解決辦法

2018-02-22 建立人:Ruo_Xiao 開發環境:Ubuntu 17.10 郵箱:[email protected] 原因是makefile中要生成的檔案已存在目錄中。 解決方案:

執行儲存過程時報“在嘗試載入程式 ID 65645 時 Microsoft .NET Framework 出錯”,解決方案

新庫是直接複製的模板庫 執行儲存過程時報如下錯 訊息 10314,級別 16,狀態 11,過程sp_Sync_CmsArticleToSearchs,第 30 行在嘗試載入程式集 ID 65645 時 Microsoft .NET Framework 出錯。伺服器可能資源

安裝PyAudio 失敗沒有portaudio.h 解決辦法

在linux下安裝PyAudio 時出現如下錯誤: ================================================================================ Collecting pyaudio   Using ca

使用cocoaPods import導入時沒有提示的解決辦法

lds mage arch cocoa 提示 imp image dset 工程 1.選擇target(就是左邊你的工程target)—— BuildSettings —— search Paths 下的 User Header Search Paths(如圖所示:)

Maven Dependencies沒有了的解決辦法

red log 分享 popu depend .class cli data 沒有 頭疼的問題,maven Dependencies突然沒有了,別的項目都有,個別的卻怎麽也出不來。 以下是某大神的解決方法,特此轉發,以防丟失: 網上搜索了一番,大多都是下面這種做法:

SpringBoot成Swagger2實現Restful(類型轉換錯誤解決辦法)

ase col div request text eas new users setname pom.xml增加依賴 1 <dependency> 2 <groupId>io.springfox</groupId&

qrcode length overflow 生成二維碼網址長度溢出解決辦法

pen 下載 html5 網址 fix flow 生成二維碼 class and QRCode.js is javascript library for making QRCode. QRCode.js supports Cross-browser with HTML5 C

centos7 真實機安裝後沒有網卡解決辦法

http upd c++ 硬盤 center 查看 head 部分 加載 我們在真實機安裝完centos7版本後,會發現沒有網卡,只有lo口 因為真實機不同你在虛擬機裏面,這個時候我們不能連網,更加不要說配置什麽靜態ip了 是什麽原因呢,是因為有些真實機安裝了cent

ubantu系統修改許可權失敗,導致只能客人會話登入解決辦法 ubantu系統出現登入介面死迴圈處理辦法 ubantu系統出現登入介面死迴圈處理辦法

由於之前想將使用者授予root許可權,參考了網上的修改“使用者名稱:x:0:500:tommy:/home/tommy:/bin/bash”,將兩個1000改為0的辦法,可能是因為沒有登出,導致切換使用者後,只能進入到客人會話模式。並且悲催地忘了root密碼,於是下面介紹一下自己的拯救辦法: 第一步:關閉“