區別乙個程式集,不僅僅是程式集名稱,還包括程式集版本、程式集公匙、程式集文化等,本篇體驗通過介面和編碼設定程式集版本。
□ 通過visual studio設定程式集版本
→右鍵專案,選擇"屬性",選擇"應用程式"
→點選"程式集資訊",設定如下,點選確定
→點選專案properties資料夾下的assemblyinfo.cs,可以看到程式集版本已經設定生效
[assembly: assemblyversion("3.3.3.3")]
□ 通過編碼設定程式集版本
→在f盤的as資料夾下建立cow.cs檔案
→用記事本開啟cow.cs,編寫如下,儲存
using system;
using system.reflection;
[assembly: assemblyversion("3.3.3.3")]
publicclass cow
}→把cow.cs編譯成程式集
→在f盤的as資料夾下建立mainclass.cs檔案
using system;
class mainclass
}→編譯mainclass,引用cow.dll,生成mainclass.exe檔案
→執行mainclass.exe
→現在要試著篡改程式集,先刪除cow.dll
→在f盤的as資料夾下建立anothercow.cs檔案
→用記事本開啟anothercow.cs,編寫如下,儲存
using system;
using system.reflection;
[assembly: assemblyversion("8.8.8.8")]
publicclass cow
}以上,同cow.cs相比,修改了程式集的版本以及方法的實現。
→編譯anothercow.cs,重新生成cow.dll程式集
→反編譯cow.dll來檢視程式集的版本
.assembly cow○ .ver 8:8:8:8程式集版本發生了改變,原先是.ver 3:3:3:3
→執行mainclass.exe
總結:可以通過介面或編碼設定程式集版本號;通過更新程式集來更新應用程式。「c#程式集系列」包括:
C 程式集系列11,全域性程式集快取
全域性程式集快取 gac global assembly cache 用來存放可能被多次使用的強名稱程式集。當主程式需要引導程式集的時候,優先選擇到全域性程式集快取中去找尋需要的程式集。為什麼需要全域性程式集快取?假設程式a引用b程式集,程式c也引用b程式集,在這種情況下,可以把b程式集放到乙個全域...
C 之程式集
c 之程式集 程式集的定義 1.程式集是乙個或多個託管模組,以及一些資源檔案的邏輯組合。2.程式集是元件復用,以及實施安全策略和版本策略的最小單位。3.程式集是包含乙個或者多個型別定義檔案和資源檔案的集合。在程式集包含的所有檔案中,有乙個檔案用於儲存清單。清單是元資料部分中一組資料表的集合,其中包含...
C 程式集別名
雖然開發專案時很少遇到兩個相同完全限定名的型別 命名空間.類名 但偶然還是會遇到這種情況。比如,在某些情況下,專案中必須引用某程式集的新舊多個版本。通過使用外部程式集別名,可以將來自每個程式集的命名空間包裝在由別名命名的根級別命名空間中,從而使這些命名空間可以在同一檔案中使用。msdn官方解釋 注意...