[英]Can I create a silent installer with Chocolatey by just using the setup.exe of a program and shimgen?
嘗試為程序創建靜默安裝程序時,我可以只在工具文件夾中使用該程序的setup.exe
並為其生成墊片嗎? 如果是這樣,那么它會安裝到哪里? 例如,我刪除了工具文件夾中的所有項目並放入了ARM RVDS 4.1
的setup.exe
。 當我做choco pack
它生成了一個墊片,但現在我不知道該怎么處理它,或者我是否做得對。
您不想為安裝程序設置墊片 - 您想從chocolateyInstall.ps1
調用安裝程序來安裝程序。 您將如何在chocolateyInstall.ps1
為安裝 exe 執行此操作的示例是:
$packageInstallArgs = @{
PackageName = 'package-name'
FileType = 'exe'
SilentArgs = '/q /someOtherArguments' # This line is going to be installer specific, and is just a sample here
File = 'C:\Path\to\installer' # can be a relative path too
ValidExitCodes = 0, 1638 # array of acceptable return codes for the installer
}
Install-ChocolateyInstallPackage @packageInstallArgs
如果您的
setup.exe
嵌入在包中,您可以使用以下環境變量引用當前包文件夾目錄:$env:chocolateyPackageFolder
。 此變量僅存在於 Chocolatey 軟件包安裝的上下文中。 有關Chocolatey 環境變量的更多信息, 請參見此處。
關於上面代碼的一些細節:
0
) 並且需要重新啟動 ( 1638
)。 有關標准安裝程序退出代碼的更多信息,請參閱此頁面。 搜索以ERROR_SUCCESS
開頭的錯誤代碼,以獲取您可能需要支持的成功代碼。為方便起見,您可以選擇為未自動放置在 PATH 上的程序生成墊片,以防不自動生成墊片。
安裝程序的位置取決於安裝程序的默認位置,以及安裝程序是否允許您覆蓋它。
請注意,當自動生成的墊片將在卸載自動除去,墊片與創建Install-BinFile
需要包上手動刪除卸載使用Uninstall-BinFile
從chocolateyUninstall.ps1
。
以下是有關墊片的更多信息:
如果您將可執行文件放在工具文件夾中,那么 Chocolatey 將在安裝包時為其創建一個 shim。 墊片允許可執行文件在路徑上可用。
您要做的是在安裝包時運行安裝程序,並使用chocolateyInstall.ps1
文件執行此操作。 如果您運行choco new <packagename>
您將獲得一個示例chocolateyInstall.ps1
文件,您可以將其用作模板。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.