c# - 如何以编程方式创建 ASP.NET MVC 项目?
问题描述
对于我的项目,我需要以编程方式创建 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”之类的。
我希望有人可以帮助我解决这个问题!
先感谢您 !
解决方案
感谢 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
再次感谢 !
推荐阅读
- javascript - 将消息设置为在一段时间后或单击表单中的任何字段后消失
- firebase - 如何在 Dart 的流构建器中切换我正在收听的流?
- python - 如何结合 5 个训练模型的权重来更准确地预测测试数据集?
- ios - iOS 是否失去了使用动态框架的大部分优势?
- c# - C# 与嵌套使用共享相同的实体
- html - ul里面的li不是均匀分布的
- html - iPhone SE 未正确显示响应式表格标题,但可在 Android 上运行
- python - 使用少于 10000 个参数 CNN 的 MNIST 获得 99% 的验证准确率
- sql - 续集:PG::UndefinedColumn:错误:列“距离”不存在
- flutter - Flutter Doctor 错误:-X Android SDK 文件未找到:adb