Alla fine cercando quì e la ho trovato una mezza soluzione un po' pacchiana ma valida.
Si può modificare a mano il file di progetto .csproj. Lui crea una branca condizionale per ogni tipo di configurazione, di base c'è la branca Debug e quella Release.
Tutte le impostazioni sono contenute che si possono scegliere da Visual Studio sono contenute nel <PropertyGroup> iniziale generico, non è possibile da VS modificare invece i <PropertyGroup> condizionali.
Sotto
codice:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
ho messo
codice:
<AssemblyName>ApplicazioneBatch</AssemblyName>
<OutputType>Exe</OutputType>
e sotto
codice:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
ho messo
codice:
<AssemblyName>Applicazione</AssemblyName>
<OutputType>WinExe</OutputType>
In questo modo quando compilo in Debug mi crea in bin\Debug ApplicazioneBatch.exe di tipo console, invece quando compilo Release crea bin\Release Applicazione.exe di tipo windows.
Il bello è che se apporto modifiche al progetto di altro genere da VS non intacca le modifiche condizionali che ho messo a mano.