我已经生成了一个VS(多(项目模板,我在使用时尝试控制 base 层次结构很难。
模板源文件夹/完整解决方案具有以下项目
MyTemplate.UI
MyTemplate.BusinessLogic
MyTemplate.DataModels
MyTemplate.Helpers
MyTemplate.Interfaces
MyTemplate.Services.APIConnector
MyTemplate.Services.AuthProvider_AAD
.vstemplate
文件是
<VSTemplate Version="2.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>IoC Template</Name>
<Description>Template with IoC/project separation</Description>
<Icon>Icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="$safeprojectname$.UI" CopyParameters="true">
MyTemplate.UIMyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.BusinessLogic" CopyParameters="true">
MyTemplate.BusinessLogicMyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.DataModels" CopyParameters="true">
MyTemplate.DataModelsMyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Helpers" CopyParameters="true">
MyTemplate.HelpersMyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Interfaces" CopyParameters="true">
MyTemplate.InterfacesMyTemplate.vstemplate
</ProjectTemplateLink>
<SolutionFolder Name="$safeprojectname$.Services" CopyParameters="true">
<ProjectTemplateLink ProjectName="$safeprojectname$.APIConnector" CopyParameters="true">
MyTemplate.Services.APIConnectorMyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.AuthProvider_AAD" CopyParameters="true">
MyTemplate.Services.AuthProvider_AADMyTemplate.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
现在,当创建解决方案/项目时,所有内容都按预期部署,但是它似乎总是从基本文件夹插入附加的文件夹级别...
所以,可以说我想创建一个项目调用WidgetProject
,在VS2017,File-> New -> Project
中,选择模板并设置以下
Name = WidgetProject
Location = C:WorkProjects
Solution name = WidgetProject
Create directory for solution = ticked
这将作为文件夹结构生成的是
C:MyProjectsWidgetProjectWidgetProject.sln
WidgetProjectWidgetProject.UI
WidgetProjectWidgetProject.BusinessLogic
WidgetProjectWidgetProject.BusinessLogic
WidgetProjectWidgetProject.DataModels
WidgetProjectWidgetProject.Helpers
WidgetProjectWidgetProject.Interfaces
WidgetProjectWidgetProject.ServicesAPIConnector
WidgetProjectWidgetProject.ServicesAuthProvider_AAD
所有项目文件夹都是一个额外的层……我想将它们放在与.sln
文件相同的文件夹级别。
我确定它只是.vstemplate
文件中的一个简单设置,但我无法弄清楚。
Tyia
不幸的是,但是当您根据模板创建一个新项目时,在对话框屏幕中会有一个设置"放置解决方案和项目"。由于看来没有办法从模板定义中控制它。您所能做的:您可以在项目(或项目组(定义的描述节点中写下评论,您更喜欢解决方案的特定设置...