簽章資料表

Signature 資料表會保存可唯一識別檔案簽章的資訊。 如需簽章的詳細資訊,請參閱 數位簽章和 Windows Installer

Signature 資料表具有下列資料行。

資料行 類型 答案 Nullable
簽名 識別碼 Y N
FileName Text N N
MinVersion Text N Y
MaxVersion Text N Y
MinSize DoubleInteger N Y
MaxSize DoubleInteger N Y
MinDate DoubleInteger N Y
MaxDate DoubleInteger N Y
語言 Text N Y

 

資料行

簽名

[簽章] 資料行是唯一的檔案簽章。

檔案名

檔案的名稱。

MinVersion

檔案的最低版本,具有語言比較。 如果指定此欄位,則檔案必須具有至少等於 MinVersion 的版本。 如果檔案的版本與 MinVersion 域值相等,但 Language 資料行中指定的語言不同,則檔案不符合簽章篩選準則。

注意

[語言] 資料行中指定的語言用於比較中,而且無法忽略語言。 如果您想要檔案符合 MinVersion 欄位需求,不論語言為何,都必須在 MinVersion 欄位中輸入一個小於實際值的值。 例如,如果篩選的最低版本是 2.0.2600.1183,請使用 2.0.2600.1182 來尋找檔案,而不需符合語言資訊。

 

MaxVersion

檔案的最大版本。 如果指定此欄位,則檔案必須具有最多等於 MaxVersion 的版本。

MinSize

檔案的大小下限。 如果指定此欄位,則受檢查的檔案必須具有至少等於 MinSize 的大小。 這必須是非負數。

MaxSize

檔案的大小上限。 如果指定此欄位,則受檢查的檔案必須具有最多等於 MaxSize 的大小。 這必須是非負數。

MinDate

檔案的修改日期和時間下限。 如果指定此欄位,則受檢查的檔案必須有至少等於 MinDate 的修改日期和時間。 這必須是非負數。 此欄位的格式是 WORD類型的兩個封裝 16 位值。 高序 WORD 值會以 MS-DOS 日期格式指定日期。 低序 WORD 值會指定 MS-DOS 時間格式的時間。 時間值值為 0 表示午夜。 請參閱<備註>一節。

MaxDate

檔案的建立日期上限。 如果指定此欄位,則受檢查的檔案必須有最多等於 MaxDate 的建立日期。 這必須是非負數。 此欄位的格式是 WORD類型的兩個封裝 16 位值。 高序 WORD 值會以 MS-DOS 日期格式指定日期。 低序 WORD 值會指定 MS-DOS 時間格式的時間。 時間值值為 0 表示午夜。 請參閱<備註>一節。

語言

檔案支援的語言。

備註

此資料表與 AppSearch 資料表搭配使用。

簽章會使用 RegLocator 資料表IniLocator 資料表CompLocator 資料表DrLocator 資料表進行搜尋。 此資料表的資料行通常不會當地語系化。 如果作者決定以多種語言搜尋產品,則每個語言的資料表中可以包含個別的專案。

簽章資料表通常會遵循 Windows Installer 檔案版本設定規則。 除非檔案版本相等,否則不會評估 Signature 資料表之 [語言] 資料行中指定的語言。 如果檔案屬於要求的版本,則 [語言] 資料行可確保檔案是特定語言。 沒有方法可以忽略 [語言] 資料行。 在 [語言] 資料行中輸入的 Null 值會被視為沒有語言的檔案,而且與出現在 [簽章] 資料表中之語言的檔案簽章不符。 下列範例會搜尋特定版本的 MSI.DLL。

DrLocator 資料表

簽名_ Parent 路徑 深度
MsiDll {null} c:\windows\system32 0

 

AppSearch 資料表

屬性 簽名_
MSIDLL MsiDll

 

簽章資料表

簽名 FileName MinVersion MaxVersion MinSize MaxSize MinDate MaxDate 語言
MsiDll msi.dll 2.0.2600.1106 {null} {null} {null} {null} {null} 0

 

在此情況下,和在 Windows XP SP1 上, AppSearch 動作 會將 MSIDLL 設定為c:\windows\system32\msi.dll,因為MSI.DLL是語言中性檔案。 如果 Languages 資料行的值從 0 變更為 1033,則 AppSearch 巨集指令找不到相符msi.dll且 MSIDLL 屬性未定義。

您無法單獨使用簽章資料表來查詢語言。 若要搜尋檔案的不同語言版本,您必須在每個語言版本的 [簽章] 資料表中有不同的專案。 如果在 [語言] 資料行中提供多種語言,則搜尋會尋找支援所有這些語言的檔案。

MinDate 和 MaxDate 資料行的格式是 WORD類型的兩個封裝 16 位值。

日期 WORD

Bits Content
0–4 月份 (1-31) 日
5-8 Month (1 = January, 2 = February, and so on)
9-15 從 1980 年 (新增 1980 的年份位移,以取得實際年份)

 

Time WORD

Bits Content
0–4 秒除以 2
5-10 分鐘 (0-59)
11-15 24 小時制 (0-23 小時制)

 

計算 MinDate 和 MaxDate 域值的公式為:

( (年 - 1980) * 512 + 月 * 32 + 日 ) * 65536 + 小時 * 2048 + 分鐘 * 32 + 秒/2

驗證

ICE03
ICE06