3

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

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

4

3 回答 3

6

您可以使用 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 的引用。您将获得的结果文件非常简单,可以通过其他方式创建(作为纯文本文件)。

于 2011-02-18T07:43:07.523 回答
0

如果您真的只需要使用项目文件创建解决方案,那么仅手动编写 .sln 文件(它是一个纯文本文件)和 .csproj 文件(它是一个 XML MSBuild 文件)可能比手动编写要容易得多与 Visual Studio 自动化混为一谈。

于 2011-02-18T05:43:54.007 回答
0

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

于 2011-02-18T06:47:23.050 回答