У вас та же проблема, что и я.
Все, что вам нужно сделать, это указать компилятору компилировать программу как winexe. Для этого просто добавьте это в свой CompilerParams:
CompilerParams.CompilerOptions = "/target:winexe";
Но также обратите внимание, что это скомпилирует его со значком по умолчанию (который выглядит ужасно!), Поэтому вам нужно будет добавить к этому дополнительные аргументы:
if (File.Exists(iconPath))
CompilerParams.CompilerOptions = "/target:winexe" + " " + "/win32icon:" + "\"" + iConPath + "\"";
else
CompilerParams.CompilerOptions = "/target:winexe";
Таким образом, он проверяет, существует ли значок, прежде чем пытаться вставить его, чтобы избавить вас от неприятностей, которые мне пришлось пережить ....