Можно использовать
Costura.Fody. Эта библиотека позволит Вам, при сборке проекта, и в случае, если зависимые dll являются управляемыми (написанными на .NET), на выходе получить обычный exe'шник, в ресурсах которого будут зависимые библиотеки. А если Вам нужно добавить в сборку неуправляемые dll (написанные на C++/C и т.д.), достаточно отредактировать файл FodyWeavers.xml, добавив имена этих dll в специальные секции. Подробнее читайте про это в репозитории, ссылку на который я дал выше, под заголовком "Unmanaged32Assemblies & Unmanaged64Assemblies".
Также можно использовать
ILMerge. Пример использования в
этом посте на Хабре. Помните, что он работает только с управляемыми .NET библиотеками, а с неуправляемыми не умеет.