生成、打包、部署和管理應用程式及型別(下)
1.1 將模組合併成程式集
Clr操作的是程式集。它會載入包含清單元素據表的檔案,根據清單來獲取程式集中的其他檔名稱。程式集特點:
(1)定義了可重用的型別
(2)用一個版本標記
(3)可以關聯安全資訊
使用程式集的好處:
(1)不同的型別用不同的檔案,使檔案能以增量方式下載,對購買、安裝程式進行部分、分批打包/部署。
(2)可在程式集中新增資源和資料檔案。
(3)程式集包含的各個型別可以用不同的程式語言來實現。
1.1.1 使用vs將程式集新增到專案中
在解決方案,右鍵新增引用的專案,選擇 新增引用 來開啟 引用管理器。
1.1.2 使用程式集連結器
除了編譯器,還可用“程式集連結器”AL.exe建立程式。
1.1.3 為程式新增資原始檔
(1)/resource可以獲取任意資源,將檔案內容嵌入最終的PE檔案。
(2)/link[esource獲取資源,不會嵌入,必須和其他程式集檔案一起打包部署。
1.2 程式集版本資源資訊
可在檔案屬性檢查該資源。程式碼中呼叫system.diagnostics.file.versioninfo的靜態方法getversioninfo,傳遞路徑引數,可以獲取該資訊。
版本號格式:主版本號.次版本號.內部版本號.修訂號
程式集有三個版本號。
(1)assembyfileversion儲存在win32版本資源,clr不關心,提供公眾看到的版本。
(2)assemblyinfomationalversion儲存在win32版本資源,clr不關心,主要作用是指出包含該程式集的產品的版本。
(3)assemblyversion
儲存在saaemblydef清單元素據表中,clr在繫結強命名程式集會使用到。唯一標識了程式集。
1.3 語言文化
除了版本號,程式集還將語言文化作為其身份標識的一部分。未指定具體語言文化的程式集稱為語言文化中性 culture neutral。
專門建立一個程式集來包含程式碼和預設資源,新建一個或多個單獨程式集包含語言文化資源(不包含程式碼)。
1.4 簡單應用程式部署(私有部署的程式集)
對於Windows store 應用程式,vs會將應用程式所有必要程式集打包成一個。Appx.
對於非Windows store 桌面應用,程式集的打包方式沒有任何特殊要求,打包一組程式最簡單的方式就是直接複製所有檔案。
在應用程式基目錄或者子目錄部署的程式整合為私有部署的程式集,這是因為程式集檔案並不和其他任何應用程式共享。私有部署的程式集只需把它複製到一個應用程式的基目錄,clr便會載入他們並執行其中的程式碼。需要解除安裝,刪除即可,因為每個程式集都用元素據註明了自己引用的程式集,不需要登錄檔設定。
1.5 簡單管理控制(配置)
使用者或管理員經常需要控制應用程式的執行,可在應用程式目錄放入一個配置檔案。配置檔案包含xml程式碼,能和應用程式關聯,也可以和機器關聯。
對於可執行應用程式(exe),配置檔案必須在應用程式的基目錄,採用exe檔案全名作為檔案明,再附加.Config拓展名。
對於asp.net web窗體應用程式,檔案必須在web應用程式的虛擬根目錄中,而且總是命名為Web.Config.