Структура шаблона решения VS2017

Я создал шаблон проекта 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, но я просто не могу понять.

ТИА


person Chris Hammond    schedule 16.05.2019    source источник
comment
Дело в том, что VS позволяет создавать только шаблон проекта, который при создании помещается в папку в решении. Я сомневаюсь, что вы можете что-то сделать для этого. Или, если найдете, буду рад узнать.   -  person Grégory L    schedule 28.08.2019


Ответы (1)


К сожалению, когда вы создаете новый проект на основе своего шаблона, в диалоговом окне есть параметр «Поместить решение и проект в один каталог». Похоже, что нет возможности контролировать это из определения шаблона. Все, что вы можете сделать: вы можете написать комментарий в своем узле описания проекта (или группы проектов), что вы предпочитаете этот конкретный параметр для своего решения...

person Csaba Nagy    schedule 08.05.2020