我试图弄清楚如何(甚至可以)创建一个自定义Visual Studio项目模板,该模板可以与Visual Studio 2019中可用的现有ASP.NET Core Web应用程序模板挂钩?
我想做的事情类似于madskristensens ASP.NET Core Template Pack(GitHub source code)。但是,我想用VS 2019的“ New Project Dialog”窗口来代替VS 2017。因此,请想象在下面突出显示的位置添加一个附加的ASP.NET Core Web应用程序模板。
我能够创建新的项目模板(适用于Visual Studio和dotnet new
),但到目前为止没有任何效果。有没有人能够以这种方式扩展VS 2019,还是在VS 2017之后被带走了?
答案 0 :(得分:0)
在VS 2017和2019(社区)之间进行了更多调查之后,我能够成功解决这个问题!哦,哦,我们需要对此做些文档,因为这感觉像个傻瓜!
我能够将ASP.NET Core模板包用作将某些东西放在一起的构造块。对于那些不知道的人,这些扩展程序旨在使用嵌入在扩展程序中的.nupkg
文件向Visual Studio添加模板。 .nupkg
文件的使用与dotnet new
works with custom templates的用法类似。我有一个working prototype on GitHub同时支持 Visual Studio 2017和2019。
现在,如果您像我一样,可以看看madskristensens或我的项目,然后问“这到底是怎么工作的?!”好问题!以下是我现在有时间填写的详细信息:
*.nupkg
文件中
SampleTemplates
项目包含三个不同的项目模板。我用.nupkg
dotnet pack
vs-2017.3.host.json
文件夹中需要一个.template.config/
文件,以便ASP.NET Web应用程序向导可以显示模板。
template.json
需要一个Framework symbol来定义模板支持的.NET Core框架目标的列表。
Framework
符号没有替代.csproj
,因此这就是为什么我的示例中还包含一个TargetFrameworkOverride
符号的原因Framework
符号替换。.nupkg
文件放入VSIX扩展项目的 root 中,并确保将“ Include in VSIX”标志设置为True
。我强调root用户,因为起初我将NuGet软件包放在扩展程序的build\
文件夹中,而我的模板没有被拿走。我将在示例项目中尝试编写自述文件,以更好地概述完成此操作所需的所有细节。用手指交叉可以帮助某人(或者至少在将来不可避免地忘记我是如何做到这一点的时候帮助我)!