Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates Visual Studio 2012具有相互依赖关系的多项目模板_Templates_Visual Studio 2012_Vsix_Visual Studio Templates - Fatal编程技术网

Templates Visual Studio 2012具有相互依赖关系的多项目模板

Templates Visual Studio 2012具有相互依赖关系的多项目模板,templates,visual-studio-2012,vsix,visual-studio-templates,Templates,Visual Studio 2012,Vsix,Visual Studio Templates,我正在为工作创建一个MVC初学者工具包,我在创建一个多项目模板时遇到了问题,创建后不需要大量手动修改 我有4个相互依赖的项目: StarterKit.Common-无依赖性 StarterKit.DAL-对StarterKit.Common的依赖关系 StarterKit.BL-对StarterKit.Common和StarterKit.DAL的依赖关系 Web—对其他三个的依赖关系 我尝试过使用导出模板向导导出每个项目,创建一个root.vstemplate文件并将其压缩。虽然这是可行的(

我正在为工作创建一个MVC初学者工具包,我在创建一个多项目模板时遇到了问题,创建后不需要大量手动修改

我有4个相互依赖的项目:

  • StarterKit.Common-无依赖性
  • StarterKit.DAL-对StarterKit.Common的依赖关系
  • StarterKit.BL-对StarterKit.Common和StarterKit.DAL的依赖关系 Web—对其他三个的依赖关系
我尝试过使用导出模板向导导出每个项目,创建一个root.vstemplate文件并将其压缩。虽然这是可行的(我可以基于这个模板创建一个新的解决方案),但它存在一些严重的问题

首先,导出将每个项目的整个名称空间替换为$safeprojectname$,即startKit.DAL=>$safeprojectname$、startKit.Web=>$safeprojectname$等

这意味着,当创建新项目时(让我们称之为XXX),以前在名称空间StarterKit.Web中的内容现在在XXX名称空间中结束,以前在StarterKit.BL中的内容也在XXX名称空间中结束

这显然行不通

其次,一些using语句根本没有被替换。例如
使用StarterKit.Common,因为它没有正确的命名空间(即StarterKit.web)

第三,我有一些.tt脚本,其中包含我想替换的using语句,但即使我在项目中设置了
replacepartameters=“true”
,它们也没有被触及

我还考虑过创建一个VSIX项目,但坦率地说,我不知道如何使用它。对我来说,它看起来更像是一个zip实用程序,它为您创建.vstemplate,并为我将.zip重命名为.vsix

我需要做的是:

  • 将所有项目打包到单个部署文件中,作为VS中的“新项目”模板提供
  • 创建新项目时,将.csproj、.cs、.cshtml和.tt文件中的所有“StarterKit”命名空间引用替换为用户选择的解决方案名称
  • 找出一个简单的过程,在这个过程中,只要基础项目发生变化(文件添加/删除、重命名、内容更改等),我就可以轻松地更新模板

有人知道这是否可能吗?

我从未找到答案,所以我选择了另一条路线

我已经创建了一个PowerShell脚本,它包含在一个包含解决方案文件的zip文件中。脚本根据用户选择的项目名称重命名解决方案、项目和类


遗憾的是,这必须在Visual Studio之外运行,我从来没有找到答案,所以我选择了另一条路线

我已经创建了一个PowerShell脚本,它包含在一个包含解决方案文件的zip文件中。脚本根据用户选择的项目名称重命名解决方案、项目和类


遗憾的是,这必须在Visual Studio之外运行,我从来没有找到答案,所以我选择了另一条路线

我已经创建了一个PowerShell脚本,它包含在一个包含解决方案文件的zip文件中。脚本根据用户选择的项目名称重命名解决方案、项目和类


遗憾的是,这必须在Visual Studio之外运行,我从来没有找到答案,所以我选择了另一条路线

我已经创建了一个PowerShell脚本,它包含在一个包含解决方案文件的zip文件中。脚本根据用户选择的项目名称重命名解决方案、项目和类


令人沮丧的是,这必须在Visual Studio之外运行,完全公开:我是下面提到的项目的创建者

您可以使用我创建的名为。通过在所有解决方案级别参数前面加上“全局”一词,并将它们添加到子模板的参数中,它可以将解决方案模板级别的信息提供给也运行向导的子模板

如果您将GlobalParams与上述多项目模板一起使用,并且用户输入了“StarterKit”,则以下情况是正确的:

  • 启动器套件。公用的可以访问
    • $safeprojectname$=StarterKit.Common
    • $globalsafeprojectname$=StarterKit
    • $globalguid1$=E8C8A064601844439909D6C33AB90CB3
    • $globalguid2$=020DB5ABF76040C7BDA19EAC54DFE3D8
    • $globalguid3$=8392FB760F754C0AB87778845CC28B6D
    • $globalguid4$=13E07D43F523467587296B2C38650
  • StarterKit.DAL
    • $safeprojectname$=StarterKit.DAL
    • $globalsafeprojectname$=StarterKit
    • $globalguid1$=E8C8A064601844439909D6C33AB90CB3
    • $globalguid2$=020DB5ABF76040C7BDA19EAC54DFE3D8
    • $globalguid3$=8392FB760F754C0AB87778845CC28B6D
    • $globalguid4$=13E07D43F523467587296B2C38650
  • StarterKit.BL
    • $safeprojectname$=StarterKit.BL
    • $globalsafeprojectname$=StarterKit
    • $globalguid1$=E8C8A064601844439909D6C33AB90CB3
    • $globalguid2$=020DB5ABF76040C7BDA19EAC54DFE3D8
    • $globalguid3$=8392FB760F754C0AB87778845CC28B6D
    • $globalguid4$=13E07D43F523467587296B2C38650
  • StarterKit.Web
    • $safeprojectname$=StarterKit.Web
    • $globalsafeprojectname$=StarterKit
    • $globalguid1$=E8C8A064601844439909D6C33AB90CB3
    • $globalguid2$=020DB5ABF76040C7BDA19EAC54DFE3D8
    • $globalguid3$=8392FB760F754C0AB87778845CC28B6D
    • $globalguid4$=13E07D43F523467587296B2C38650
使用,您可以访问具有全局前缀的100
Guid
s,这些全局前缀在子模板中是相同的。因此,Sta