如何以编程方式创建ASP.NET MVC项目?

时间:2018-08-06 15:41:48

标签: c# .net asp.net-mvc project envdte

对于我的项目,我需要以编程方式创建MVC解决方案和项目。

我已经搜索过,并且找到了一种使用Solution2和EnvDTE80创建控制台应用程序的方法。这是代码:

string commonName = "ConsoleAppProg";
string csPrjPath = $"C:\\TestCreateProject\\{commonName}";
Type type = Type.GetTypeFromProgID("VisualStudio.DTE.15.0");
DTE dte = (DTE)Activator.CreateInstance(type, true);
Solution2 sln = (Solution2)dte.Solution;
sln.Create(csPrjPath, commonName);
sln.SaveAs(commonName + ".sln");
string csProjectTemplatePath = sln.GetProjectTemplate("ConsoleApplication.zip", "CSharp");
sln.AddFromTemplate(csProjectTemplatePath, $"{csPrjPath}\\{commonName}", commonName, false);

但是我没有找到创建MVC项目的方法。在VS安装文件夹的Extensions文件夹中搜索时,除了ConsoleApplication和ClassLibrary之外,我没有找到“ mvc.zip”或其他内容。

我希望有人可以帮助我解决这个问题!

提前谢谢!

1 个答案:

答案 0 :(得分:1)

感谢Dan Wilson的评论,我已经在此文件夹中搜索(提醒:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ProjectTemplates),并且找到了一种执行MVC项目创建的方法

对于那些想要开发它的人,请遵循以下代码:

// PATH
string commonName = "ConsoleAppProg";
string csPrjPath = $"C:\\TestCreateProject\\{commonName}";

// SOLUTION INITIALIZATION
Type type = Type.GetTypeFromProgID("VisualStudio.DTE.15.0");
DTE dte = (DTE)Activator.CreateInstance(type, true);
Solution2 sln = (Solution2)dte.Solution;

string csProjectTemplatePath = sln.GetProjectTemplate("WebApplication.zip|FrameworkVersion=4.5", "CSharp");

// SOLUTION AND PROJECT CREATION
sln.Create(csPrjPath, commonName);
sln.SaveAs(commonName + ".sln");
sln.AddFromTemplate(csProjectTemplatePath, $"{csPrjPath}\\{commonName}", commonName, false);

查看第一个字符串sln.GetProjectTemplate()。要创建基于MVC的Web应用程序,必须在字符串内的管道之后指定Framework Version。就我而言:4.5

再次感谢!