我已经生成了一个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.UI\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.BusinessLogic" CopyParameters="true">
MyTemplate.BusinessLogic\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.DataModels" CopyParameters="true">
MyTemplate.DataModels\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Helpers" CopyParameters="true">
MyTemplate.Helpers\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Interfaces" CopyParameters="true">
MyTemplate.Interfaces\MyTemplate.vstemplate
</ProjectTemplateLink>
<SolutionFolder Name="$safeprojectname$.Services" CopyParameters="true">
<ProjectTemplateLink ProjectName="$safeprojectname$.APIConnector" CopyParameters="true">
MyTemplate.Services.APIConnector\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.AuthProvider_AAD" CopyParameters="true">
MyTemplate.Services.AuthProvider_AAD\MyTemplate.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:\MyProjects\WidgetProject\WidgetProject.sln
WidgetProject\WidgetProject.UI
WidgetProject\WidgetProject.BusinessLogic
WidgetProject\WidgetProject.BusinessLogic
WidgetProject\WidgetProject.DataModels
WidgetProject\WidgetProject.Helpers
WidgetProject\WidgetProject.Interfaces
WidgetProject\WidgetProject.Services\APIConnector
WidgetProject\WidgetProject.Services\AuthProvider_AAD
所有项目文件夹都深一层...我想将它们放在与.sln
文件相同的文件夹级别。
我确信这只是.vstemplate
文件中的一个简单设置,但我只是想不通。
TYIA
答案 0 :(得分:0)
不幸的是,但是当您基于模板创建新项目时,对话框屏幕中将设置“将解决方案和项目放置在同一目录中”。 看起来没有办法通过模板定义来控制它。 您所能做的:您可以在项目(或项目组)定义的描述节点中写一条注释,即您偏爱解决方案的特定设置...