Мультипроектный шаблон для dotnet new

Я создаю шаблон для нескольких проектов, в котором есть несколько дополнительных проектов и папок с решениями. Я прошел через довольно много разных документов и кода на github, чтобы добиться этого, но без особого успеха. Я очень признателен, если бы кто-нибудь мог дать мне некоторую ясность по некоторым из этих вопросов?

  1. Актуален ли XML-файл VSTemplate? Это blog предлагает внести изменения в файл template.json, однако, когда я проверяю примеры в github, люди используют VSTemplate для создания проекта, а также плагин SideWaffleST файл. Если он все еще актуален, хотел бы знать, чем он отличается от файла json?
  2. Используя вышеуказанный VSTemplate, я попытался создать шаблон с несколькими проектами, используя тег ProjectCollection, когда я запускаю команду dotnet run, шаблон выполняется, но проект не создается.

    <ProjectTemplateLink ProjectName="$safeprojectname$.Forms.Plugin.Abstractions">
      Forms.Plugin.Abstractions\Forms.Plugin.Abstractions.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="$safeprojectname$.Forms.Plugin.iOS">
      Forms.Plugin.iOS\Forms.Plugin.iOS.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="$safeprojectname$.Forms.Plugin.iOSUnified">
      Forms.Plugin.iOSUnified\Forms.Plugin.iOSUnified.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="$safeprojectname$.Forms.Plugin.Android">
      Forms.Plugin.Android\Forms.Plugin.Android.vstemplate
    </ProjectTemplateLink>
    <ProjectTemplateLink ProjectName="$safeprojectname$.Forms.Plugin.WindowsPhone">
      Forms.Plugin.WindowsPhone\Forms.Plugin.WindowsPhone.vstemplate
    </ProjectTemplateLink>
    </ProjectCollection>```
    

Можем ли мы создать шаблон для нескольких проектов, используя файл template.json?

Был бы признателен, если бы кто-нибудь мог помочь мне начать работу.


person Libin Joseph    schedule 20.05.2019    source источник


Ответы (1)


Мне удалось заставить работать многопроектный шаблон, внеся изменения в файл template.json.

это последний файл template.json выглядит как

This is my updated template.json file

    {
    "author": "Libin Joseph",
    "classifications": ["Xamarin", "Sample"],
    "name": "Sample Enterprise Template",
    "tags": {
        "language": "C#"
    },
    "identity": "libin.sampletemplate",
    "shortName": "sampletemplate",
    "sourceName": "SampleTemplate",
    "guids": [
        "{41F47D3C-C9E4-45D1-A289-3BDC31E44C19}",
        "{980FBE34-066B-4E87-AFC9-C3205844D980}",
        "{FD448FB5-B24B-4CD2-8E3C-2500CF0E4601}",
        "{D8FC665A-7739-4ADE-85E9-C69AA107EEE6}",
        "{92D25D7D-F637-4634-B939-BB38DE53B606}",
        "{5D52EDF7-47B8-48D2-83B6-104B18568CE4}",
        "{12E171B1-0F36-401A-A171-614F1A1C83E9}",
        "{7A4597AE-2C39-4197-94C9-F5B6B45B2106}"

    ],
    "primaryOutputs": [{
            "path": "SampleTemplate\\SampleTemplate.Android\\SampleTemplate.Android.csproj"
        },
        {
            "path": "SampleTemplate\\SampleTemplate.iOS\\SampleTemplate.iOS.csproj"
        },
        {
            "path": "SampleTemplate\\SampleTemplate\\SampleTemplate.csproj"
        },
        {
            "path": "SampleTemplate.UnitTest\\SampleTemplate.UnitTest.csproj"
        },
        {
            "path": "SampleTemplate.UITest\\SampleTemplate.UITest.csproj"
        },
        {
            "path": "SampleTemplate.Core\\SampleTemplate.Core.csproj"
        }
    ],
    "exclude": ["**/[Bb]in/**", "**/[Oo]bj/**", ".template.config/**/*", "**/*.lock.json"]
    }
person Libin Joseph    schedule 20.05.2019
comment
Спасибо, что поделились! У меня есть один вопрос: что такое Guids в свойстве guids? Это руководство ProjectType, или просто случайное руководство для каждого проекта, или что-то еще? РЕДАКТИРОВАТЬ: Nevermind, найдите ответ здесь: github.com/dotnet/templating /wiki/Reference-for-template.json. Спасибо ! - person Guillaume ZAHRA; 17.08.2019