Scelta dinamica dei compilatori?

0

Un'applicazione ha la seguente logica:

  • client = > creato * .cpp = > inviato al server = > cl.exe + * .cpp =
    * .Exe
  • client = > creato * .cs = > inviato al server = > csc.exe + * .cs =
    * .Exe
  • client = > creato * .pas = > inviato al server = > PascalCompiler +
    * .pas = * .exe
  • ecc.

La lingua - C #. Ho sentito che MSBUILD può aiutarmi, ma non capisco come modificare il compilatore sul server in fase di runtime. Qualcuno sa di opzioni diverse dalla classe Process?

Sto provando a scrivere un sistema online per testare i programmi nei concorsi di programmazione. Il programmatore seleziona il compilatore e invia il codice sorgente al server per la verifica.

E non ho bisogno di costruire il progetto, ho solo bisogno di compilare un singolo file.

    
posta mif 29.07.2012 - 10:16
fonte

3 risposte

1

Sembra che tu stia cercando di automatizzare un processo di compilazione? Qualche altro dettaglio su ciò che vorresti raggiungere sarebbe di aiuto.

MsBuild è lo strumento di costruzione di Microsoft, non è sicuro se ti aiuterà con Pascal. Altri strumenti che includeranno NAnt.

Dai un'occhiata all'integrazione continua e CC.Net (CruiseControl.Net) Ci sono anche altri strumenti.

Sto indovinando cosa vuoi un po ', quindi aggiungi qualche altro dettaglio.

    
risposta data 29.07.2012 - 10:33
fonte
0

Se tutto ciò che devi compilare è un singolo file, allora perché non richiedere semplicemente agli sviluppatori di aderire a uno standard suffisso di file e guidare la scelta del compilatore dal tipo di file? Basta scorrere la directory, raccogliere tutti i file in esso e controllarne il suffisso. Se si tratta di un suffisso "noto", attivare il comando di compilazione appropriato in un thread separato. Quando il ciclo termina, attendi su tutti i bambini prima di eseguire nuovamente la scansione. Avrai bisogno di un modo per spostare o contrassegnare i file una volta che sono stati elaborati e un meccanismo di notifica per informare gli autori della segnalazione se la loro compilazione è fallita o meno, ma questi sono dettagli abbastanza banali.

    
risposta data 30.07.2012 - 14:32
fonte
0

Sei sulla buona strada .

Suggerirei di iniziare con MSBuild e continuare il processo di integrazione. Affrontare l'integrazione continua richiede tempo e risorse. Consiglierei di pensarci due volte sull'obiettivo che stai pianificando di raggiungere.

Ho compilato un elenco di buone risorse che speriamo possano aiutarti a capire il processo di compilazione stesso:

risposta data 30.07.2012 - 05:49
fonte