VS2017解决方案模板结构

时间:2019-05-16 08:45:18

标签: visual-studio-2017 visual-studio-templates

我已经生成了一个VS(多)项目模板,使用它时我很难控制 base 层次结构。

模板源文件夹/完整解决方案具有以下项目

MyTemplate.UI
MyTemplate.BusinessLogic
MyTemplate.DataModels
MyTemplate.Helpers
MyTemplate.Interfaces
MyTemplate.Services.APIConnector
MyTemplate.Services.AuthProvider_AAD

.vstemplate文件是

<VSTemplate Version="2.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
    <TemplateData>
        <Name>IoC Template</Name>
        <Description>Template with IoC/project separation</Description>
        <Icon>Icon.ico</Icon>
        <ProjectType>CSharp</ProjectType>
    </TemplateData>
    <TemplateContent>
        <ProjectCollection>
            <ProjectTemplateLink ProjectName="$safeprojectname$.UI" CopyParameters="true">
                    MyTemplate.UI\MyTemplate.vstemplate
            </ProjectTemplateLink>
            <ProjectTemplateLink ProjectName="$safeprojectname$.BusinessLogic" CopyParameters="true">
                    MyTemplate.BusinessLogic\MyTemplate.vstemplate
            </ProjectTemplateLink>
            <ProjectTemplateLink ProjectName="$safeprojectname$.DataModels" CopyParameters="true">
                    MyTemplate.DataModels\MyTemplate.vstemplate
            </ProjectTemplateLink>
            <ProjectTemplateLink ProjectName="$safeprojectname$.Helpers" CopyParameters="true">
                    MyTemplate.Helpers\MyTemplate.vstemplate
            </ProjectTemplateLink>
            <ProjectTemplateLink ProjectName="$safeprojectname$.Interfaces" CopyParameters="true">
                    MyTemplate.Interfaces\MyTemplate.vstemplate
            </ProjectTemplateLink>
            <SolutionFolder Name="$safeprojectname$.Services" CopyParameters="true">
                <ProjectTemplateLink ProjectName="$safeprojectname$.APIConnector" CopyParameters="true">
                    MyTemplate.Services.APIConnector\MyTemplate.vstemplate
                </ProjectTemplateLink>
                <ProjectTemplateLink ProjectName="$safeprojectname$.AuthProvider_AAD" CopyParameters="true">
                    MyTemplate.Services.AuthProvider_AAD\MyTemplate.vstemplate
                </ProjectTemplateLink>
            </SolutionFolder>
        </ProjectCollection>
    </TemplateContent>
</VSTemplate>

现在,当创建解决方案/项目时,一切都会按预期部署,但是,它似乎总是从基本文件夹中插入附加的文件夹级别...

因此,可以说我想创建一个项目调用WidgetProject,在VS2017 File-> New -> Project中,选择模板并设置以下内容

Name = WidgetProject
Location = C:\WorkProjects
Solution name = WidgetProject
Create directory for solution = ticked

然后作为文件夹结构生成的是

C:\MyProjects\WidgetProject\WidgetProject.sln
                            WidgetProject\WidgetProject.UI
                            WidgetProject\WidgetProject.BusinessLogic
                            WidgetProject\WidgetProject.BusinessLogic
                            WidgetProject\WidgetProject.DataModels
                            WidgetProject\WidgetProject.Helpers
                            WidgetProject\WidgetProject.Interfaces
                            WidgetProject\WidgetProject.Services\APIConnector
                            WidgetProject\WidgetProject.Services\AuthProvider_AAD

所有项目文件夹都深一层...我想将它们放在与.sln文件相同的文件夹级别。

我确信这只是.vstemplate文件中的一个简单设置,但我只是想不通。

TYIA

1 个答案:

答案 0 :(得分:0)

不幸的是,但是当您基于模板创建新项目时,对话框屏幕中将设置“将解决方案和项目放置在同一目录中”。 看起来没有办法通过模板定义来控制它。 您所能做的:您可以在项目(或项目组)定义的描述节点中写一条注释,即您偏爱解决方案的特定设置...