簽章資料表
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。
簽名_ | Parent | 路徑 | 深度 |
---|---|---|---|
MsiDll | {null} | c:\windows\system32 | 0 |
屬性 | 簽名_ |
---|---|
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
驗證