在 Chocolatey 中填充一个 .bat 文件
Shim a .bat file in Chocolatey
我正在尝试创建一个独立的巧克力包,其中包含一个我想填充到路径中的 .bat 文件(即我的“可执行文件”)。我的 chocolateyinstall.ps1
文件包含以下内容:
$ErrorActionPreference = 'Stop'; # stop on all errors
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
Install-BinFile -Name 'test.bat' -Path $toolsDir
这会在安装包时创建文件 test.bat.exe
。但是当我 运行 .exe 文件时,我得到错误:
Cannot find file at '..\lib\test-pkg\tools' (C:\ProgramData\chocolatey\lib\test-pkg\tools). This usually indicates a missing or moved file.
提到的目录(C:\ProgramData\chocolatey\lib\test-pkg\tools
)肯定存在并且包含test.bat
文件,所以.bat文件的打包和安装成功了。因此,它看起来是垫片的问题?
通过实验,我尝试以相同的方式填充 .ps1
Powershell 脚本,并得到相同的错误消息。
我在这里错过了什么?谢谢!
问题是 -Path
参数应该有 bat 文件的完整路径,而不仅仅是 $toolsDir
,所以像这样的东西会起作用:
Install-BinFile -Name 'test.bat' -Path "$toolsDir\test.bat"
令人惊讶的含义是,为了 Install-BinFile
到 运行 没有错误,shim 目标不需要存在。
我正在尝试创建一个独立的巧克力包,其中包含一个我想填充到路径中的 .bat 文件(即我的“可执行文件”)。我的 chocolateyinstall.ps1
文件包含以下内容:
$ErrorActionPreference = 'Stop'; # stop on all errors
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
Install-BinFile -Name 'test.bat' -Path $toolsDir
这会在安装包时创建文件 test.bat.exe
。但是当我 运行 .exe 文件时,我得到错误:
Cannot find file at '..\lib\test-pkg\tools' (C:\ProgramData\chocolatey\lib\test-pkg\tools). This usually indicates a missing or moved file.
提到的目录(C:\ProgramData\chocolatey\lib\test-pkg\tools
)肯定存在并且包含test.bat
文件,所以.bat文件的打包和安装成功了。因此,它看起来是垫片的问题?
通过实验,我尝试以相同的方式填充 .ps1
Powershell 脚本,并得到相同的错误消息。
我在这里错过了什么?谢谢!
问题是 -Path
参数应该有 bat 文件的完整路径,而不仅仅是 $toolsDir
,所以像这样的东西会起作用:
Install-BinFile -Name 'test.bat' -Path "$toolsDir\test.bat"
令人惊讶的含义是,为了 Install-BinFile
到 运行 没有错误,shim 目标不需要存在。