正如我的问题所说,我想创建一个基于模板的新项目,该模板已经创建了一个经过测试并且工作正常,但是当我尝试用C#代码(在mvc3项目中)时,我有两个问题.
EnvDTE80, EnvDTE90 and EnvDTE100,因为我试图做 这个例子有EnvDTE100,但它不工作,因为对象句柄它Solution4不Solution2和Solution4不具有相同的行为.UPDATE
如果我使用了被调用的dll,这里的代码是有效的 EnvDTE80
System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.8.0");
Object obj = System.Activator.CreateInstance(type, true);
EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)obj;
Solution2 _solution = (Solution2)dte.Solution;
string projectTemplatePath = @"C:\Documents and Settings\jmachado\Escritorio";
projectTemplatePath =_solution.GetProjectTemplate("",""); <-- looking for some overload to create project based in a specific folder an not from '<drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\Language.'
Run Code Online (Sandbox Code Playgroud)
但如果我使用了 EnvDTE100
System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
Object obj = System.Activator.CreateInstance(type, true);
EnvDTE100.DTE2 dte …Run Code Online (Sandbox Code Playgroud) 到目前为止,我已成功使用EnvDTE来管理Visual Studio Toolbox.
有自定义的DLL来处理不同的Visual Studio版本:
EnvDTE.dll - 常见的VS自动化(可能适用于所有版本)
EnvDTE80.dll - 处理VS 2005
EnvDTE90.dll - 处理VS 2008
EnvDTE100.dll - 处理VS 2010
但是,VS 2012没有EnvDTE110.这是否意味着VS自动化的方式与使用这些COM包装库不同?
如果是这样,除了使用EnvDTE之外,如何远程使用VS 2012项目和Toolbox?