首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以通过使用程序的setup.exe和shimgen创建一个带巧克力的静默安装程序吗?

我可以通过使用程序的setup.exe和shimgen创建一个带巧克力的静默安装程序吗?
EN

Stack Overflow用户
提问于 2020-02-28 14:15:42
回答 2查看 862关注 0票数 2

当试图为一个程序创建一个静默安装程序时,我是否可以在tools文件夹中使用该程序的setup.exe并为它生成一个shim?如果是的话,那么安装到哪里呢?例如,我删除了tools文件夹中的所有项目,并将其放入setup.exe For ARM RVDS 4.1中。当我做choco pack时,它产生了一个垫片,但是现在我不知道该如何处理它,或者我是否做对了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-28 14:36:42

您不希望为安装程序设置shim -您希望从chocolateyInstall.ps1调用安装程序来安装程序。在chocolateyInstall.ps1中如何对安装程序执行执行程序执行此操作的示例如下:

代码语言:javascript
复制
$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。此变量仅存在于巧克力包安装的上下文中。有关巧克力环境变量的更多信息,请参见看这里

有关上述代码的一些详细信息:

  • PackageName:这是包的名称(id)
  • FileType:这是“exe”还是“msi”?
  • SilentArgs:执行程序静默安装所需的任何参数
  • 文件:安装程序文件的相对路径或绝对路径
  • ValidExitCodes:任何应该被视为成功安装的退出代码。我在示例中使用的代码表示成功(0)和重新启动所需的(1638)。有关标准安装程序退出代码的更多信息,请参见此页。搜索以ERROR_SUCCESS开头的错误代码,以查找您可能需要支持的成功代码。

您可以选择为程序生成shims,而不是为了方便而自动放置在路径上,在这种情况下,不会自动生成shims。

程序的安装位置取决于安装程序的默认位置,以及安装程序是否允许您重写它。

请注意,虽然自动生成的shims将在卸载时自动删除,但是使用Install-BinFile创建的shims需要在使用Uninstall-BinFilechocolateyUninstall.ps1卸载时手动删除。

下面是关于shims的更多信息:

票数 2
EN

Stack Overflow用户

发布于 2020-02-28 14:51:04

如果您将可执行文件放在tools文件夹中,那么当包安装时,巧克力将为它创建一个垫片。空间允许可执行文件在路径上可用。

您想要做的是在安装包时运行安装程序,并使用chocolateyInstall.ps1文件执行此操作。如果您运行choco new <packagename>,您将得到一个可以用作模板的示例chocolateyInstall.ps1文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60453522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档