【问题标题】:VS 2019 Custom ASP.NET Core project templatesVS 2019 自定义 ASP.NET Core 项目模板
【发布时间】:2019-06-24 02:13:00
【问题描述】:

我正在尝试弄清楚如何(或什至)我可以创建一个自定义 Visual Studio 项目模板,该模板与 Visual Studio 2019 中可用的现有 ASP.NET Core Web 应用程序模板挂钩?

我想做的是类似于 madskristenses ASP.NET Core Template Pack (GitHub source code) 的事情。但是,我想为 VS 2019 改进的“新项目对话框”窗口执行此操作,而不是 VS 2017。因此,想象一下在下面突出显示的位置添加一个额外的 ASP.NET Core Web 应用程序模板。

我能够创建新的项目模板(适用于 Visual Studio 和 dotnet new),但到目前为止没有任何效果。有没有人能以这种方式扩展 VS 2019,还是在 VS 2017 之后被取消了?

【问题讨论】:

    标签: asp.net-core visual-studio-2019


    【解决方案1】:

    在 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 或我的项目并问“这到底是如何工作的!?”好问题!以下是我现在有时间填写的详细信息:

    1. 构建自定义模板(或多个模板)并将它们放入*.nupkg 文件中
      • 在我的示例中,我的SampleTemplates 项目包含三个不同的项目模板。我用dotnet pack 生成.nupkg
    2. .template.config/ 文件夹中需要一个vs-2017.3.host.json 文件,以便 ASP.NET Web 应用程序向导可以显示该模板。
      • 至少需要满足 1 个或多个其他要求才能在 ASP.NET Web 应用程序向导中显示,但我还没有弄清楚这些,因为将文件添加到控制台应用程序模板不会导致它出现。我想尝试解决这个问题,但如果有人知道,我很乐意提供帮助!
    3. template.json 需要 Framework symbol 来定义模板支持的 .NET Core 框架目标列表。
      • 在进行一些测试时,看起来Framework 符号并没有替代.csproj,所以这就是为什么我的示例还包含TargetFrameworkOverride 符号替换Framework 符号。
    4. .nupkg 文件放入 VSIX 扩展项目的 root 中,并确保将“包含在 VSIX”标志设置为 True。我强调 root 是因为最初我将 NuGet 包放在了我的扩展程序的 build\ 文件夹中,并且我的模板没有被拾取。

    我将尝试在我的示例项目中编写一个自述文件,以便更好地概述完成此操作所需的所有细节。祈祷这可以帮助某人(或者至少在将来我不可避免地忘记我是如何做到这一点时帮助我)!

    更新

    自 2020 年 9 月 2 日起,Visual Studio 团队发布了一项实验性功能,将 dotnet new 模板包含在 Visual Studio 中。我已经用它做了一些非常少的测试,它似乎确实有效,但它并不完美。例如,我创建了一个 dotnet new 模板,该模板为多个 .csproj 文件和 .sln 文件搭建了脚手架,并且输出与我的解决方案不太匹配。

    这是描述该公告的 Visual Studio 博客文章:https://devblogs.microsoft.com/dotnet/net-cli-templates-in-visual-studio/

    【讨论】:

    • 有没有找到项目模板不被 VS 拾取的解决方案?
    • 其实Visual Studio 2019已经发布了一个实验性的功能,可以让dotnet new模板出现在Visual Studio中!这并不完美,例如,如果您使用多个项目搭建解决方案,但这是朝着正确方向迈出的一步! devblogs.microsoft.com/dotnet/…
    猜你喜欢
    • 2020-02-22
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2021-10-14
    相关资源
    最近更新 更多