是否可以使用项目模板添加解决方案文件夹?如果它没有内置功能,是否可以为此创建一个自定义任务?将解决方案文件夹添加到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