2009-09-22 9 views

Répondre

1

Utilisez Custom Build Providers

Subsonic utilise également construire des fournisseurs pour générer son DAL et le code. Veuillez vérifier la configuration subsonique pour le fournisseur de build personnalisé. Il est open source, vous pouvez également vérifier sa mise en œuvre.

<configuration> 
    <system.web> 
    <compilation> 
     <buildProviders> 
     <add extension=".abp" type="SubSonic.BuildProvider, SubSonic"/> 
     </buildProviders> 
    </compilation> 
    </system.web> 
</configuration> 

Il utilise le fichier d'extension .abp pour lancer son fournisseur de construction.

Edit: Oui, les fournisseurs construire sur mesure sont super fonctionnalité de ASP.Net. Mais Winform traditionnel ou d'autres développeurs peuvent utiliser MSBuild tâches personnalisées pour obtenir le même effet. Dino Esposito a fourni un excellent article pour le même. Vous pouvez le vérifier here.

+0

C'est très intéressant! Il semble cependant que ces fournisseurs de build personnalisés ne prennent en charge que les projets Web. Est-ce que je lis bien? –

+0

Vous avez raison. Les fournisseurs de build personnalisés sont une fonctionnalité d'ASP.Net. Mais vous pouvez utiliser les tâches personnalisées MSBuild pour obtenir le même effet. Veuillez cocher Modifier à ma réponse – Mahin

+0

J'ai fini par le faire comme une tâche personnalisée, ce qui est le discours du département. Merci! –

0

Je ne sais pas comment cela fonctionnerait, mais va ici:

Si votre code CodeDOM est généré dans un projet distinct, générer les classes, puis ajoutez les noms de fichiers au fichier .csproj (c'est juste XML) d'une bibliothèque. Avoir l'ordre de construire d'abord aussi bien. Ensuite, l'événement de pré-construction de la bibliothèque exécute l'application de génération de code, puis il compilera. Lorsque vous cliquez sur VS la prochaine fois, il vous demandera de recharger car le fichier du projet a changé et vos nouvelles classes devraient apparaître.

Il semble un peu hacky, mais avec un peu de script, il pourrait être automatisé.

Questions connexes