INF AddSoftware 指示詞
每個 AddSoftware 指示詞都會描述獨立軟體的安裝。 這個指示詞應該用於 SoftwareComponent 安裝類別的INF檔案中。 如需軟體元件的詳細資訊,請參閱 使用元件 INF 檔案。 Windows 10 1703 版和更新版本支援這個指示詞。
有效的安裝類型取決於 目標平臺。 例如,桌面支援 MSI 安裝程式和設定 EXE。
注意
通用驅動程式支援類型 2,類型 1 是僅限桌面。
當軟體元件 INF 檔案指定 AddSoftware 時,系統會將安裝於裝置安裝後的軟體排入佇列。 當或是否安裝軟體時,並不保證。 如果參考的軟體無法安裝,系統會在參考軟體元件更新時再次嘗試。
AddSoftware 指示詞會在 INF DDInstall 中使用。軟體區段。
[DDInstall.Software]
AddSoftware=SoftwareName,[flags],software-install-section
項目
SoftwareName
指定要安裝的軟體名稱。 不論 INF 或區段名稱為何,此名稱都必須是唯一的系統範圍。
AddSoftware 指示詞的處理會檢查任何驅動程式套件中 AddSoftware 指示詞以相同名稱安裝的舊版軟體版本。 建議您在 SoftwareName 前面加上廠商名稱,例如 ContosoControlPanel
。
flags
指定一或多個 (ORed) 旗標。
0x00000000
AddSoftware 指示詞只會處理一次。
0x00000001
AddSoftware 指示詞會針對每個指定具有相同唯一 SoftwareName 的 AddSoftware 元件裝置處理一次。
例如,請考慮使用相同 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 app (亦即,您使用的是 AddSoftware 搭配 1) SoftwareType,請確定使用者可以輕鬆地卸載它,而不需在登錄中留下追蹤。 若要這樣做:
如果您使用 MSI 安裝程式,請在應用程式的 Windows Installer 套件中設定 [新增/移除程式 ] 專案。
如果您使用安裝全域登錄/檔案狀態的自定義 EXE (,而不是) 補充本機裝置設定,請使用 卸載登錄機碼。
Software-install-section 專案和值
SoftwareType={type-code}
SoftwareType 會指定軟體安裝的類型,而且是必要專案。
值為 1 表示相關聯的軟體是 MSI 或 EXE 二進位檔。 設定此值時,也需要 SoftwareBinary 專案。 Windows 10 S 不支援 1 的值。
如果 SoftwareType 設定為 1,則也需要 SoftwareBinary 和 SoftwareVersion,但 AddSoftware 指示詞中的 SoftwareArguments 和 flags) (是選擇性的。
從 Windows 10 1709 版開始,值為 2 表示相關聯的軟體是 Microsoft Store 連結。 僅針對沒有圖形使用者介面的裝置特定軟體使用1值。 如果您有具有圖形元素的裝置特定應用程式,它應該來自 Microsoft Store,而驅動程式應該使用 SoftwareType 值 2 來參考它。
如果 SoftwareType 設定為 2,則需要 SoftwareID,而且 AddSoftware 指示詞) 中的旗標 (是選擇性的。 如果 SoftwareType 設定為 2,則不會使用 SoftwareBinary 和 SoftwareVersion 。
注意
使用 AddSoftware 指示詞的 SoftwareType 2 時,不需要利用元件 INF。 指示詞可以成功用於任何 INF。 不過,類型 1 的 AddSoftware 指示詞必須從元件 INF 使用。
請勿使用 AddSoftware 來散發與裝置無關的軟體。 例如,OEM 特定的電腦公用程式不應該與 AddSoftware 一起安裝。 請改用下列其中一個選項,在 OEM 映像中預安裝應用程式,Windows 10:
若要預安裝 Win32 應用程式,請開機以稽核模式並安裝應用程式。 如需詳細資訊,請參閱 稽核模式概觀。
若要預安裝 Microsoft Store (UWP) 應用程式,請參閱 桌面裝置的預安裝應用程式
如需將驅動程式與 通用 Windows 平台 (UWP) 應用程式配對的詳細資訊,請參閱將驅動程式與 通用 Windows 平台 (UWP) 應用程式和硬體支援應用程式 (HSA) :驅動程式開發人員的步驟。
SoftwareBinary={filename}
指定可執行文件的路徑。 系統會產生如下的命令列:
MSI: msiexec /i "<SoftwareBinary>" ALLUSERS=1 /quiet /qn /promptrestart [<SoftwareArguments>]
EXE: <SoftwareBinary> [<SoftwareArguments>]
如果您使用這個專案,則必須指定具有 DestinationDirs 值為 13 的 INF CopyFiles 指示詞,將可執行檔新增至 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 Store 識別碼和識別碼類型。 目前僅支援套件系列名稱 (PFN) 。 使用 PFN 以使用 格式pfn://<x.y.z>
參考 通用 Windows 平台 (UWP) 應用程式。
注意
如需 SoftwareID 專案和值的條件約束相關信息,請參閱 SoftwareType 。