我正在创建用于工作的MVC starterkit,并且在创建多项目模板时无法进行大量手动修改。Visual Studio 2012具有相互依赖关系的多个项目模板
我有什么是对彼此一些依赖4个项目:
- StarterKit.Common - 不依赖
- StarterKit.DAL - 依赖于StarterKit.Common
- StarterKit.BL - 依赖到StarterKit.Common和StarterKit.DAL StarterKit.Web - 依赖于其他三个
我试着去每个出口的工程中的路线t使用导出模板向导,创建一个根.vstemplate文件并将其全部压缩。虽然这有效(我可以基于这个模板创建一个新的解决方案),但它有一些严重的问题。
首先,出口取代了每个项目的整个命名空间$ safeprojectname $,即StarterKit.DAL => $ safeprojectname $,StarterKit.Web => $ safeprojectname $等
这意味着,当新项目被创建(我们称之为XXX),以前在名称空间中的内容StarterKit.Web现在在XXX名称空间中结束,之前的StarterKit.BL 也是最终在XXX名称空间中!
这显然不起作用。其次,一些使用语句根本不被替换。例如using StarterKit.Common;
在Web项目中未被替换,因为它没有正确的名称空间(即StarterKit.Web)。
第三,我有一些.tt脚本包含使用我想要替换的语句,但即使我在项目中设置了ReplaceParameters="true"
,这些脚本根本没有触及。
我也研究过创建一个VSIX项目,但坦率地说,我不明白我该如何使用它。对我来说,它看起来很像一个zip工具,为你创建.vstemplate并将.zip重命名为.vsix。
我需要做的是:
- 包所有在一个单一的部署文件可用的项目在VS
- 当创建一个newproject一个“新建项目”模板,全部替换“入门套件” .csproj,.cs,.cshtml和.tt文件中的名称空间引用与用户选择的任何解决方案名称
- 找出一个简单的过程,只要基础项目发生更改,我就可以轻松更新模板(添加/删除文件,改名,内容改变等)
有没有人有任何想法,如果这甚至可能?
非常好的解决方案。尽管这次我不打算使用它(PS脚本适用于我们的目的),但我会将其标记为答案,因为它可能是解决原始问题的唯一方法。 – peter3