VS 2019 自定义 ASP.NET 核心项目模板
VS 2019 Custom ASP.NET Core project templates
我正在尝试弄清楚如何(或者即使)我可以创建一个自定义 Visual Studio 项目模板,该模板可以挂接到 Visual Studio 中现有的 ASP.NET 核心 Web 应用程序模板] 2019?
我想做的是类似于 madskristensens ASP.NET Core Template Pack (GitHub source code)。但是,我想为 VS 2019 的改进 "New Project Dialog" window 执行此操作,而不是 VS 2017。因此,想象一下在下面突出显示的位置添加一个额外的 ASP.NET 核心 Web 应用程序模板。
我能够创建新的项目模板(Visual Studio 和 dotnet new
),但到目前为止没有任何效果。有没有人能够以这种方式扩展 VS 2019,或者这在 VS 2017 之后被取消了?
在 VS 2017 和 2019(社区)之间进行了更多调查后,我成功地解决了这个问题!伙计,伙计,我们需要一些关于这方面的文档吗,因为这感觉很糟糕!
我能够使用 ASP.NET 核心模板包作为构建块来组合一些东西。对于那些不知道的人,扩展旨在使用扩展中嵌入的 .nupkg
文件将模板添加到 Visual Studio。 .nupkg
文件的使用类似于支持 both Visual Studio 2017 和 2019 的 dotnet new
works with custom templates. I've got a working prototype on GitHub。
现在,如果您像我一样,可能会查看 madskristensens 或我的项目并问“这到底是怎么回事!?”好问题!以下是我现在有时间填写的详细信息:
- 构建一个(或多个)自定义模板并将它们放入
*.nupkg
个文件中
- 在我的示例中,我的
SampleTemplates
项目包含三个不同的项目模板。我用 dotnet pack
生成 .nupkg
.template.config/
文件夹中需要 vs-2017.3.host.json
文件,以便 ASP.NET Web 应用程序向导可以显示模板。
- 至少需要满足 1 个或多个其他要求才能在 ASP.NET Web 应用程序向导中显示,但我还没有弄清楚这些,因为将文件添加到控制台应用程序模板不会让它出现。我想尝试解决这个问题,但如果有人已经知道,我很乐意提供帮助!
template.json
需要 Framework symbol 来定义模板支持的 .NET Core 框架目标列表。
- 在做一些测试时,
Framework
符号似乎没有替代 .csproj
,所以这就是为什么我的示例还包含 TargetFrameworkOverride
符号Framework
符号替换。
- 将
.nupkg
文件放入 VSIX 扩展项目的 root 并确保将“包含在 VSIX 中”标志设置为 True
.我强调 root 是因为最初我将 NuGet 包放在扩展程序的 build\
文件夹中,而我的模板没有被拾取。
我将尝试在我的示例项目中整合一个 README,以更好地概述完成此任务所需的所有细节。祈祷这对某人有所帮助(或者至少在我不可避免地忘记我是如何做到这一点的时候帮助我)!
更新
截至 2020 年 9 月 2 日,Visual Studio 团队发布了一项实验性功能,将 dotnet new
个模板包含在 Visual Studio 中。我用它做了一些极少的测试,它似乎确实有效,但并不完美。例如,我创建了一个 dotnet new
模板来构建多个 .csproj
文件和 .sln
文件,但输出与我的解决方案不完全匹配。
这是描述公告的 Visual Studio 博客 post:https://devblogs.microsoft.com/dotnet/net-cli-templates-in-visual-studio/
我正在尝试弄清楚如何(或者即使)我可以创建一个自定义 Visual Studio 项目模板,该模板可以挂接到 Visual Studio 中现有的 ASP.NET 核心 Web 应用程序模板] 2019?
我想做的是类似于 madskristensens ASP.NET Core Template Pack (GitHub source code)。但是,我想为 VS 2019 的改进 "New Project Dialog" window 执行此操作,而不是 VS 2017。因此,想象一下在下面突出显示的位置添加一个额外的 ASP.NET 核心 Web 应用程序模板。
我能够创建新的项目模板(Visual Studio 和 dotnet new
),但到目前为止没有任何效果。有没有人能够以这种方式扩展 VS 2019,或者这在 VS 2017 之后被取消了?
在 VS 2017 和 2019(社区)之间进行了更多调查后,我成功地解决了这个问题!伙计,伙计,我们需要一些关于这方面的文档吗,因为这感觉很糟糕!
我能够使用 ASP.NET 核心模板包作为构建块来组合一些东西。对于那些不知道的人,扩展旨在使用扩展中嵌入的 .nupkg
文件将模板添加到 Visual Studio。 .nupkg
文件的使用类似于支持 both Visual Studio 2017 和 2019 的 dotnet new
works with custom templates. I've got a working prototype on GitHub。
现在,如果您像我一样,可能会查看 madskristensens 或我的项目并问“这到底是怎么回事!?”好问题!以下是我现在有时间填写的详细信息:
- 构建一个(或多个)自定义模板并将它们放入
*.nupkg
个文件中- 在我的示例中,我的
SampleTemplates
项目包含三个不同的项目模板。我用dotnet pack
生成
.nupkg
- 在我的示例中,我的
.template.config/
文件夹中需要vs-2017.3.host.json
文件,以便 ASP.NET Web 应用程序向导可以显示模板。- 至少需要满足 1 个或多个其他要求才能在 ASP.NET Web 应用程序向导中显示,但我还没有弄清楚这些,因为将文件添加到控制台应用程序模板不会让它出现。我想尝试解决这个问题,但如果有人已经知道,我很乐意提供帮助!
template.json
需要 Framework symbol 来定义模板支持的 .NET Core 框架目标列表。- 在做一些测试时,
Framework
符号似乎没有替代.csproj
,所以这就是为什么我的示例还包含TargetFrameworkOverride
符号Framework
符号替换。
- 在做一些测试时,
- 将
.nupkg
文件放入 VSIX 扩展项目的 root 并确保将“包含在 VSIX 中”标志设置为True
.我强调 root 是因为最初我将 NuGet 包放在扩展程序的build\
文件夹中,而我的模板没有被拾取。
我将尝试在我的示例项目中整合一个 README,以更好地概述完成此任务所需的所有细节。祈祷这对某人有所帮助(或者至少在我不可避免地忘记我是如何做到这一点的时候帮助我)!
更新
截至 2020 年 9 月 2 日,Visual Studio 团队发布了一项实验性功能,将 dotnet new
个模板包含在 Visual Studio 中。我用它做了一些极少的测试,它似乎确实有效,但并不完美。例如,我创建了一个 dotnet new
模板来构建多个 .csproj
文件和 .sln
文件,但输出与我的解决方案不完全匹配。
这是描述公告的 Visual Studio 博客 post:https://devblogs.microsoft.com/dotnet/net-cli-templates-in-visual-studio/