INF AddSoftware 指示詞
每個 AddSoftware 指示詞都會描述獨立軟體的安裝。 這個指示詞應該用於 SoftwareComponent 安裝程序類別的 INF 檔案中。 如需軟體元件的詳細資訊,請參閱使用元件 INF 檔案 。 Windows 10 版本 1703 和更新版本支援此指示詞。
有效的安裝類型取決於 目標平臺。 例如,Desktop 支援 MSI 安裝程式和設定 EXE。
備註
通用驅動程式支援類型 2,類型 1 是僅限桌面電腦。
當軟體元件 INF 檔案指定 AddSoftware時,系統會將軟體排入安裝裝置之後安裝的軟體佇列。 當或是否已安裝軟體時,並無保證。 如果參考的軟體無法安裝,系統會在參考軟體元件更新時再次嘗試。
INF DDInstall中使用 AddSoftware 指示詞。[軟體] 區段。
[DDInstall.Software]
AddSoftware=SoftwareName,[flags],software-install-section
條目
SoftwareName
指定要安裝的軟體名稱。 不論 INF 或區段名稱為何,此名稱都必須是唯一的系統範圍。
AddSoftware 指示詞的處理,會依據任何驅動程式套件的 AddSoftware 指示詞,檢查以相同名稱安裝舊版軟體的版本。 建議您在 SoftwareName 前面加上廠商名稱,例如 ContosoControlPanel
。
旗標
指定一或多個 (ORed) 旗標。
0x00000000
AddSoftware 指示詞只會處理一次。
0x00000001
AddSoftware 指示詞會針對每個元件裝置處理一次,該裝置會指定具有相同唯一 SoftwareNameAddSoftware。
例如,請考慮使用相同 INF 檔案安裝三個裝置的組態。 軟體安裝程式只會針對 旗標執行一次 0x00000000,但 旗標 0x00000001 執行三次。
software-install-section
參考 INF 寫入器定義的區段,其中包含安裝軟體的資訊。
備註
每個 INF 寫入器建立的區段名稱在 INF 檔案內都必須是唯一的,而且必須遵循定義區段名稱的一般規則。 如需這些規則的詳細資訊,請參閱 INF 檔案的一般語法規則。
AddSoftware 指示詞必須參考 INF 檔案中其他地方的具名 software-install-section。 每個這類區段都有下列形式:
[software-install-section]
SoftwareType=type-code
[SoftwareBinary=path-to-binary]
[SoftwareArguments=argument[, argument] …]
[SoftwareVersion=w.x.y.z]
[SoftwareID=pfn://x.y.z]
備註
如需區段專案和值的條件約束相關信息,請參閱 SoftwareType。
使用 AddSoftware 安裝的任何軟體,都必須以無訊息方式安裝(或無訊息安裝)。 換句話說,安裝期間無法向用戶顯示任何使用者介面。
如果虛擬軟體元件裝置或其父裝置已卸載,任何使用 AddSoftware 安裝的軟體 都不會卸載。 如果您的軟體不是 UWP 應用程式(也就是您使用 AddSoftware,且 SoftwareType 為 1),請確定使用者可以輕鬆地卸載,而不需在登錄中留下追蹤。 要達成這個目標:
如果您使用 MSI 安裝程式,請在應用程式的 Windows Installer 套件中設定 新增/移除程式 專案。
如果您使用安裝全域登錄/檔案狀態的自訂 EXE(而不是補充本機裝置設定),請使用 卸載登錄機碼。
Software-install-section 專案和值
SoftwareType={type-code}
SoftwareType 會指定軟體安裝的類型,而且是必要專案。
值為 1 表示相關聯的軟體是 MSI 或 EXE 二進位檔。 設定此值時,也需要 SoftwareBinary 專案。 Windows 10 S 不支援 1 的值。
如果 SoftwareType 設定為 1,SoftwareBinary 和 SoftwareVersion 也是必要專案,但 SoftwareArguments 和 旗標(在 AddSoftware 指示詞中)是選擇性的。
從 Windows 10 版本 1709 開始,值為 2 表示相關聯的軟體是Microsoft市集連結。 僅針對沒有圖形使用者介面的裝置特定軟體使用1值。 如果您有具有圖形元素的裝置特定應用程式,它應該來自 Microsoft Store,而驅動程式應該使用 SoftwareType 值 2 來參考它。
如果 SoftwareType 設定為 2,則需要 SoftwareID,且 旗標(在 AddSoftware 指示詞中) 為選擇性。 如果 SoftwareType 設定為 2,則不會使用 SoftwareBinary 和 SoftwareVersion。
備註
使用 AddSoftware 指示詞的 SoftwareType 2 時,不需要使用元件 INF。 指示詞可在任何 INF 中成功使用。 不過,必須從元件 INF 使用 Type 1 的 AddSoftware 指示詞。
請勿使用 AddSoftware 發佈與裝置無關的軟體。 例如,OEM 特定的電腦公用程式不應該與 AddSoftware 一起安裝。 請改用下列其中一個選項,在 Windows 10 的 OEM 映像中預安裝應用程式:
若要預安裝 Win32 應用程式,請開機以稽核模式並安裝應用程式。 如需詳細資訊,請參閱 稽核模式概觀。
若要預安裝 Microsoft Store (UWP) 應用程式,請參閱 桌面裝置的預安裝應用程式
如需將驅動程式與通用 Windows 平臺 (UWP) 應用程式配對的相關信息,請參閱 將驅動程式與通用 Windows 平臺 (UWP) 應用程式配對 和 硬體支援應用程式 (HSA):驅動程式開發人員的步驟。
SoftwareBinary={filename}
指定可執行文件的路徑。 系統會產生如下的命令列:
MSI: msiexec /i "<SoftwareBinary>" ALLUSERS=1 /quiet /qn /promptrestart [<SoftwareArguments>]
EXE: <SoftwareBinary> [<SoftwareArguments>]
如果您使用這個專案,您必須指定 INF CopyFiles 指示詞,並將 DestinationDirs 值為 13 的可執行檔新增至 DriverStore。
備註
如需 SoftwareBinary 專案和值的條件約束相關信息,請參閱 SoftwareType。
SoftwareArguments={argument1[, argument2[, ...argumentN]]}
指定要附加至命令行的擴充功能特定自變數。 您可以指定系統直接通過產生的命令行自變數。 您也可以 指定稱為執行時間內容變數的特殊字串。 當您指定運行時間內容變數時,系統會先將它轉換成裝置特定的值,然後再將它附加至產生的命令行。 您可以混合和比對常值字串自變數與運行時間內容變數。 支援的執行時間內容變數包括:
<<DeviceInstanceID>>
系統會以軟體元件的裝置實例標識碼取代上述字串。
例如:
[DDInstall.Software]
AddSoftware=ContosoControlPanel,,Contoso_ControlPanel_Software
[Contoso_ControlPanel_Software]
SoftwareType=1
SoftwareBinary=ContosoControlPanel.exe
SoftwareArguments=<<DeviceInstanceID>>
SoftwareVersion=1.0.0.0
上述範例會產生如下的命令列:
<DriverStorePath>\ContosoControlPanel.exe PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123
如果 SoftwareArguments 包含多個自變數:
SoftwareArguments=arg1,<<DeviceInstanceID>>,arg2
上述結果為:
<DriverStorePath>\ContosoControlPanel.exe arg1 PCI\VEN_0000&DEV_0001&SUBSYS_00000000&REV_00\0123 arg2
備註
如需 SoftwareArguments 專案和值的條件約束相關信息,請參閱 SoftwareType。
SoftwareVersion={w.x.y.z}
指定軟體版本。 每個值不應超過 65535。 當系統遇到重複 SoftwareName時,它會針對先前的 SoftwareVersion檢查 SoftwareVersion。 如果更大,Windows 會執行軟體。
備註
如需 SoftwareVersion 專案和值的條件約束相關信息,請參閱 SoftwareType。
SoftwareID={x.y.z}
指定Microsoft市集標識碼和標識符類型。 目前僅支援套件系列名稱 (PFN)。 使用 PFN 參考通用 Windows 平臺 (UWP) 應用程式,並使用表單 pfn://<x.y.z>
。
備註
如需 SoftwareID 專案和值的條件約束相關信息,請參閱 SoftwareType。