У меня есть определение для визуального решения студии. Я достигаю этого, определяя шаблон верхнего уровня для решения, а затем два шаблона проекта.
Вот шаблон решения:
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Hosted Process (.net Core)</Name>
<Description>.NET Core hosted process with boilerplate code for building container/linux deployable applications.</Description>
<Icon>__TemplateIcon.png</Icon>
<ProjectType>CSharp</ProjectType>
<DefaultName>HostedProcessApp</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink TargetFolderName="$projectname$" ProjectName="$projectname$">
HostedProcessTemplate\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink TargetFolderName="Tests" ProjectName="$projectname$.Tests" CopyParameters="true">
HostedProcessTemplateTests\MyTemplate.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
Это работает хорошо! Но сейчас мне бы хотелось создать элементы на уровне решения, а не в самих проектах (у меня есть файл nuget и .gitignore, я хочу существовать для каждого решения, созданного с использованием шаблона).
I ' мы пытались добавить элементы в шаблон решения как "ProjectItem", но не работают:
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Hosted Process (.net Core)</Name>
<Description>.NET Core hosted process with boilerplate code for building container/linux deployable applications.</Description>
<Icon>__TemplateIcon.png</Icon>
<ProjectType>CSharp</ProjectType>
<DefaultName>HostedProcessApp</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectItem TargetFileName="nuget.config">nuget.config</ProjectItem>
<ProjectItem TargetFileName="Coverlet.runsettings">Coverlet.runsettings</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="$projectname$.sln.DotSettings">$projectname$.sln.DotSettings</ProjectItem>
<ProjectItem TargetFileName=".dockerignore">.dockerignore</ProjectItem>
<ProjectTemplateLink TargetFolderName="$projectname$" ProjectName="$projectname$">
HostedProcessTemplate\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink TargetFolderName="Tests" ProjectName="$projectname$.Tests" CopyParameters="true">
HostedProcessTemplateTests\MyTemplate.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
Кому-нибудь удалось это сделать? Спасибо за указатели заранее!