经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » ASP.net » 查看文章
一个 WPF + MudBlazor 的项目模板(附:多项目模板制作方法)
来源:cnblogs  作者:[九零]  时间:2024/2/2 9:11:38  对本文有异议

最近做了几个 WPF + MudBlazor 的小东西,每次从头搭建环境比较繁琐,然鹅搭建过程还没啥技术含量,索性就直接做了个模板,方便以后使用。

1. 介绍

  • 一个用来创建 .NET 8 + WPF + MudBlazor 的项目模板
  • 适用于 VS2022

用法:vs插件市场下载 or 自己通过 Github 源码编译

vsix

image

2. 模板打包方法

步骤都是基于 Github 仓库中的代码来做示例

2.1 创建要打包的项目 WpfMudBlazor

这一步没什么好说的,想做什么样子的模板,就码怎样的代码即可。

2.2 替换模板关键字 TemplateCode

该项目是 WpfMudBlazor 的副本。在项目中替换了关键字后,会导致无法编译,所以选择复制一份出来,方便以后升级。

在这个项目中,仅仅是将项目名称和解决方案替换成创建项目时用户输入的名称。(使用 $safeprojectname$ 关键字替换掉原有内容即可)

  1. <Project Sdk="Microsoft.NET.Sdk.Razor">
  2. <PropertyGroup>
  3. <OutputType>WinExe</OutputType>
  4. <TargetFramework>net8.0-windows</TargetFramework>
  5. <Nullable>enable</Nullable>
  6. <ImplicitUsings>enable</ImplicitUsings>
  7. <UseWPF>true</UseWPF>
  8. <RootNamespace>$safeprojectname$</RootNamespace>
  9. </PropertyGroup>
  10. <ItemGroup>
  11. <PackageReference Include="Microsoft.AspNetCore.Components.WebView.Wpf" Version="8.0.6" />
  12. </ItemGroup>
  13. <ItemGroup>
  14. <ProjectReference Include="..\$safeprojectname$.Pages\$safeprojectname$.Pages.csproj" />
  15. </ItemGroup>
  16. </Project>
  1. namespace $safeprojectname$
  2. {
  3. /// <summary>
  4. /// Interaction logic for MainWindow.xaml
  5. /// </summary>
  6. public partial class MainWindow : Window
  7. {
  8. public MainWindow()
  9. {
  10. InitializeComponent();
  11. InitializeBlazor();
  12. }
  13. }
  14. }

VS提供了很多模板关键字,如果需要制作更复杂的模板,可以参考微软官方文档-模板参数

2.3 导出模板文件 TemplateOutput

  1. 用vs打开模板项目
  2. 项目 -> 导出模板
  3. 选择项目模板 -> 选择对应项目
    友情提醒:多项目模板时记得要分别导出每一个项目
    image
    image
  4. 将所有项目的模板放入同一级目录中并解压(导出项目模板为.zip文件)
  5. 在根目录中再新建一个*.vstemplate文件(该文件为所有项目的模板文件)
    image
    image
    image
  6. 编辑新建的.vstemplate模板文件
    • 根据自己的需求配置模板的项目说明
    • 注意ProjectCollection节点中子项目的引用路径
  1. <VSTemplate Version="3.0.0" Type="ProjectGroup"
  2. xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
  3. <TemplateData>
  4. <Name>WPF MudBlazor (.NET 8)</Name>
  5. <Description>一个用来创建 .NET 8 + WPF + MudBlazor 的项目模板</Description>
  6. <ProjectType>CSharp</ProjectType>
  7. <PlatformTag>C#</PlatformTag>
  8. <PlatformTag>WPF</PlatformTag>
  9. <PlatformTag>MudBlazor</PlatformTag>
  10. <PlatformTag>桌面</PlatformTag>
  11. <PlatformTag>混合开发</PlatformTag>
  12. <DefaultName>WpfMudBlazor</DefaultName>
  13. <Icon>icon.ico</Icon>
  14. </TemplateData>
  15. <TemplateContent>
  16. <ProjectCollection>
  17. <ProjectTemplateLink ProjectName="$safeprojectname$" CopyParameters="true">
  18. WpfMudBlazor\MyTemplate.vstemplate
  19. </ProjectTemplateLink>
  20. <ProjectTemplateLink ProjectName="$safeprojectname$.Pages" CopyParameters="true">
  21. WpfMudBlazor.Pages\MyTemplate.vstemplate
  22. </ProjectTemplateLink>
  23. </ProjectCollection>
  24. </TemplateContent>
  25. </VSTemplate>
  1. 编辑所有子项目的.vstemplate模板文件,在TemplateData节点加入<Hidden>true</Hidden>
    这个设置是为了最终导入模板后,所有的子项目不会显示在vs的项目模板位置
  1. <TemplateData>
  2. <!-- 为了节约空间,不显示文件中的其它原始配置 -->
  3. <Hidden>true</Hidden>
  4. </TemplateData>
  1. 将当前文件夹的所有内容打包成新的模板文件*.zip
    image

将这个模板文件直接复制到第3步中vs默认模板路径下,重启vs,新建项目,你会发现模板已经生效。
后续步骤为将模板文件打包成VSIX扩展安装文件(非必须)

2.4 打包扩展 WpfMudBlazorTemplate

该步骤需要在 VS 中额外安装“Visual Studio 扩展开发”组件

  1. 创建一个新的“空白 VSIX 项目”
    image
  2. 将上一节中的模板文件复制到当前项目中,并且选择始终复制
  3. 双击项目中的source.extension.vsixmanifest文件来编辑扩展信息
  • 元数据 Metadata -> 根据自己需求填写
    image
  • 资产文件 Assets -> 新建
    image
  • 其它几个选项为扩展的最低运行环境等等,看一眼差不多也能看懂个七七八八,按需配置即可
  1. 编译并生成项目,搞定(.VSIX文件在生成目录)

单项目模板的生成就更简单了,上述步骤只减不增

原文链接:https://www.cnblogs.com/JiuLing-zhang/p/17999260

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号