強式名稱程式集de構建和引用
背景:為獲得程式集提供的許多好處,例如,在系統中多個應用程式之間共用,並資料列版本設定及其對安全型和部署更好的支援等,必須使用強式名稱程式集。.NET Framework使用強式名稱來提供唯一標識程式集的方法,允許應用程式與強式名稱程式集的多個版本一起運行,該強式名稱程式集的版本是與應用程式一起產生的,而且強式名稱具有確保程式集的可信性和不會被篡改的特性。
組成:強式名稱程式集由程式集標識組成,指:
- 程式集的簡單文本名稱
- 程式集版本號碼
- 地區性資訊,如果提供電話的話(可選)
- 為用戶端產生的公開金鑰
- 數位簽章
具體步驟:
建立強式名稱金鑰組檔案並且在CalculatorEngine庫中引用此檔案。然後建立WindowsCalculator應用程式是它引用強式名稱程式集。另外,還將使用ILDASM檢查CalculatorEngine.dll和WindowsCalculator.exe的中繼資料。
(1) 建立強式名稱程式集
1) 開啟命令提示字元視窗。通過單擊“開始”,然後指向“所有應用程式”,指向“Microsoft Visual Studio.NET 2003”,指向“Visual Studio.NET 工具”,然後單擊“Visual Studio.NET 2003命令提示”。
2) 在命令提示字元下,開啟目錄…\CalculatorEngine。
3) 輸入命令“sn –k CalcKey.snk”,這將建立我們用來產生強式名稱程式集的一個強式名稱密鑰檔案。
4) 在Visual Studio.NET中的CalculatorEngine.sln解決方案檔案。
5) 開啟AssemblyInfo.cs檔案。
6) 尋找到“[assembly: AssemblyVersion("1.0.*")]”程式碼,修改為:3.0.1.1
[assembly: AssemblyVersion("3.0.1.1")];
7) 在檔案的底端添加新屬性(attribute)來應用強式名稱金鑰組檔案。
[assembly: AssemblyKeyFile("CalcKey.snk ")];
8) 開啟Calculator.cs源檔案,重建程式集,然後關閉Visual Studio.NET。
9) 在Visual Studio.NET命令提示字元提示視窗,開啟目錄…\ CalculatorEngine\bin\Debug。
10) 在命令提示字元下,對CalculatorEngine.dll運行ILDASM。
ildasm CalculatorEngine.dll
11) 開啟“MANIFEST”子節點。
12) 注意到在.assernbly CalculatorEngine項下,有一個.publickey項。這表示CalculatorEngine是一個強式名稱程式集。
13) 關閉“MANIFEST”視窗和ILDASM
(2) 建立引用強式名稱程式集的應用程式
1) 在Visual Studio.NET中,開啟或是建立新的解決方案WindowsCalculator.sln。
2) 添加對“CalculatorEngine.dll”引用
3) 重建解決方案。
4) 在命令提示視窗,對“WindowsCalculator.exe”運行ILDASM,輸入命令:
ildasm WindowsCalculator.exe
5) 開啟“MANIFEST”子節點。注意在.assernbly extern CalculatorEngine項裡不僅有版本號碼為3.0.1.1的項而且有publickeytoken項。這表示此應用程式有一個對外部強式名稱程式集的引用。