Шпаргалка на Dotnet Templating

Опубликовано 01.07.2025 17:45:30 в категории Полезности

Немного полезной информации для тех, кто создает свой собственный шаблон приложения для Visual Studio

Несколько полезные параметров для dotnet new шаблонирования (templating). Данные куски кода предназначены для файла template.json вашего шаблона. Все параметры написанные в формате UNDERSCORE_CASE должны быть заменены вашими значениями.

Excluding files

"sources":[{
    "modifiers":[{ 
                "exclude":["**/*.nuspec"]
                }]
        }]

Replacing text in file names

"symbols":{
            "PARAM_NAME":{
                "type":"parameter",
                "description":"PARAMETER_DESCRIPTION",
                "replaces":"TEXT_TO_BE_REPLACED",
                "isRequired":true,
                "FileRename":"TEXT_TO_BE_REPLACED_IN_FILE_NAMES"
            }
        }

Input parameter

"symbols":{
            "PARAM_NAME":{
                "type":"parameter",
                "description":"PARAMETER_DESCRIPTION",
                "replaces":"TEXT_TO_BE_REPLACED",
                "isRequired":true
            }
        }

Transformed parameter (text after the last dot)

"symbols":{
            "PARAM_NAME":{
                "type":"derived",
                "valueSource":"SOURCE_PARAM_NAME",
                "valueTransform":"AfterLastDot",
                "replaces":"TEXT_TO_BE_REPLACED"
            }
},
"Forms":{
            "AfterLastDot":{
                "identifier":"replace",
                "pattern":"^.*\\.(?=[^\\.]+$)",
                "replacement":""
            }
    }

Transformed patrameter (to lower case)

"symbols":{
            "PARAM_NAME":{
                "type":"derived",
                "valueSource":"SOURCE_PARAM_NAME",
                "valueTransform":"ToLower",
                "replaces":"TEXT_TO_BE_REPLACED"
            }
},
"Forms":{
            "ToLower":{
                "identifier":"lowerCase"
            }
    }

Generated port number parameter

"symbols":{
            "PARAM_NAME":{
                "type":"generated",
                "generator":"port",
                "parameters":{
                    "low":LOW_PORT_NUMBER,
                    "high":HIGH_PORT_NUMBER
                },
                "replaces":"TEXT_TO_BE_REPLACED"
            }
        }

Комментарии к статье отключены

Что-то пошло не по сценарию и завершилось ошибкой. Перезагрузить страницу (F5) 🗙

Переподключаем сервер...

Переподключение сломалось... Пробуем еще раз сек.

Не получилось переподключится.
Пожалуйста, обновите страницу F5

Сессия была поставлена сервером на паузу.

Восстановить сессию не получилось.
Пожалуйста, обновите страницу F5.