我正在开发一个自动化流程来构建一个基础应用程序,以包含公共库和项目,将所有内容都检查到源代码控制中,并为解决方案设置基本构建。我解决了大多数问题,除了一个。是否有可能拦截用户给定解决方案和项目的路径并改变该路径?
换句话说。
用户在创建新项目屏幕上提供C:/ Projects / App1。 解决方案和项目实际存储在C:/ Projects / App1 / trunk / source / App1
我想更改路径以方便我们为连续构建设置TFS。除了这个问题,我已经解决了大多数其他问题,看起来这应该是最简单的。我试着看看我是否可以在我的IWizard课程中更改它,但到目前为止,没有运气。任何建议都将不胜感激。
我应该补充一点,用户选择自定义模板会触发此过程。如果使用自定义模板没有答案,我将切换到VS加载项。
-Scott
答案 0 :(得分:1)
你看看Guidance Automation Toolkit。除此之外,它还允许您创建解决方案模板,使您可以执行所有提及的操作,等等。您甚至可以向用户提供向导UI,询问可以根据要包含的项目和文件引用自定义解决方案的选项。您可以设置各种项目设置;执行标准等。
您可以在Service Factory中看到一个复杂的GAT示例。 http://social.msdn.microsoft.com/forums/en-US/vsgatk/threads/还有一个GAT论坛。
GAT是使用Visual Studio Extensibility真正完成任务的好方法。
答案 1 :(得分:1)
在进行了一些调查之后,我发现直到已经创建了解决方案(而不是项目)的文件夹结构之后才会调用IWizard接口。由于我需要取得进展,我决定继续将其切换到Visual Studio的加载项,而不是纯粹模板化的过程。
我已经有了更多运气以编程方式创建解决方案,然后将模板化项目添加到我的解决方案中。我能够解决这个问题。我已经剪了一些代码,但这给出了基本的想法。
System.Type vsType = System.Type.GetTypeFromProgID(“VisualStudio.DTE.9.0”); DTE2 vs =(DTE2)System.Activator.CreateInstance(vsType,true);
soln =(Solution2)vs.Solution;
soln.Create(PathProjectRoot,SolutionName);
soln.SaveAs(解决方案名称);
感谢大家的建议。
答案 2 :(得分:0)
我不确定你在做什么,但项目模板可以做到这一点。不确定这是否适用于您的情况。
已添加:像这样:
<TemplateContent>
<Project>
<Folder>
<Folder>
<ProjectItem></ProjectItem
</Folder>
</Folder>
</Project>
</TemplateContent>