簡體   English   中英

我可以僅使用程序的 setup.exe 和 shimgen 來創建帶有 Chocolatey 的靜默安裝程序嗎?

[英]Can I create a silent installer with Chocolatey by just using the setup.exe of a program and shimgen?

嘗試為程序創建靜默安裝程序時,我可以只在工具文件夾中使用該程序的setup.exe並為其生成墊片嗎? 如果是這樣,那么它會安裝到哪里? 例如,我刪除了工具文件夾中的所有項目並放入了ARM RVDS 4.1setup.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 環境變量的更多信息, 請參見此處

關於上面代碼的一些細節:

  • PackageName:這是包的名稱(id)
  • 文件類型:這是“exe”還是“msi”?
  • SilentArgs:執行程序的靜默安裝所需的任何參數
  • 文件:安裝程序文件的相對或絕對路徑
  • ValidExitCodes:應被視為成功安裝的任何退出代碼。 我在示例中使用的那些意味着成功 ( 0 ) 並且需要重新啟動 ( 1638 )。 有關標准安裝程序退出代碼的更多信息,請參閱此頁面 搜索以ERROR_SUCCESS開頭的錯誤代碼,以獲取您可能需要支持的成功代碼。

為方便起見,您可以選擇為未自動放置在 PATH 上的程序生成墊片,以防不自動生成墊片。

安裝程序的位置取決於安裝程序的默認位置,以及安裝程序是否允許您覆蓋它。


請注意,當自動生成的墊片將在卸載自動除去,墊片與創建Install-BinFile需要包上手動刪除卸載使用Uninstall-BinFilechocolateyUninstall.ps1


以下是有關墊片的更多信息:

如果您將可執行文件放在工具文件夾中,那么 Chocolatey 將在安裝包時為其創建一個 shim。 墊片允許可執行文件在路徑上可用。

您要做的是在安裝包時運行安裝程序,並使用chocolateyInstall.ps1文件執行此操作。 如果您運行choco new <packagename>您將獲得一個示例chocolateyInstall.ps1文件,您可以將其用作模板。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM