2

我想知道如何使用空 Visual C++ 项目的模板以编程方式使用这个空项目创建一个新的解决方案。我现在拥有的代码(C#)是:

string VSProgID = "VisualStudio.Solution.10.0";
Type solnObjType = System.Type.GetTypeFromProgID(VSProgID, true);
Solution4 soln = (Solution4) System.Activator.CreateInstance(solnObjType, true);
soln.Create(@"C:\NewSoln", "New");
soln.SaveAs(@"C:\NewSoln\New.sln");
string emptyVCProjPath = soln.GetProjectTemplate("General/Empty Project", "VC++"); // Here's where I need help
soln.AddFromTemplate(emptyVCProjPath, @"C:\NewSoln\NewProj", "New.vcxproj", false);

我无法在所有其他模板 (C#/F#/VB) 所在的位置找到 VC++ Empty Project 模板。当我通过 IDE 手动创建新项目时,VC++ 空项目模板确实出现在已安装的模板中。参数应该是soln.GetProjectTemplate()什么?它似乎无法识别"VC++"为一种语言。我知道这一点"CSharp"并且"VisualBasic"是有效的选择。但我想要一个 VC++ 空项目。任何帮助将不胜感激。

4

1 回答 1

3

我发布此答案是希望它可以帮助面临与我面临的相同问题的人。

显然,Visual Studio 可扩展性框架 API 不提供以编程方式创建空 Visual C++ 项目的选项。我必须生成解决方案和项目文件来实现这一点。具体来说,必须生成[solution_name].sln[project_name].vcxproj和文件。[project_name].vcxproj.filters必须为新项目生成 GUID 并插入到适当的位置。如果需要在这个空项目中添加文件,ClInclude需要为头文件生成ClCompile标签,为源文件生成标签。这些标签被添加到[project_name].vcxproj, 和[project_name].vcxproj.filters文件中。请参阅现有的 Visual C++ 项目的文件,以帮助您确定哪些内容在哪里。这很简单。


更新

由于某种原因,以这种方式生成的 VC++ 解决方案不能直接打开(通过在 Windows 资源管理器中双击解决方案文件)。我必须启动 Visual Studio 并从那里打开解决方案。

于 2012-03-01T20:01:43.017 回答