Update 2018: In .NET Core 3.0+, you will be able to set <OutputType>WinExe</OutputType>
inside of the csproj file.
Currently, this is not directly possible out of the box because Windows EXE files contain a flag indicating if it is a “console” or “GUI” application that Windows evaluates even before starting the application. However, this flag can be changed using editbin.exe
(ships with Visual Studio’ C++ build tools as far as I know).
Building on this, you could create a self-contained .NET Core application (removing the "type": "platform"
from the project.json
and adding a runtimes section) so your project output includes an actual .exe
file and add a post-build script that invokes editbin.exe /subsystem:windows yourapp.exe
.