Mono ha notevolmente migliorato il suo supporto per la compilazione Ahead of Time (AOT) al punto che, supponendo che si desideri/siano in grado di indirizzare Mono piuttosto che il runtime .Net, dovrebbe essere possibile compilare staticamente qualsiasi applicazione CIL .
Se questa è una buona idea complessiva dipende interamente dall'applicazione e dai vincoli.
Ad esempio, Novell ora fornisce MonoTouch, un'implementazione CLI completamente compilata e collegata per consentire alle applicazioni .Net (non solo ai giochi) di funzionare su iPhone rispetto al framework CocoaTouch.
Queste stesse tecniche AOT possono essere utilizzate per compilare un'applicazione Winforms che non richiede il runtime .Net o Mono come prerequisiti. Ci sono molti compromessi in termini di prestazioni (sia positivi che negativi) legati all'AOT, quindi non andrei avanti senza due diligence.
Edit:
In risposta alla domanda di John Saunders' in materia di "perché non basta installarlo per loro?". Questo in effetti mostra una ragione per cui potresti aver bisogno della compilazione AOT. Bootstrappers.
Per installare qualsiasi cosa, è necessario eseguire un file eseguibile. È possibile distribuire un MSI (che lancerà implicitamente msiexec.exe) oppure è possibile distribuire un exe. MSI, anche se funzionale, è un'esperienza di sviluppo piuttosto terribile. Quindi puoi creare il tuo bootstrapper usando .NET (AOT compilato elimina la dipendenza di runtime) che installa qualsiasi prerequisito necessario (come .NET) prima di installare la tua app.
Inoltre, alcune società potrebbero dover spedire file eseguibili scaricabili che non richiedono agli utenti di installare nulla (in silenzio o in altro modo).
Ancora un altro: l'installazione di .NET richiede privilegi amministrativi. AOT può consentire di aggirare tale requisito per la propria applicazione.
Anche in questo caso, una buona idea dipende interamente dall'applicazione e dai vincoli.
Mi chiedo chi potrebbe votare questa domanda. Includere staticamente il runtime sarebbe fantastico. –
Sembra che alcune domande vengano respinte senza alcun motivo ovvio, le persone che lo fanno non lasciano mai un commento, quindi siamo lasciati a graffiare le nostre teste –
Cosa c'è di sbagliato nell'installare .NET per loro? Includilo nell'installer. –