Создание шаблона Visual Studio для создания пользовательских физических папок в сгенерированном выводе. - PullRequest
0 голосов
/ 01 марта 2019

Для создания Многопроектного шаблона я перешел по этой ссылке:

https://docs.microsoft.com/en-us/visualstudio/ide/how-to-create-multi-project-templates?view=vs-2017

Но я хотел иметь более настраиваемую структуру физических каталогов для моих выходных проектов.

Желаемая структура выходного проекта:

Biz (folder) > Business.Profiles (folder) > project
Web (project, is on the root)

In other form, it should be seen as : 
Biz\Business.Profiles
Web

Таким образом, в примере все проблемы связаны с получением папки: Biz

Как мы можем создать папку «Biz»?Еще лучше для меня, не пытался, если возможно, что-то вроде этого:

"$solutionname$".Biz (folder) > Business.Profiles (folder)> project

Поэтому попытался отредактировать основной .vstemplate, добавив приведенный ниже код под узлом SolutionFolder:

<Folder Name=”Biz”>
  <TemplateContent>
    <ProjectCollection>
       <SolutionFolder Name="Biz">
          <Folder Name=”Biz”
             <ProjectTemplateLink ProjectName="Business.Profiles">
                 Biz\Business.Profiles\MyTemplate.vstemplate
             </ProjectTemplateLink>
         </SolutionFolder>
…

В результате «Бизнес. Профили» полностью исчезли из выпуска!После этого я попытался отредактировать этот файл:

Biz\Business.Profiles\MyTemplate.vstemplate

Размещая тег в 2 разных местах на разных попытках:

Сначала я добавил в качестве контейнера для проекта, результат был довольнотак же, как вышеупомянутая попытка, за исключением того, что по крайней мере появилась папка «Biz».

  <TemplateContent>  
    <Folder Name="Biz">     
      <Project TargetFileName="Business.Profiles.csproj" File="Business.Profiles.csproj" ReplaceParameters="true">
        <ProjectItem ReplaceParameters="true" TargetFileName="ContactInfo.cs">ContactInfo.cs</ProjectItem>
...

Во-вторых, я поместил <folder> внутри тега Project, результат был для меня ожидаемым, но нежелательным,папка была создана внутри папки проекта.


В качестве дополнительной заметки, не знаю, связаны они или нет, но у меня были также эти 2 строки в коде последнего раздела:

<CreateNewFolder>true</CreateNewFolder>
<CreateInPlace>true</CreateInPlace>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...