0

我们有一个使用 DTE 环境编写的 Visual Studio 向导,可以根据一些自定义数据库内容自动生成代码、模板等。现在它会弹出一些对话框,收集信息,然后使用 EnvDTE 类生成代码并对其进行格式化。

鉴于我从可用的对话框中收集了信息,有没有办法调用 devenv 并让它运行向导以自动生成代码?

4

2 回答 2

1

对此的答案是使用 DTE2 界面的 Visual Studio 自动化。例如,我创建了一个新的 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");
于 2009-11-06T19:16:30.683 回答
0

您当然可以从命令行运行 Visual Studio。您甚至可以让它执行一个命令 ( devenv /Command ...),但这仍然意味着引导整个 Visual Studio。如果这是您想要的,它几乎不适合在批处理模式下运行。

您可以做的是使用 CodeDom 进行代码生成。它不依赖 EnvDTE 或 Visual Studio 中的任何其他东西来生成代码。在我的代码生成器中,我也是从使用 Visual Studio Automation 开始的,但是当涉及到批量构建时,我不得不使用 CodeDom 重做它

于 2009-11-04T01:41:40.323 回答