如何在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. 在命令行生成解決方案文件(從頭開始創建新的解決方案)?
- 2. 重新創建解決方案
- 3. 爲VS2008解決方案創建VS2010解決方案文件
- 4. MonoDevelop命令行編譯解決方案
- 5. 命令行構建解決方案vs Visual Studio 2012構建
- 6. mono:在Linux上的命令行構建.Net解決方案
- 7. 構建VS 2015年解決方案與[CMake的/命令行]
- 8. 如何獲得VS解決方案的cmd命令行構建命令?
- 9. 如何在vspackage中獲得當前的解決方案配置?
- 10. 是否可以從命令行創建一個空的Visual Studio解決方案?
- 11. 通過命令提示構建VS解決方案
- 12. 使用Visual Studio 2010從命令行構建C#解決方案
- 13. 從命令行構建ASP.NET解決方案?
- 14. 從命令行構建Xamarin.IOS Visual studio解決方案
- 15. 從命令行在解決方案中構建一個項目
- 16. 爲解決方案創建版本
- 17. 如何創建SharePoint解決方案?
- 18. 期望創建託管解決方案
- 19. 解決方案加載時自動加載VSPackage visual studio擴展?
- 20. 要求用戶創建新表的替代解決方案
- 21. 錯誤創建一個新的解決方案VS2010
- 22. 在Visual Studio中構建解決方案,重建解決方案和清理解決方案的區別?
- 23. 重構解決方案文件夾到新解決方案
- 24. 如何將其他解決方案的項目添加到新創建的解決方案中?
- 25. 解決方案/構建率
- 26. 構建解決方案
- 27. 構建Java解決方案
- 28. 從.exe重新創建C#解決方案
- 29. 在Visual Studio 2010中重新創建解決方案文件
- 30. 使用mdtool命令行編譯Windows上的c#解決方案
非常有見地,謝謝。但是,您如何知道爲模板編寫「ConsoleApplication.zip」?你在哪裏看到這個?在什麼右窗格中? – Darius 2015-04-06 07:06:17
我編輯了我的答案,查看我的更改 – codingadventures 2015-04-06 13:25:55