Хорошо, вам не понравилась ни одна из моих двух других идей ... так что вот так ...
Вы отправляете и даете своим клиентам "EXE-заглушку". Заглушка EXE не зависит от чего-либо еще и просто содержит ZIP-файл (или установочный пакет или аналогичный) в качестве ресурса в вашем заглушке EXE. ZIP-файл, встроенный в заглушку EXE, содержит только саму программу EXE и все ее зависимые библиотеки DLL. Когда исполняется заглушка EXE, она просто распаковывает ZIP-файл в подкаталог TEMP и запускает приложение EXE.
Вы можете оптимизировать его так, чтобы, если приложение уже было установлено в% TEMP%, вы пропустили этап распаковки и просто запустили уже существующий EXE-файл приложения.
Лично я бы не пошел по этому пути. Просто дайте пользователю установщик, если у EXE есть зависимости. Но вы знаете своих пользователей и клиентов лучше, чем я.