Domanda

Sfondo :. Voglio creare un compilatore VB personalizzato, estendendo il compilatore "originale", al trattamento dei miei attributi in fase di compilazione personalizzati

Domanda : dopo che ho creato il mio compilatore personalizzato e ho un file eseguibile in grado di compilare il codice VB tramite l'interfaccia della riga di comando di serie, come faccio a integrare questo compilatore con il Visual Studio IDE? (In modo tale che premendo "compilazione" o "costruire" farà uso del mio compilatore invece del compilatore di default).

Modifica : (correggetemi se sbaglio)

Da qui le reazioni, vedo questa domanda è un po 'scioccante, così spiegherò ulteriormente le mie esigenze e lo sfondo: .NET ci fornisce un grande meccanismo chiamato attributi. Per quanto ho capito, rendendo attributi applicano loro comportamento previsto sull'elemento attribuito (assemblaggio, modulo, classe, metodo, ecc) - attributi devono essere riflesse su. Così il vero trucco qui sta riflettendo e applicando il comportamento al punto giusto.

Consente di prendere serializzazione per esempio: Noi decorare una classe con l'attributo Serializable. Abbiamo poi passare un'istanza della classe per il metodo Serialize del formattatore. Il formattatore riflette sulla esempio, controllando se ha l'attributo Serializable, e agire di conseguenza.

Ora, se esaminiamo la sincronizzazione, bandiere, attributi obsoleti e CLSCompliant, quindi la vera domanda è: che riflette su di loro? Almeno in alcuni casi, deve essere il compilatore (e / o IDE). Pertanto, sembra che se voglio creare attributi personalizzati che il cambiamento il comportamento di un elemento, indipendentemente da qualsiasi specifica del consumatore, devo estendere il compilatore di riflettere su di essi in compilazione.

Naturalmente, queste non sono le mie intuizioni personali: il libro "Attributi Applied .NET " fornisce un esempio completo di creare un attributo personalizzato e un costume compilatore C # a riflettere su tale attributo alla compilazione (l'esempio è utilizzato per implementare 'java-style eccezioni controllate').

È stato utile?

Soluzione

Check out "MSBuild Panoramica" a http://msdn.microsoft. com / it-it / library / ms171452.aspx . progetti di Visual Studio sono progetti MSBuild. Credo che tutto quello che avrebbe dovuto fare è fare un paio piccole modifiche. Io non l'ho fatto per un compilatore, ma l'ho fatto con ILMerge dopo la compilazione e funziona benissimo. Senza soluzione di continuità e anche possibile per eseguire il debug assemblee fuse.

Altri suggerimenti

Scopri " BuildAction proprietà " e " CustomTool proprietà ".

Alcuni anni fa, ho letto un articolo eccellente sulla creazione di un compilatore personalizzato, registrandolo, e impostando queste proprietà. Non riesco a trovare l'articolo ora, ma questo dovrebbe iniziare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top