C# и ngen.exe: Как транслировать в машинный код?
1) ngen нужно применить к головному exe файлу и всем библиотекам вашей программы (сторонние библиотеки -- по желанию).
2) ngen применяется на компьютере конечного пользователя (например, как подсказали выше, во время инсталляции). Запустить ngen у себя на машине, а потом скопировать приложение пользователю -- так работать не будет.
Ну и чтобы убедиться, что во время работы приложения подгружаются действительно нативные сборки, воспользуйтесь Fuslogvw.exe из состава Visual Studio, документация есть на сайте MSDN.
Скорее всего вы неправильно применили утилиту. Обычно она запускается во время установки и помещает в кеш уже готовую и задеплоеную сборку. А если вы запускаете на дебаг версии, то вероятно кеш не будет использован.