如何通过编程方式创建一个ASP.NET MVC项目?

4

针对我的项目,我需要编程创建一个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安装文件夹的扩展文件夹中搜索,除了ConsoleApplication和ClassLibrary之外,我没有找到“mvc.zip”或其他内容。

希望有人能帮我解决这个问题!

提前感谢您的帮助!


我在 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ProjectTemplates 下看到了目录。你安装了任何模板吗? - Dan Wilson
1
如果你在.NET Core中使用ASP MVC应用程序,那将会非常简单。只需使用命令dotnet new mvc -o 项目名称,就可以了。你应该考虑一下 :) - Radim Göth
1个回答

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应用程序,您必须在字符串内部的管道后指定框架版本。在我的情况下是:4.5

再次感谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接