是否可以使用項目模板添加解決方案文件夾?如果它沒有內置功能,是否可以爲此創建一個自定義任務?將解決方案文件夾添加到Visual Studio項目模板
2
A
回答
1
這是可能的,你如何可以檢查這個msdn網站。 或對於total overview
2
這有點棘手。你不能用簡單的項目模板來做到這一點。項目模板只能在單個項目級別上運行。要實現更高級的邏輯,您需要實施WizardExtension並將其註冊到模板的.vstemplate
文件中。
<WizardExtension>
<Assembly>AssemblyInGACWithSomeLogic</Assembly>
<FullClassName>MySuperWizardExtension</FullClassName>
</WizardExtension>
您可以在MSDN上找到更多關於嚮導擴展的信息。
-3
我用下面的代碼片段在我的項目模板嚮導(見麥克Chaliy的答案):
private static SolutionFolder GetSolutionFolder(Solution2 solution) {
var project = GetSolutionFolderProject(solution);
return (SolutionFolder) project.Object;
}
private static Project GetSolutionFolderProject(Solution2 solution) {
var project =
solution.Projects.Cast<Project>().FirstOrDefault(p => p.Name == "Solution Items");
if (project == null) project = solution.AddSolutionFolder("Solution Items");
return project;
}
其中_solution = (Solution2) _dte.Solution;
0
可以使用模板嚮導做。我想你已經知道如何實現它。
所以,RunFinished方法裏面,寫這幾行:
var destFolder = Directory.GetParent(path).Parent;
System.IO.Directory.CreateDirectory(destFolder.FullName + "\\.nuget");
((Solution2) _dte.Solution).AddSolutionFolder(destFolder.FullName + "\\.nuget");
對你有參考EnvDTE80.dll溶液2類。 _dte必須從RunStarted方法設置。
private DTE _dte;
public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
_dte = (DTE)automationObject;
}
相關問題
- 1. 將文件夾結構添加到Visual Studio解決方案
- 2. 將CMake項目添加到Visual Studio解決方案
- 3. 如何將JavaScript項目添加到Visual Studio解決方案
- 4. 從Visual Studio的解決方案文件夾創建項目模板
- 5. 如何將新項目添加到Visual Studio解決方案文件?
- 6. 項目級別的Visual Studio解決方案文件夾
- 7. Visual Studio解決方案中的文件夾或項目?
- 8. Visual studio C++將文件的副本添加到解決方案
- 9. Nuget如何將文件添加到解決方案文件夾
- 10. Visual Studio,將解決方案複製到構建文件夾
- 11. 在項目模板嚮導中添加解決方案項目
- 12. 以編程方式將多個項目添加到Visual Studio解決方案中?
- 13. Visual Studio 2008不斷添加3個文件夾到前綴爲「Visual Studio」的解決方案文件夾中
- 14. 將「已添加」文件夾添加到解決方案?
- 15. 添加Nuget包到多項目解決方案模板
- 16. Visual Studio解決方案和項目
- 17. Visual Studio解決方案/項目組織
- 18. Visual Studio 2003解決方案到Visual Studio 2013解決方案
- 19. 解決方案文件與Visual Studio中的項目文件
- 20. Visual Studio 2010的多項目解決方案添加
- 21. 添加多個項目的Visual Studio解決方案
- 22. 將NuGet包文件夾添加到解決方案文件?
- 23. 將非.net(靜態)web項目添加到Visual Studio解決方案
- 24. 將項目添加到msbuild任務中的visual studio解決方案
- 25. 在Visual Studio中將現有項目添加到解決方案「只讀」
- 26. 通過腳本將項目添加到Visual Studio C++解決方案
- 27. 是否可以將ssis項目添加到visual studio解決方案中?
- 28. Visual Studio 2008將現有項目添加到主要解決方案
- 29. 爲什麼要將項目添加到解決方案而不是文件夾?
- 30. 重構解決方案文件夾到新解決方案
好吧,你介意發佈你的完整的IWizard實現嗎?我不明白我應該在哪裏調用GetSolutionFolder方法? – Marcus 2012-03-16 14:29:39
public void RunStarted(object application,Dictionary replacementsDictionary,WizardRunKind runKind,object [] customParams){ \t \t \t _dte = application as _DTE; \t \t \t _solution =(Solution2)_dte.Solution; \t \t \t _solutionFolder = GetSolutionFolder(_solution); \t \t} –
ulu
2012-03-17 05:30:55