如何用不同目录中的相同名称填充可执行文件?
我正在为内部团队使用创建一个巧克力包。 (在这种情况下,该软件包用于Microsoft的Windows调试器。)如何用不同目录中的相同名称填充可执行文件?
Windows调试器包含两个文件夹,一个用于32位x86可执行文件和一个用于64位可执行文件的x64文件夹。
可执行文件名称相同。
x86\adplus.exe
x64\adplus.exe
安装后看起来好像Chocolatey创建的垫片确实成功启动了其中一个adplus实例。但有时我需要32位版本,有时我需要64位版本。
所以问题是这样的:当在不同目录中有两个相同名称的可执行文件时,我该如何告诉巧克力为每个目录中的可执行文件创建不同的垫片?
简短的回答是,你不能在Chocolatey shim文件夹中有两个相同名称的垫片($env:ChocolateyInstall\bin
)。
Windows对于目录的限制是每个文件/文件夹必须是唯一的名称。这就是你所遇到的。 Shims被放入$env:ChocolateyInstall\bin
文件夹中,由于$env:ChocolateyInstall\bin
位于PATH上(它允许人们在不重载PATH环境变量的情况下安装所有类型的东西),所以它们会自动将它们放在PATH上。
您可以创建一个以.ignore
(例如x86\adplus.exe.ignore
)文件结尾的空文件,该文件紧挨着您不希望被刷新的文件。这记录在wiki上。你甚至可以在安装过程中以基于OS架构的方式编程。
这听起来像你有时需要其中的一个,而其他时间在另一台机器上。我会建议.ignore
这两个文件的文件,并可能使用Get-BinRoot
将文件推送到一个工具文件夹(你可以定义它的位置)。然后,您可以暂时为您需要的任何一个设置进程PATH,并且它不会保留到实际路径。您甚至可以在路径上设置一个,然后在需要另一个时覆盖它。
由于自动化脚本只是PowerShell,因此您在这里有各种选项。
那么你绝对是这些事情的官方。 :) 感谢你的回答。 –