ToB企服应用市场:ToB评测及商务社交产业平台

标题: 一个 WPF + MudBlazor 的项目模板(附:多项目模板制作方法) [打印本页]

作者: 慢吞云雾缓吐愁    时间: 2024-4-19 12:32
标题: 一个 WPF + MudBlazor 的项目模板(附:多项目模板制作方法)
最近做了几个 WPF + MudBlazor 的小东西,每次从头搭建环境比较繁琐,然鹅搭建过程还没啥技术含量,索性就直接做了个模板,方便以后使用。
1. 介绍

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


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. <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.   <TemplateData>
  2.           
  3.     <Hidden>true</Hidden>
  4.   </TemplateData>
复制代码
将这个模板文件直接复制到第3步中vs默认模板路径下,重启vs,新建项目,你会发现模板已经生效。
后续步骤为将模板文件打包成VSIX扩展安装文件(非必须)
2.4 打包扩展 WpfMudBlazorTemplate

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

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4