多项目模板 Visual Studio 2017

Posted

技术标签:

【中文标题】多项目模板 Visual Studio 2017【英文标题】:Multi project template Visual Studio 2017 【发布时间】:2017-09-01 02:15:15 【问题描述】:

我已关注How to create a multi project template in visual studio 2013? 文章创建模板。我的项目结构如下:ProjectName.Domain、ProjectName.Service、ProjectName.UI、ProjectName.sln、root.vstemplate

root.vstemplate 文件包含以下内容:

在每个子项目中都有一个 ProjectName.vstemplate 文件,其中包含如下内容:

我已将 *.zip 文件添加到 /My Documents/Visual Studio 2017/Templates/ProjectTemplates/,但该模板未出现在“新建项目”对话框中。

【问题讨论】:

你解决过这个问题吗? 【参考方案1】:

我在遵循示例时也没有成功,该示例使用 Version="2.0.0" 作为根 vstemplate 文件。但是,当我关注 This article 时,它有一个使用 Version="3.0.0" 的示例。

我从文章中复制了这个 xml 以供快速参考:

<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">  
  <TemplateData>  
    <Name>DevEnvExe Mobile Application Template</Name>  
    <Description>UWP based Windows mobile application with online and offline feature</Description>  
    <ProjectType>CSharp</ProjectType>  
    <ProjectSubType>  
    </ProjectSubType>  
    <SortOrder>1000</SortOrder>  
    <CreateNewFolder>true</CreateNewFolder>  
    <DefaultName>DevEnv_Template</DefaultName>  
    <ProvideDefaultName>true</ProvideDefaultName>  
    <LocationField>Enabled</LocationField>  
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>  
    <Icon>img.png</Icon>  
  </TemplateData>  
  <TemplateContent>  
    <ProjectCollection>  
            <ProjectTemplateLink ProjectName="$projectname$.Offline">  
                Dev_Offline\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
            <ProjectTemplateLink ProjectName="$projectname$.Online">  
                DevEnv_Online\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
        <ProjectTemplateLink ProjectName="$projectname$.Service">  
                DevEnv_Service\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
        <ProjectTemplateLink ProjectName="$projectname$">  
                DevEnv_Template\MyTemplate.vstemplate  
            </ProjectTemplateLink>  
        </ProjectCollection>  
  </TemplateContent>  
</VSTemplate>  

【讨论】:

【参考方案2】:

您可以使用此处提供的工具:

https://github.com/taori/Amusoft.VisualStudio.TemplateGenerator

并使用桌面客户​​端或命令行工具

build configuration [configurationName]

在桌面客户端中这样设置配置后:

你很好。

这样您就可以轻松地定期更新您的模板。

【讨论】:

在某处是否有可用的可执行文件?我试图让它在我的计算机上运行并且桌面客户端项目不会加载。 (我在 github repo 上记录了一个问题。) @inejwstine 感谢您的问题。一旦 netcore 3.0 sdk 达到 RTM 状态,我会将可执行文件推送到 github。我已经在github上回答了你的问题。【参考方案3】:

使用 /installvstemplates 开关运行 devenv.exe。这将强制 Visual Studio 更新项目和项模板。

例如

"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe" /installvstemplates

或者您安装了 Visual Studio 的任何位置。不过,我建议将您的 zip 添加到 ProjectTemplates 中的某个文件夹中,否则您会弄乱您的项目对话框。


如果您想在 bat 文件中使用类似的东西,这里有一个简单的示例,说明如何轻松做到这一点

set VSDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
echo Updating templates...
START "" /B /W "%VSDir%\devenv.exe" /installvstemplates
echo All done!
pause

【讨论】:

以上是关于多项目模板 Visual Studio 2017的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2013 中创建多项目模板?

Visual Studio 2017 运行调试包含有多个可执行程序的项目

在 Visual Studio 项目模板中创建解决方案文件夹

Visual Studio 2017 c++ win32 控制台项目模板

Visual Studio 2017 c++ win32 控制台项目模板

Visual Studio 2017 c ++ win32控制台项目模板