代码之家  ›  专栏  ›  技术社区  ›  esac

如何从命令行调用自定义Visual Studio向导?

  •  0
  • esac  · 技术社区  · 15 年前

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

    假设我有从对话框中收集到的信息,有没有方法调用devenv并让它运行向导来自动生成代码?

    2 回复  |  直到 15 年前
        1
  •  1
  •   esac    15 年前

    答案是使用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");
    
        2
  •  0
  •   mfeingold    15 年前

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

    您可以改为使用codedom来生成代码。它不会在envdte或Visual Studio中的任何其他内容上中继来生成代码。在我的代码生成器中,我也从使用Visual Studio自动化开始,但当它涉及到批处理构建时,我不得不使用codedom来重做它。