2015-11-09 9 views
11

Sto lavorando a un'applicazione di deployer che pubblica (crea e crea l'output) di progetti C# e fa altri lavori.È possibile compilare un progetto C# senza MSBuild?

MSBuild non è pratico. Quindi, ho pensato di creare il mio motore di compilazione.

So che è possibile utilizzare il compilatore C# per compilare un file semplice sample.cs in un file dll. Ma posso compilare un progetto interamente senza MSBuild?

+0

Che cos'è MSBuild che lo rende "non pratico"? Sono d'accordo che non è lo strumento migliore da solo, ma ho avuto successo con un'applicazione GUI che utilizza MSBuild e alcuni altri script che abbiamo scritto per automatizzare completamente il processo di distribuzione per noi, in passato. – sab669

risposta

2

Sì, è possibile utilizzare csc (il compilatore C#) completamente per compilare il codice sorgente. Il problema è che devi fare il di tutto il tuo.

Dal MSBuild può interpretare sln e csproj file, e comprende le varie azioni da intraprendere, i riferimenti da utilizzare e dove trovarli, è molto più facile da usare rispetto csc. Ad esempio: alcuni compiti sono specifici per i componenti aggiuntivi di Office. MSBuild sa come eseguirli dai loro file di destinazione remoti. Non lo fai, quindi se vuoi usarli, devi fare tutte le azioni da solo. È possibile, solo un po 'difficile se vuoi compilare progetti molto complessi.

Potrebbe essere d'aiuto per use Roslyn to set up your compile statements and actually compile your code. Hai ancora bisogno di un modo per specificare tutti i parametri.

2

Come menzionato in this answer, è possibile utilizzare altri motori di compilazione per verificare se soddisfano le proprie esigenze o meno. Due di questi sono Microsoft.Build e Make per Windows

Problemi correlati