轉帖:強命名程序集(Strong Name Assembly)的概念

強命名程序集(Strong Name Assembly)的概念
因為不同的公司可能會開發出有相同名字的程序集來,如果這些程序集都被復制到同一 個相同的目錄下,最后一個安裝的程序集將會代替前面的程序集。這就是著名的Windows “DLL Hell”出現的原因。
很明顯,簡單的用文件名來區分程序集是不夠的,CLR需要支持某種機制來唯一的標識一個程序集。這就是所謂的強命名程序集。
一個強命名程序集包含四個唯一標志程序集的特性:文件名(沒有擴展名),版本號,語言文化信息(如果有的話),公有秘鑰。
這些信息存儲在程序集的清單(manifest)中。清單包含了程序集的元數據,并嵌入在程序集的某個文件中。
下面的字符串標識了四個不同的程序集文件:
“MyType, Version=1.0.1.0,
Culture=neutral, PublicKeyToken=bf5779af662fc055”
“MyType, Version=1.0.1.0,
Culture=en-us, PublicKeyToken=bf5779af662fc055”
“MyType, Version=1.0.2.0,
Culture=neturl, PublicKeyToken=bf5779af662fc055”
“MyType, Version=1.0.2.0,
Culture=neutral, PublicKeyToken=dbe4120289f9fd8a”
如果一個公司想唯一的標識它的程序集,那么它必須首先獲取一個公鑰/私鑰對,然后將共有秘鑰和程序集相關聯。不存在兩個兩個公司有同樣的公鑰/私鑰對的情況,正是這種區分使得我們可以創建有著相同名稱,版本和語言文化信息的程序集,而不引起任何沖突。

與強命名程序集對應的就是所謂的弱命名程序集。(其實就是普通的沒有被強命名的程序集)。兩種 程序集在結構上是相同的。都使用相同的PE文件格式,PE表頭,CLR表頭,元數據,以及清單(manifest)。二者之間真正的區別在于:強命名程序 集有一個發布者的公鑰/私鑰對簽名,其中的公鑰/私鑰對唯一的標識了程序集的發布者。利用公鑰/私鑰對,我們可以對程序集進行唯一性識別、實施安全策略和 版本控制策略,這種唯一標識程序集的能力使得應用程序在試圖綁定一個強命名程序集時,CLR能夠實施某些“已確知安全”的策略(比如只信任某個公司的程序 集)。

?

http://www.cnblogs.com/vcool/archive/2007/11/27/974326.html
http://blogs.msdn.com/shawnfa/archive/2006/04/24/582278.aspx

?

?

轉載于:https://www.cnblogs.com/h2appy/archive/2008/12/11/1352803.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379810.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379810.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379810.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

串口發送通信---UART發送---STM32F4實現

串口發送程序配置過程(HAL庫) 初始化串口相關參數,使能串口 HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)該函數的參數是串口的基址,在stm32f429xx.h文件中,定義了8個UART_HandleTypeDef的值&#x…

開源軟件 許可證密鑰_自由和開源軟件-1中的重要許可證

開源軟件 許可證密鑰Its important to take note that there are no good or bad licenses and that no license is superior to another. Anybody can make an open-source license that suits their extravagant, which is the explanation that there are such huge numbers…

串口接收中斷配置過程---STM32F4--HAL

串口接收中斷程序配置過程(HAL) 初始化相關參數,使能串口: HAL_UART_Init();該函數的參數是串口的基址,在stm32f429xx.h文件中,定義了8個UART_HandleTypeDef的值,分別是USART1、USART2、USART…

electron 切換至esm

前言 好消息,經過不知道多少年的討論。 electron28.0.0開始(23.08.31),默認支持esm了。 see https://github.com/electron/electron/issues/21457 使用方法 升級至electron^28.0.0簡單地在package.json中添加"type":…

javascript運算符_JavaScript中!=或!==運算符之間的區別

javascript運算符We can perceive the differences between these two operators as the same difference that occurs between double equalsTo () and triple equalsTo () operators. We already know that the (!) not-operator used along with () operator is used to che…

實訓09.09:簡單的彩票系統(機選多注)

package wsq; import java.util.Random; import java.util.Scanner;//機選多注 public class MoreCaiPiao {public static void main(String[] args) {// 定義二維數組 存儲多注彩票int[][] numArray new int[5][7];/** 二維數組中 未賦值之前的元素值都為0 { {0,0,0,0,0,0,0}…

項目組的激勵策略

