Такие инструменты, как ILMerge, объединяют управляемые сборки. Тем не менее, у вас могут возникнуть проблемы с этим с сторонними dll-файлами, поскольку они, скорее всего, будут подписаны сертификатом и зашифрованы, чтобы люди не могли каким-либо образом вмешаться в их работу.
Другим подходом было бы встраивание сторонних библиотек в качестве файловых ресурсов. Затем вы можете загрузить их с помощью Assembly.Load, используя поток, созданный непосредственно из ваших ресурсов (GetManifestResourceStream), поэтому пользователь никогда не увидит их как отдельные файлы на диске, но вы на самом деле не будете пытаться изменить их содержимое.