Можно ли скомпилировать Powershell скрипт в исполняемый файл включая используемые DLL?

Добрый день, имеется Powershell скрипт, который использует дополнительные DLL библиотеки через

[System.Reflection.Assembly]::LoadFrom("С:\temp\сustom_one.dll")
[System.Reflection.Assembly]::LoadFrom("С:\temp\сustom_two.dll")


Можно ли его скомпилировать в конечный EXE файл внутрь которого уже будут вшиты DLL, чтобы на выходе был единственный файл для запуска?

Находил различные решение типа PS1 to EXE, но не видел в них возможность включения используемых DLL файлов
  • Вопрос задан
  • 458 просмотров
Пригласить эксперта
Ответы на вопрос 3
@azarij
В меру опытный никто
вот тут делают что-то похожее:

https://www.loginvsi.com/blog/565-embed-external-f...
Ответ написан
Комментировать
@falconandy
Напишите небольшую программу на Go, например. С помощью библиотеки типа https://github.com/rakyll/statik вшейте в бинарник нужные dll-ки и сам powershell-скрипт. Go-бинарник при первом запуске скопирует dll-ки и скрипт во временную папку, а затем запустит powershell-скрипт. При следующих запусках Go-бинарник будет просто запускать скрипт. Дополнительно можно добавить сравнение хэшей вшитых и уже имеющихся файлов, чтобы при выпуске новой версии заменять устаревшие файлы (dll-ки и скрипт).

Альтернатива: если powershell-скрипт действительно простой (вставить запись в БД) и dll-ки используются для связи с БД или еще какой-то стандартной логики, просто перепишите его на Go безо всяких dll-ок и рантайм-зависимостей.
Ответ написан
Комментировать
@MaxKozlov Куратор тега PowerShell
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы