我正在使用Chocolatey打包现有的安装程序。安装程序的格式为<appname>-<version>.exe
,其中version为1.0.0。我正在使用Install-ChocolateyInstallPackage
,但我不知道如何引用安装程序。我在nuspec中使用$version$
将文件包含在包中。
有没有办法在安装/卸载脚本中获取版本,或者我是否必须执行类似gci .\Application-*.exe
的操作才能获得完整路径?
答案 0 :(得分:1)
如果安装程序版本与nuspec <version />
匹配,则可以使用ChocolateyPackageVersion
环境变量。有关完整列表,请参阅https://chocolatey.org/docs/helpers-reference#variables。
最好在创建包时使用choco new pkgid
。它将为您设置一切并节省您相当多的时间,因为它带来了我们称之为“及时”文档的相当多的东西。当您运行choco new
时,问题的某些部分已经得到解答,而且它可以帮助您取得成功。例如,您的下一个问题是“为什么我不能在包脚本中使用.\Application-*.exe
?”我们建议您使用$toolsDir\Application-*.exe
,当您运行choco new
时,您会看到$toolsDir
设置为什么(为清楚起见,您需要在本地创建$toolsDir
变量并在包脚本中设置。)
Chocolatey Pro(适用于个人)具有Package Builder UI(减去自动检测),可以让您在包创建中使用一个很好的界面。它将为您提供choco new pkgid
的所有元素,但也会提供更多的元素。
Chocolatey for Business(C4B)附带Package Builder(包含choco new --file installer.exe
的CLI和Package Builder UI)。 Package Builder在实际安装程序(MSI,EXE,7Z,ZIP,MSP,MSU)上执行自动检测,以在大约5-10秒内生成完全准备好的无人值守部署(程序包)。它支持右键单击并创建包。
https://chocolatey.org/docs/features-create-packages-from-installers