我想知道如何使用Empty 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 ++空项目。任何帮助将不胜感激。
答案 0 :(得分:3)
我发布这个答案,希望它可以帮助那些面临同样问题的人。
显然,Visual Studio Extensibility框架API不提供以编程方式创建Empty 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并从那里打开解决方案。