Nuget 如何在不同的目录中填充具有相同名称的可执行文件?

Nuget 如何在不同的目录中填充具有相同名称的可执行文件?,nuget,nuget-package,chocolatey,oneget,Nuget,Nuget Package,Chocolatey,Oneget,我正在制作一个巧克力包供团队内部使用。(在本例中,该软件包适用于Microsoft的windows调试器。) Windows调试器包含两个文件夹,一个用于32位x86可执行文件,另一个用于64位可执行文件 可执行文件名是相同的 x86\adplus.exe x64\adplus.exe 安装后,Chocolate创建的垫片看起来确实成功启动了一个adplus实例。但有时我需要32位版本,有时我需要64位版本 所以这里有一个问题:当不同目录中有两个同名的可执行文件时,我如何告诉Chocolate

我正在制作一个巧克力包供团队内部使用。(在本例中,该软件包适用于Microsoft的windows调试器。)

Windows调试器包含两个文件夹,一个用于32位x86可执行文件,另一个用于64位可执行文件

可执行文件名是相同的

x86\adplus.exe
x64\adplus.exe
安装后,Chocolate创建的垫片看起来确实成功启动了一个adplus实例。但有时我需要32位版本,有时我需要64位版本


所以这里有一个问题:当不同目录中有两个同名的可执行文件时,我如何告诉Chocolately为每个目录中的可执行文件创建不同的垫片?

简而言之,Chocolate shim文件夹中不能有两个同名的垫片(
$env:ChocolateyInstall\bin

Windows对目录的限制是每个文件/文件夹必须是唯一的名称。这就是你遇到的。垫片被放入
$env:ChocolateyInstall\bin
文件夹中,该文件夹会自动将垫片放置在路径上,因为
$env:ChocolateyInstall\bin
位于路径上(它允许用户在不过载路径环境变量的情况下安装各种设备)

您可以在不希望填充的文件旁边创建一个以
.ignore
(例如
x86\adplus.exe.ignore
)文件结尾的空文件。这一点记录在。您甚至可以在安装过程中基于类似操作系统体系结构的东西以编程方式执行此操作

听起来你有时需要其中一个,有时在同一台机器上需要另一个。我建议
。忽略这两个文件的
文件,并可能使用
Get BinRoot
将文件推送到工具文件夹(您可以定义文件的位置)。然后,您可以为您需要的任何一个临时设置进程路径,并且它不会持续到实际路径。您甚至可以在路径上设置一个,然后在需要另一个时覆盖它


由于自动化脚本只是PowerShell,您在这里有各种选择。

好吧,在这些问题上,您肯定是官方的。:)谢谢你的回答。