2016-02-29 181 views
1

我正在爲內部團隊使用創建一個巧克力包。 (在這種情況下,該軟件包用於Microsoft的Windows調試器。)如何用不同目錄中的相同名稱填充可執行文件?

Windows調試器包含兩個文件夾,一個用於32位x86可執行文件和一個用於64位可執行文件的x64文件夾。

可執行文件名稱相同。

x86\adplus.exe 
x64\adplus.exe 

安裝後看起來好像Chocolatey創建的墊片確實成功啓動了其中一個adplus實例。但有時我需要32位版本,有時我需要64位版本。

所以問題是這樣的:當在不同目錄中有兩個相同名稱的可執行文件時,我該如何告訴巧克力爲每個目錄中的可執行文件創建不同的墊片?

回答

1

簡短的回答是,你不能在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,因此您在這裏有各種選項。

+0

那麼你絕對是這些事情的官方。 :) 感謝你的回答。 –

相關問題