Проект шаблона для Visual Studio - Как указать шаблон для установки пакетов nuget + использовать токены для замены части в файлах
Я хотел бы создать визуальное студийное решение с шаблоном проекта.
Контекст:
Шаги, которые я должен продолжать выполнять, отнимают много времени, и я хочу, чтобы он просто сделал это для меня:
- Я создаю новый веб-проект
- Я устанавливаю последнюю версию пакета
- Я устанавливаю последнюю версию другого пакета
- Я устанавливаю последнюю версию другого пакета
- Я добавляю несколько файлов (всего 3), в которых мне нужно только изменить имя. Например, файл readme, содержащий MyProject.Something, должен быть изменен на AClient.ClientName.
- Я изменяю csproj на подстановочные знаки вместо включения определенных файлов
- Я изменяю строку подключения в web.config на ClientName, а не на ту, которая идет из установленного пакета nuget...
и т. д.
Вопрос:
Можно ли сделать это с помощью мастера шаблонов проектов?
Возможно, имеет отношение к тому, что я хочу достичь / примечания:
- Я видел кое-что упомянутое о CustomParameters для шаблонов проектов: https://docs.microsoft.com/en-us/visualstudio/extensibility/customparameters-element-visual-studio-templates?view=vs-2017 но это не похоже на когда вы используете шаблон проекта, это даст вам возможность ввести значения для пользовательских параметров, которые вы хотите использовать в шаблоне проекта. Например, мне нужно иметь пользовательский параметр для "DatabaseName", который будет заполнять web.config $ databasename $.
- Я также не мог понять, как я могу сказать ему использовать последнюю версию пакета, а не ту, которую я предоставляю в шаблоне, который я экспортирую. Пакет, который я загружаю, обновляется, и когда я создаю новый проект из этого шаблона, я хотел бы, чтобы он установил самый современный пакет... или один, который я определяю с пользовательским параметром, если это возможно.
Компромисс:
Любая помощь будет отличной! Я не против создать консольное приложение для этого, если это то, что нужно. Я должен делать это примерно 10 раз в неделю, и так делают еще 5 разработчиков, и это безумие для нас, чтобы продолжать делать то же самое снова и снова.
(см. связанный вопрос: не разрешено запускать FindPackagesById в URL-адресе частного хранилища - Nuget)