1. 程式人生 > >生成、打包、部署和管理應用程式及型別(下)

生成、打包、部署和管理應用程式及型別(下)

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.