【问题标题】:How can I create new blank solution in vs 2008 programmatically?如何以编程方式在 vs 2008 中创建新的空白解决方案?
【发布时间】:2011-02-18 05:36:58
【问题描述】:

基于设计的方法是:新建项目 -> 其他项目类型 -> Visual Studio 解决方案 -> 空白解决方案

我必须在 C# 中以编程方式创建一个空白解决方案,并在此解决方案中添加新的空项目和文件。我在网上找到了很多使用 DTE 的代码,但他们正在现有的解决方案资源管理器中添加我的空项目,所以请给我一些参考代码。

【问题讨论】:

标签: c# visual-studio-2008 add-in envdte


【解决方案1】:

您可以像这样使用 DTE 创建一个新的空白解决方案:

string visualStudioProgID = "VisualStudio.Solution.9.0";
Type solutionObjectType = System.Type.GetTypeFromProgID(visualStudioProgID, true);
object obj = System.Activator.CreateInstance(solutionObjectType, true);
Solution3 solutionObject = (Solution3)obj;
solutionObject.Create(".", "MySolution");
solutionObject.SaveAs(@"C:\Temp\MySolution.sln"); //or wherever you prefer

您必须添加对 EnvDTE.dll、EnvDTE80.dll 和 EnvDTE90.dll 的引用。您将获得的结果文件非常简单,可以通过其他方式创建(作为纯文本文件)。

【讨论】:

    【解决方案2】:

    如果您真的只需要使用 empty 项目文件创建解决方案,那么编写 .sln 文件(它是一个纯文本文件)和 .csproj 文件(它是一个XML MSBuild 文件) 手动比它弄乱 Visual Studio 自动化。

    【讨论】:

    • josh Eistein,感谢您给我快速回复但我必须使用 Visual Studio 自动化以编程方式创建该解决方案。所以请给我代码。您的回答将不胜感激。再次感谢。
    【解决方案3】:

    手动创建一个带有空项目的解决方案。用 {n} 替换项目/解决方案名称/其他特定数据,以便稍后使用 string.Format 填充它们。然后将这些文件(sln 和 csproj)嵌入到您的程序集中并将它们用作资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多