Привет ! Меня зовут Ксавье Жувено, и в этом небольшом посте мы увидим, как исключить попадание исполняемого файла в пакет Chocolatey.

Самореклама: Другие статьи вы можете найти на моем сайте 😉

Проблемный

При создании пакетов Chocolatey или взаимодействии с ними вы можете оказаться в ситуации, когда программа, установленная через Chocolatey, либо не отображает, либо завершает свой процесс. Это может быть очень неудобно, так как программа делает то, что вы от нее просите 😝

Проблема возникает из-за функции Chocolatey EXECUTABLE SHIMMING, которая не всегда хорошо настроена, а затем не ждите, пока ваша программа завершит работу. Обычно это происходит, когда программа имеет графический интерфейс, но вы хотите, чтобы она выполняла какой-то процесс через командную строку, не обращая внимания на графический интерфейс.

Мы собираемся подробно описать 2 решения: одно, если вы являетесь пользователем пакета Chocolatey, которое является обходным решением для поведения шоколадного пакета, и другое, если вы являетесь сопровождающим пакета Chocolatey, чтобы сделать ваш пакеты ведут себя адекватно 😉

Решение

Обходной путь

Решение, как пользователь пакета Chocolatey, состоит в том, чтобы передать конкретную опцию в командную строку, которую вы используете:

my_program.exe --shimgen-waitforexit

Флаг shimgen-waitforexit как раз для таких ситуаций. Но я также рекомендую вам уведомить сопровождающих пакета, чтобы они могли внедрить приведенное ниже решение непосредственно в самом пакете.

Правильная коррекция

Если в вашем пакете есть такая ошибка, есть способ исправить ее навсегда 🙂 Включив следующую строку в ваш скрипт установки, вы сможете исключить исполняемые файлы вашего пакета от получения прокладок, что исправит проблему. :

Get-ChildItem $PSScriptRoot\*.exe | ForEach-Object { New-Item "$_.ignore" -type file -force | Out-Null }

Давайте немного опишем, что здесь происходит!

Во-первых, мы начинаем с получения всех файлов .exe в папке установки пакета Chocolatey. Затем для каждого найденного исполняемого файла мы создаем новый пустой файл с тем же именем, но с расширением .exe.ignore. Это расширение сообщит Chocolatey, что теперь нужно подставить исполняемый файл и одновременно исправить нашу проблему 😉

Спасибо всем за прочтение этой статьи, и до моей следующей статьи, хорошего дня 😉

Интересные ссылки

Первоначально опубликовано на http://10xlearner.com 12 февраля 2021 г.