我将创建一个自定义的Visual Studio项目模板,以避免为ASP.NET Core项目重复执行常见配置任务,例如添加支持MySQL的EntityFramework。因此,我为此创建了一个新的示例项目,并使用“项目>导出模板”进行了导出。
但是,当我基于我的自定义模板创建新项目时,所有文件夹(如Controllers或Views)都会丢失,只有wwwroot存在。我检查了.vstemplate文件,它似乎正确地添加了这些文件夹。
但是,当我基于我的自定义模板创建新项目时,所有文件夹(如Controllers或Views)都会丢失,只有wwwroot存在。我检查了.vstemplate文件,它似乎正确地添加了这些文件夹。
<Folder Name="wwwroot" TargetFolderName="wwwroot" />
<Folder Name="Controllers" TargetFolderName="Controllers">
我觉得很难理解,为什么会创建wwwroot
文件夹,但没有创建Controllers
文件夹,因为它们都使用了完全相同的指令。
完整的 VS 模板文件如下:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>AspNetCoreMySQL</Name>
<Description>Test</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>AspNetCoreMySQL</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="AspNetCoreMySQL.csproj" File="AspNetCoreMySQL.csproj" ReplaceParameters="true">
<Folder Name="Properties" TargetFolderName="Properties">
<ProjectItem ReplaceParameters="true" TargetFileName="launchSettings.json">launchSettings.json</ProjectItem>
</Folder>
<Folder Name="wwwroot" TargetFolderName="wwwroot" />
<Folder Name="Controllers" TargetFolderName="Controllers">
<ProjectItem ReplaceParameters="true" TargetFileName="PageController.cs">PageController.cs</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="ScaffoldingReadMe.txt">ScaffoldingReadMe.txt</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Startup.cs">Startup.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
Documents/Visual Studio 2017/Templates/ProjectTemplates
的压缩文件完全被忽略了。取而代之的是使用C:\Users\Daniel\AppData\Roaming\Microsoft\VisualStudio\15.0_51c08c96\ProjectTemplatesCache
中提取的文件夹。所以我必须在那里更新它或者首先删除模板的子文件夹。这种愚蠢的行为会导致很多麻烦来做简单的事情……但是感谢你的解决方案,当你首先清除缓存时它就起作用了 :) - Lion