VS 2019 自定义 ASP.NET Core 项目模板

2023-12-31

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

我想做的是类似于 madskristenses 的事情ASP.NET Core 模板包 https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ASPNETCoreTemplatePack (GitHub 源代码 https://github.com/madskristensen/AspNetCoreTemplatePack)。然而,我想为 VS 2019 改进的“新项目对话框”窗口执行此操作,而不是 VS 2017。因此,想象一下在下面突出显示的位置添加一个额外的 ASP.NET Core Web 应用程序模板。

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


在 VS 2017 和 2019(社区)之间进行更多调查后,我成功地解决了这个问题!天哪,我们需要一些这方面的文档吗,因为这感觉太棒了!

我能够使用 ASP.NET Core 模板包作为构建块来组合某些内容。对于那些不知道的人,这些扩展旨在使用以下命令将模板添加到 Visual Studio.nupkg扩展名中嵌入的文件。使用.nupkg文件类似于dotnet new使用自定义模板 https://learn.microsoft.com/en-us/dotnet/core/tools/custom-templates。我有一个GitHub 上的工作原型 https://github.com/willwolfram18/SampleTemplates支持bothVisual Studio 2017 和 2019。

现在,如果您像我一样,您可能会查看 madskristenses 或我的项目并问“这到底是如何工作的!?”好问题!以下是我现在有时间填写的详细信息:

  1. Build out a custom template (or templates) and place them into *.nupkg file(s)
    • 在我的样本中,我的SampleTemplates项目包含三个不同的项目模板。我生成.nupkg with dotnet pack
  2. A vs-2017.3.host.json file is required in the .template.config/ folder so that the ASP.NET Web Application wizard can display the template.
    • 至少需要满足 1 个或多个其他要求才能在 ASP.NET Web 应用程序向导中显示,但我尚未弄清楚这些要求,因为将文件添加到控制台应用程序模板不会导致它出现。我想尝试解决这个问题,尽管如果有人已经知道,我很乐意提供帮助!
  3. The template.json needs a Framework symbol https://github.com/willwolfram18/SampleTemplates/blob/master/SampleTemplates/templates/dotnet-new-custom-api/.template.config/template.json#L28-L47 to define the list of .NET Core framework targets that are supported by the template.
    • 在进行一些测试时,它看起来并不像Framework符号没有替换成.csproj,这就是为什么我的示例还包括TargetFrameworkOverride符号表示Framework符号替换。
  4. 放置.nupkg文件到rootVSIX 扩展项目的并确保将“包含在 VSIX 中”标志设置为True。我强调 root 是因为最初我将 NuGet 包登陆到build\我的扩展中的文件夹和我的模板没有被选取。

我将尝试在我的示例项目中整理一个自述文件,以更好地概述完成此任务所需的所有细节。祈祷这可以帮助别人(或者至少在将来当我不可避免地忘记我是如何完成这件事时帮助我)!

Update

截至 2020 年 9 月 2 日,Visual Studio 团队发布了一项实验性功能,其中包括dotnet newVisual Studio 中的模板。我用它做了一些极其简单的测试,它看起来确实有效,但并不完美。例如,我创建了一个dotnet new支架多个的模板.csproj文件和.sln文件,输出与我的解决方案不太匹配。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS 2019 自定义 ASP.NET Core 项目模板 的相关文章

随机推荐

  • 使用 tidyverse 和 broom 进行许多回归:相同的因变量,不同的自变量

    此链接显示了在我们具有相同的自变量但可能有许多不同的因变量的情况下如何回答我的问题 使用 broom 和 tidyverse 对不同的因变量进行回归 https stackoverflow com questions 51642146 us
  • Magento 2:重新索引不起作用

    我做不到重新索引 in 玛根托2 谷歌之后我得到了解决方案We can reindex with shell command php dev shell indexer php reindexall 但它给出了错误 Could not op
  • 无法使用 C# 客户端反序列化日期时间属性 Neo4j

    我正在尝试使用 C 客户端从 Neo4j 中获取强类型对象 这一切都有效 直到我添加DateTime财产 我已成功将数据插入 Neo4j 数据库 并且可以使用控制台查看它 我还可以查询数据 但无法返回任何强类型对象 因为反序列化似乎失败 我
  • Linux C++:如何跨多个文件正确使用模板专业化?

    我有一个奇怪的问题 在 Windows 上 使用 Visual Studio 2010 以及 Intel 编译器 一切都按预期链接 但是 当我尝试在 Linux 上使用 CLang 3 0 编译代码时 它会编译 如果我只使用单个 CPP 文
  • 如何测量 Android wifi 连接中的上传/下载速度和延迟

    我需要一些 api 或操作代码 通过它们我可以测量 android 应用程序的上传 下载速度和 wifi 连接的延迟 您使用的是 2 2 Froyo 或更高版本吗 如果是这样 请在您的应用程序中导入流量统计信息 并在您的应用程序使用互联网时
  • C# 数据绑定不更新 WPF

    我正在尝试在后面的 C 代码而不是 XAML 中进行数据绑定 在 Expression Blend 2 中创建的 XAML 绑定到我的 CLR 对象工作正常 我的 C 实现仅在应用程序启动时更新 之后对 CLR 的后续更改不会更新我的标签内
  • php 抓取并输出给定​​标签中的特定值或数字

    所以我对 php 很陌生 但在一些帮助下 我已经弄清楚如何抓取具有像 h1 class 这样的标签标识符的网站 更好的是 我已经弄清楚如何输出我想要的精确单词或值 只要它由空格分隔即可 例如 如果给定的标签名称 的输出为 30 个球 我可以
  • Android:当我在片段附近使用它时,在 runOnUiThread 附近出现错误

    我是 Android 开发新手 我想将按钮与动画链接起来 我在附近遇到错误runOnUiThread and getApplication 当我将其添加为一项活动时 这很好 但是当在MainFragment它给出了错误 但是 当我修复错误时
  • 如何在 Windows 中通过鼠标挂钩设置光标位置?

    我正在尝试创建一个小应用程序 它将检测鼠标光标何时移动到屏幕边缘并将其移动到相对的边缘 以创建连续的桌面效果 如果有意义的话 下面是其他人的一些代码 鼠标钩子部分 我通过添加 SetCursorPos 来将鼠标暂时移动到固定位置 当我运行它
  • 部署到 Lightsail 实例失败,因为找不到适合您的部署组的实例

    继自马西的回答 https stackoverflow com a 64170933 5675325 我继续尝试使用他提到的步骤 调整区域 从 GitHub 进行部署 但我得到了 部署失败 因为没有找到您的实例 部署组 检查您的部署组设置以
  • xamarin VisualStudio for ios 中没有附加设备

    当我尝试使用 Visual Studio 中的 IOS 模拟器时 我遇到了真正的麻烦 所以我使用xamarin 最新稳定版本 在VS中创建了一个hello world应用程序 我将项目设置为主项目 当我刷新与mac的连接时 我无法选择应该在
  • 如何为 HWIOAuthBundle 编写用户提供程序

    我想通过社交网络编写一个登录功能 如果用户未登录 则将其保存到数据库中 如果用户存在 则登录该用户 我应该在我的提供商中写入什么内容 文件状态 该捆绑包需要一个能够根据以下内容加载用户的服务 oauth 端点的用户响应 如果您有定制服务 应
  • 将 KeyEvent 对象列表转换为字符串

    我正在开发一个需要能够使用外部 USB 或蓝牙键盘楔的应用程序 然后 我捕获 KeyEvent 并根据需要缓存它们 开始 结束标记 因此 此时我有需要将其转换为字符串的 KeyEvent 列表 所以我需要将这些有序的 KeyEvent 转换
  • 使用 Ganglia 进行 Spark 监控

    我正在测试 Apache Spark 框架 我需要监视有关集群的某些方面 例如网络和资源 Ganglia 看起来是满足我需要的一个不错的选择 然后 我发现Spark支持Ganglia Spark监控网页上有这样的信息 要安装 Ganglia
  • 谷歌云功能美国中部时区?

    我想知道什么时区云函数代码会像 EST CST MST PST 这样运行 我部署了函数来获取它 但它返回了2018 12 05T17 54 00 207Z并且不应用任何美国时区 不是在美国运行吗 export const dateLog f
  • vb.net 从通配符获取文件名列表

    我有字符串 c debug txt 在 Debug 文件夹中有几个 txt 文件 例如 test1 txt test2 txt test3 txt 如何从此字符串 c debug txt 获取通配符文件数组 a 0 c debug test
  • 快速搜索排序向量中大于 x 的最小值

    快速意味着比 O N 更好 这与 find 的能力一样好 我知道有ismembc and ismembc2 但我认为它们都不是我正在寻找的 我阅读了文档 他们似乎正在寻找会员equal到 x 但我想要索引第一个值较大 than x 现在如果
  • C++ Boost read_json 崩溃,我有 #define BOOST_SPIRIT_THREADSAFE

    最近其他人升级了我们的 boost 库 现在当 read json 函数被大量调用时我会看到这个 coredump 以前从未见过这个 我在代码中有 define BOOST SPIRIT THREADSAFE 这就是为什么以前没有发生这种情
  • TomEE + CXF配置参考

    所以我试图找到任何参考文档或使用这三个的重要示例 我发现的 最好的 是 TomEE OpenEJB JAXRS 重构 http rmannibucau wordpress com 2013 01 09 tomeeopenejb jaxrs
  • VS 2019 自定义 ASP.NET Core 项目模板

    我试图弄清楚如何 或者是否 可以创建一个自定义 Visual Studio 项目模板 该模板挂钩到 Visual Studio 2019 中可用的现有 ASP NET Core Web 应用程序模板 我想做的是类似于 madskristen