【发布时间】:2012-02-06 02:41:41
【问题描述】:
正如我的问题所说,我想创建一个基于模板的新项目,该模板已经创建了一个经过测试并且工作正常,但是当我尝试在 C# 代码中(在 mvc3 项目中)执行它时遇到两个问题。
-
EnvDTE80, EnvDTE90 and EnvDTE100之间有哪些区别,因为我尝试使用EnvDTE100执行 this example 但它不起作用,因为对象处理它是Solution4而不是Solution2和Solution4没有相同的行为。 - 如何在不使用默认路径但使用我需要的特定文件夹的情况下创建项目
更新
如果我使用名为 EnvDTE80 的 dll,以下是有效的代码
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.'
但如果我使用EnvDTE100
System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
Object obj = System.Activator.CreateInstance(type, true);
EnvDTE100.DTE2 dte = (EnvDTE100.DTE2)obj;
Solution4 _solution = (Solution4)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.'
并且说 DTE2 不会在 EnvDTE100 的命名空间中退出
【问题讨论】:
-
听起来您想参与一个虚拟目录,而不是将所有代码复制到可以使用一个源的每个新项目中,这样您就可以一次修复所有错误(而不是必须修复所有项目)。 learn.iis.net/page.aspx/150/…
-
您能否分享一些示例代码来说明您实际尝试实现的目标以澄清您的问题?
-
@Joachim Isaksson 当然,请给两分钟更新问题
-
@Joachim Isaksson 完成,问题已经更新了
-
查看stackoverflow.com/questions/6833119/…,它似乎可以处理您所看到的内容。
标签: c# asp.net visual-studio-2010 project-template