我正在为内部团队使用创建Chocolatey软件包。(在这种情况下,该软件包适用于Microsoft的Windows调试器。)
Windows调试器包含两个文件夹,一个用于32位x86可执行文件,一个用于64位可执行文件的x64文件夹。
可执行文件名称相同。
x86\adplus.exe
x64\adplus.exe
安装后,似乎Chocolatey创建的填充程序确实已成功启动了adplus实例之一。但是有时我需要32位版本,有时我需要64位版本。
所以这是一个问题:当不同目录中有两个名称相同的可执行文件时,我如何告诉Chocolately为每个目录中的可执行文件创建不同的填充?
简短的答案是,在Chocolatey垫片文件夹($env:ChocolateyInstall\bin
)中不能有两个名称相同的垫片。
Windows对目录的限制是每个文件/文件夹必须是唯一的名称。这就是您遇到的问题。Shim放入$env:ChocolateyInstall\bin
文件夹中,因为$env:ChocolateyInstall\bin
它位于PATH上,所以它会自动将它们放在PATH中(它使人们可以安装各种东西而不会重载PATH环境变量)。
您可以在不想填充的文件旁边创建一个以.ignore
(例如x86\adplus.exe.ignore
)文件结尾的空文件。这记录在Wiki上。您甚至可以在安装过程中基于OS体系结构之类的程序来完成此任务。
听起来您有时需要在SAME机器上同时使用其中一个。我会.ignore
为两个文件建议文件,并且可能会使用Get-BinRoot
它们将文件推送到工具文件夹(您可以定义文件的位置)。然后,您可以为所需的任何一个临时设置进程PATH,而该进程PATH不会持久到实际路径。您甚至可以在路径上设置一个,然后在需要时覆盖另一个。
由于自动化脚本只是PowerShell,因此您在这里有各种选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句