How to ILMerge Unmanaged DLLs in .NET
ILMerge can only merge managed assemblies. If your app depends on native DLLs, the merge fails. With BoxedApp Packer you can ship a single self-contained executable: unmanaged DLLs are virtualized and served from memory at runtime - no temporary files on disk.
Why Standard ILMerge Fails
ILMerge operates at the .NET IL level and can't embed native binaries. As a result, unmanaged dependencies must be shipped as loose files - which breaks the "single EXE" goal.
Solution: Application Virtualization
BoxedApp Packer builds a single EXE and provides a virtual file system and registry for it. Your native DLLs are embedded into the executable and exposed as virtual files at runtime, so the OS loader resolves them as if they were on disk - while nothing is actually written to disk.
Packed applications run entirely in user mode and do not require drivers. Embedded files are read from memory, not from the real file system.
Quick Start
- Install and launch BoxedApp Packer.
- Select your primary
.exe(the managed app you normally ILMerge). - Add required native DLLs to the Application Directory list.
- Build. The output is a single executable; native DLLs are embedded and virtualized.



When to Use This
- Need a single EXE deliverable but rely on native DLLs.
- Zero-trace requirements: no temp files on disk.
- Run from removable media or network shares without installation.