Nous avons un assistant Visual Studio écrit à l'aide de l'environnement DTE pour générer automatiquement du code, des modèles, etc., basé sur des bases de données personnalisées. À l'heure actuelle, il ouvre quelques boîtes de dialogue, recueille des informations, puis utilise la classe EnvDTE pour générer le code et le formater. Étant donné que les informations collectées à partir des boîtes de dialogue sont disponibles, existe-t-il un moyen d'appeler devenv et de lancer l'assistant pour générer automatiquement le code?Comment appeler un assistant Visual Studio personnalisé à partir de la ligne de commande?
Répondre
La réponse à cela était l'automatisation de studio visuel en utilisant l'interface DTE2. Par exemple, j'ai créé une nouvelle instance de Visual Studio avec
Type t = Type.GetTypeFromProgID("VisualStudio.DTE.9.0", true);
object obj = System.Activator.CreateInstance(t, true);
m_DTEInstance = obj as DTE2;
Ensuite, vous pouvez faire des choses telles que la création d'une nouvelle solution:
Solution2 solution = (Solution2)m_DTEInstance.Solution;
solution.Create(OutputDirectory, Namespace + ".sln");
Vous pouvez certainement exécuter Visual Studio à partir de la ligne de commande. Vous pouvez même lui faire exécuter une commande (devenv /Command ...
), mais cela signifie toujours amorcer l'intégralité de Visual Studio. Il n'est guère adapté pour fonctionner en mode batch si c'est ce que vous voulez.
Ce que vous pouvez faire à la place est d'utiliser CodeDom pour la génération de code. Il ne se relaie pas sur EnvDTE ou toute autre chose de Visual Studio pour générer le code. Dans mon générateur de code, j'ai également commencé à utiliser Visual Studio Automation, mais quand il s'agissait de construire par lots, je devais le refaire en utilisant CodeDom à la place.
- 1. Visual Studio. Publier un projet à partir de la ligne de commande
- 2. Comment appelez-vous le préprocesseur Visual Studio à partir de la ligne de commande?
- 3. Création de solutions C# à partir de la ligne de commande avec Visual Studio 2010
- 4. Comment utiliser Visual Studio 2010 RC 'publication en un clic' à partir de la ligne de commande?
- 5. Contrôler les plugins Visual Studio à partir de la ligne de commande
- 6. visual studio projet d'installation construit à partir de la ligne de commande
- 7. Visual Studio "formater le document entier" - exécutable à partir de la ligne de commande?
- 8. Ligne de commande compilant un projet VB.NET via Visual Studio?
- 9. Comment appeler une application de cacao à partir de la ligne de commande à l'extérieur?
- 10. Comment appeler Nunit à partir de Visual Studio dans un fichier de commandes
- 11. Utilitaire de ligne de commande personnalisé. Comment?
- 12. Publier ClickOnce à partir de la ligne de commande
- 13. Classe Visual Studio 2008 hors de la classe Assistant
- 14. Comment appeler les fonctions MATLAB à partir de la ligne de commande Linux?
- 15. Visual studio 2008 Arguments de ligne de commande du débogueur
- 16. Comment appeler un assistant d'un assistant dans Codeigniter?
- 17. Comment puis-je créer un package SharePoint 2010 à l'aide de la ligne de commande?
- 18. Comment intégrer un shell de commande dans Visual Studio
- 19. Comment créer SQLite3 à partir de la ligne de commande?
- 20. Commande de ligne en double dans Visual Studio 2005?
- 21. Envoyer des variables à la ligne de commande de l'événement de génération Visual Studio 2008
- 22. Comment ouvrir le concepteur SharePoint à partir de la ligne de commande avec un site SharePoint
- 23. Comment peut-on voir la ligne de commande Visual Studio 2008 Build?
- 24. CMake création solution studio visuel sur la ligne de commande
- 25. Commande Visual Studio
- 26. Ajouter une fonction à un programme et appeler cette fonction à partir de la ligne de commande dans la fonction
- 27. Comment désactiver les plugins de la ligne de commande sur Visual Studio?
- 28. Compilation de programmes Visual C++ à partir de la ligne de commande et msvcr90.dll
- 29. comment activer l'option 'more' à l'invite de commande (visual studio)
- 30. comment appeler correctement la commande unix à partir d'autres dirs
je vais devoir regarder dans/option de commande. Bootstrapping l'ensemble de Visual Studio est très bien, je me soucie plus de l'automatisation du processus que de tout. Je voudrais idéalement que cela fasse partie de la construction elle-même (la construction produit du code qui est ensuite construit). Cela ne me dérangerait pas de le réécrire pour CodeDom mais j'ai seulement 2 jours alloués à ce projet, et la réécriture de cette quantité de code prendrait une semaine. – esac
Mise à jour: a regardé toutes les options de ligne de commande, ne vois rien pour l'exécution d'un assistant, donc je devrais déplacer l'assistant entier vers une version en ligne de commande qui ne semble pas fonctionner avec EnvDTE. – esac
Avec toute mon expérience de l'intégration VS - Paquets, CodeGeneration, Editeurs, etc. travailler avec Automation me donne toujours des brûlures d'estomac. Il est lourd instable et documenté même pire que le reste de celui-ci. IMHO réécrire dans CodeDom serait plus prévisible que le chemin que vous avez en tête. Mais bien sûr, tout dépend de la quantité de code de génération de code que vous devez couper – mfeingold