我们有一个使用DTE环境编写的Visual Studio向导,可以根据一些自定义数据库内容自动生成代码,模板等。现在它会显示一些对话框,收集信息,然后使用EnvDTE类生成代码并对其进行格式化。
鉴于我从可用的对话框中收集了信息,有没有办法调用devenv并运行向导来自动生成代码?
答案 0 :(得分:1)
答案是使用DTE2界面的视觉工作室自动化。例如,我使用
创建了一个新的Visual Studio实例Type t = Type.GetTypeFromProgID("VisualStudio.DTE.9.0", true);
object obj = System.Activator.CreateInstance(t, true);
m_DTEInstance = obj as DTE2;
然后你可以做一些事情,比如创建一个新的解决方案:
Solution2 solution = (Solution2)m_DTEInstance.Solution;
solution.Create(OutputDirectory, Namespace + ".sln");
答案 1 :(得分:0)
您当然可以从命令行运行Visual Studio。您甚至可以让它执行命令(devenv /Command ...
),但它仍然意味着引导整个Visual Studio。如果这是您想要的,它几乎不适合以批处理模式运行。
您可以使用CodeDom代码生成。它不会在EnvDTE或Visual Studio中的任何其他内容中继以生成代码。在我的代码生成器中,我也开始使用Visual Studio Automation,但是当涉及批量生成时,我不得不使用CodeDom重做它