我們經常會采取一獎勵措施,來激發大家工作的積極性,從而達到提高工作效率的目的。那么我們應該對項目組中的那些類型的人實施激勵呢?項目的實踐過程中,筆者認為有兩類人需要給予正面的獎勵。一,能夠主動思考&#xff0…

zk中的Datebox中得到Timestamp

String formatDate sdf.format(datebox.getValue()); para.setCreate_time(Timestamp.valueOf(formatDate)); 轉載于:https://www.cnblogs.com/avenxia/archive/2012/04/15/2450052.html

定時器--STM32f4--HAL

基本概念 STM32中有三種定時器,高級定時器,通用定時器,基本定時器,具體如下圖: 發生如下事件將產生中斷/DMA 更新:計數器向上溢出/向下溢出,計數器初始化觸發事件:計數器啟動、停…

實訓09.09:簡單的彩票系統(自選多注)

package wsq; import java.util.Scanner; public class CustomCaipiao {public static void main(String[] args) {/** 用戶自選彩票數字: 1.使用scanner來輸入彩票號碼! 2.直接寫成自選多注,注數由用戶輸入決定;* 3.紅球值1-33,不重復;藍球值1-16;*/// 定義二維數組 存儲所有的…

c ++查找字符串_C ++類和對象| 查找輸出程序| 套裝4

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int X;int* const PTR &X;public:void set(int x);void print();};void Sample::set(int x){*PTR x;}void Sample::print(){cout << *PTR - EOF << …

ASP.NET 泛型類型 Dictionary操作

protected void Page_Load(object sender, EventArgs e){//泛型Dictionary Dictionary<string, string> dit new Dictionary<string, string>();dit.Add("13", "張三");dit.Add("22", "李四");Response.Write("總數…

獨立看門狗---STM32----HAL

基本概念 看門狗解決的問題是什么&#xff1f; 在系統跑飛&#xff08;程序異常執行&#xff09;的情況&#xff0c;是系統復位&#xff0c;程序重新執行。 獨立看門狗適應用于需要看門狗作為一個在主程序之外能夠完全獨立工作&#xff0c;并且對時間精度要求低的場合。 工…

實訓09.09:簡單的彩票系統(注冊信息)

package wsq; import java.util.Scanner;//本文件負責注冊用戶信息 /*用戶注冊信息:1.要求設置賬號和密碼,使用字符串數組2.賬號名不能重復3.密碼需要輸入兩次,兩次密碼輸入一致4.滿足賬號名不重復.且兩次密碼一致,即為注冊成功!!將信息添加到字符串數組中String[][] users ne…

【轉】JAVA生成縮略圖

方法1&#xff1a;[第一種方法比后一種生成的縮略圖要清晰] import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.awt.image.ColorModel;import java.awt.image.WritableRaster;import java.awt.*;import java.awt.geom.AffineTransform;import jav…

javascript寫入_如何在JavaScript中寫入HTML元素?

javascript寫入寫入HTML元素 (Writing into an HTML element) To write string/text into an HTML element, we use the following things: 要將字符串/文本寫入HTML元素&#xff0c;我們使用以下內容&#xff1a; There must be an HTML element like paragraph, span, div e…

大話設計模式之設計模式遵循的七大原則

最近幾年來&#xff0c;人們踴躍的提倡和使用設計模式&#xff0c;其根本原因就是為了實現代碼的復用性&#xff0c;增加代碼的可維護性。設計模式的實現遵循了一些原則&#xff0c;從而達到代碼的復用性及增加可維護性的目的&#xff0c;設計模式對理解面向對象的三大特征有很…

IIC通信---EEPROM24C02---STMF4

IIC通信協議 IIC是同步半雙工通信&#xff0c;一個數據線SDA和一個時鐘SCL線&#xff0c;可以接受和發送數據。在CPU與被控IC之間、IC與IC之間進行雙向傳送。 空閑狀態 IIC總線的SDA和SCL兩條信號線同時處于高電平時&#xff0c;規定為總線的空閑狀態。 起始信號 當SCL為高…

實訓09.08:簡單的算法練習

/*final 關鍵字 修飾的變量值 后期不可更改 相當于定義常量常量 &#xff1a;不可更改*/final int a 10;//a 20; 報錯的值不可更改&#xff01;/*輸入函數* */System.out.println("請輸入數字&#xff1a;");Scanner scanner new Scanner(System.in);int b…

讓自己閃亮

轉載于:https://www.cnblogs.com/Gigabyte/archive/2009/01/03/you_can_shine.html