如何在VSPackage中创建一个命令,该命令创建一个包含1个.cs文件的新项目(C#类库)的新解决方案?创建新解决方案的VSPackage命令
1
A
回答
1
这不是很直接,但有一个有趣的指南MSDN解释如何做到这一点。它适用于加载项,但在VSPackage中,您拥有相同的Visual Studio DTE对象集(DTE应用程序)。
您可以定义一个使用GetProjectTemplate和AddFromTemplate创建两个控制台项目的方法。您可以在VSPackage的类OLE菜单命令的方法Initialize
定义(如果这是你在找什么):
protected override void Initialize()
{
//// Create the command for the menu item.
var aCommand = new CommandID(GuidList.GuidCmdSet, (int)PkgCmdIdList.CmdId);
var menuItemEnable = new OleMenuCommand((s, e) => createProjectsFromTemplates(), aCommand);
}
,然后定义(在这种情况下createProjectsFromTemplates
)相关的命令的方法创建一个项目的解决方案:
private DTE2 _mApplicationObject;
public DTE2 ApplicationObject
{
get
{
if (_mApplicationObject != null) return _mApplicationObject;
// Get an instance of the currently running Visual Studio IDE
var dte = (DTE)GetService(typeof(DTE));
_mApplicationObject = dte as DTE2;
return _mApplicationObject;
}
}
public void createProjectsFromTemplates()
{
try
{
// Create a solution with two projects in it, based on project
// templates.
Solution2 soln = (Solution2)ApplicationObject.Solution;
string csTemplatePath;
string csPrjPath = "C:\\UserFiles\\user1\\addins\\MyCSProject";
// Get the project template path for a C# console project.
// Console Application is the template name that appears in
// the right pane. "CSharp" is the Language(vstemplate) as seen
// in the registry.
csTemplatePath = soln.GetProjectTemplate(@"Windows\ClassLibrary\ClassLibrary.vstemplate",
"CSharp");
System.Windows.Forms.MessageBox.Show("C# template path: " +
csTemplatePath);
// Create a new C# console project using the template obtained
// above.
soln.AddFromTemplate(csTemplatePath, csPrjPath, "New CSharp
Console Project", false);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show("ERROR: " + ex.Message);
}
}
对于10.0以后的Visual Studio版本,模板项目的zip不再可用。该.vstemplate必须引用,就可以找到该文件夹下的所有项目模板:这个MSDN link
C:\Program Files (x86)\Microsoft Visual Studio 1x.0\Common7\IDE\ProjectTemplates\
更多信息。
该方法应该创建一个基于C#项目模板(例如包含class1.cs作为初始文件)的C#项目的解决方案。
如果您希望并根据该自定义模板创建解决方案,您也可以定义自己的模板。以下是关于如何创建自定义模板的MSDN的指南。
希望它有帮助。
相关问题
- 1. 为VS2008解决方案创建VS2010解决方案文件
- 2. MonoDevelop命令行编译解决方案
- 3. 命令行构建解决方案vs Visual Studio 2012构建
- 4. 如何获得VS解决方案的cmd命令行构建命令?
- 5. 是否可以从命令行创建一个空的Visual Studio解决方案?
- 6. 从命令行在解决方案中构建一个项目
- 7. 使用Visual Studio 2010从命令行构建C#解决方案
- 8. 从命令行构建ASP.NET解决方案?
- 9. 如何创建SharePoint解决方案?
- 10. 如何从VSPackage获取当前解决方案目录?
- 11. 错误创建一个新的解决方案VS2010
- 12. 要求用户创建新表的替代解决方案
- 13. 在Visual Studio中构建解决方案,重建解决方案和清理解决方案的区别?
- 14. 重构解决方案文件夹到新解决方案
- 15. 构建解决方案
- 16. 在Visual Studio 2010中重新创建解决方案文件
- 17. C#解决方案系统的命令列表
- 18. 初始化命令失败的可能解决方案?
- 19. .net core命令不会生成omnisharp的解决方案文件
- 20. SWI-Prolog:如何编写命令行输出的解决方案?
- 21. 使用mdtool命令行编译Windows上的c#解决方案
- 22. 运行命令提示符命令以在Visual Studio中启动解决方案
- 23. 如何从Windows 10的命令行构建Visual Studio 2015 vb解决方案
- 24. powershell命令 - 等到visual studio解决方案加载
- 25. 从msbuild命令行生成VS2010解决方案文件
- 26. 在外壳绕过文件头通用解决方案命令
- 27. 如何保存VS解决方案由devenv改变/命令“File.AddExistingProject”
- 28. VB.NET解决方案中的间接引用解决方案构建
- 29. 打印解决方案(新的C)
- 30. 新的SQL查询解决方案
非常有见地,谢谢。但是,您如何知道为模板编写“ConsoleApplication.zip”?你在哪里看到这个?在什么右窗格中? – Darius 2015-04-06 07:06:17
我编辑了我的答案,查看我的更改 – codingadventures 2015-04-06 13:25:55