如何自动化初始化包含指定组件的.NET MAUI项目?
自动化.NET MAUI项目初始化的方案
当然可以自动化这些重复步骤,我自己常用两种方案,根据场景选择:
方案一:自定义Dotnet模板(推荐长期使用)
这是官方支持的标准化方式,一次配置后可以像用官方模板一样快速生成项目:
制作模板原型
- 手动创建一个符合你所有要求的MAUI项目:完成FontAwesome字体导入、样式字典编写、多语言resx配置、添加好xUnit测试项目并建立引用。
- 清理项目中的
bin、obj目录,删除不必要的临时文件。
添加模板配置
在项目根目录创建.template.config文件夹,里面新建template.json文件,示例配置如下:{ "$schema": "http://json.schemastore.org/template", "author": "Your Name", "classifications": ["MAUI", "Cross-platform"], "identity": "Custom.MAUI.Template", "name": "Custom MAUI App with FontAwesome & Localization", "shortName": "maui-custom", "tags": { "language": "C#", "type": "project" }, "sourceName": "CustomMAUIApp", "preferNameDirectory": true }sourceName是你原型项目的名称,生成新项目时会自动替换成用户输入的名称。- 可以通过
exclude字段排除不需要包含的文件/目录。
安装本地模板
在原型项目根目录执行命令:dotnet new install .之后就能用
dotnet new maui-custom -n YourProjectName直接生成符合要求的项目。未来要加新步骤,只需要更新原型项目,重新执行安装命令即可。
方案二:脚本自动化(适合快速调整)
如果不想维护模板,用PowerShell或Bash脚本打包所有步骤也很灵活,以PowerShell为例:
param( [Parameter(Mandatory=$true)] [string]$ProjectName ) # 1. 创建MAUI项目 dotnet new maui -n $ProjectName # 2. 添加FontAwesome字体和样式字典 Copy-Item -Path "Templates\Fonts\FontAwesome6Free-Solid.otf" -Destination "$ProjectName\Resources\Fonts\" Copy-Item -Path "Templates\Styles\FontAwesomeIcons.xaml" -Destination "$ProjectName\Resources\Styles\" # 3. 添加多语言支持 dotnet add $ProjectName package Microsoft.Extensions.Localization Copy-Item -Path "Templates\Properties\Resources.resx" -Destination "$ProjectName\Properties\" Copy-Item -Path "Templates\Properties\Resources.zh-CN.resx" -Destination "$ProjectName\Properties\" # 4. 创建xUnit测试项目并添加引用 dotnet new xunit -n "$ProjectName.Tests" dotnet add "$ProjectName.Tests" reference "$ProjectName\$ProjectName.csproj"
- 提前把FontAwesome字体、样式字典、resx文件放到固定的
Templates目录,脚本执行时直接复制。 - 后续新增步骤,只需要在脚本里追加对应的命令即可。
两种方案各有优势:模板更规范,适合团队统一使用;脚本更灵活,适合个人快速调整。
内容的提问来源于stack exchange,提问作者Lilly
相关产品推荐
相关产品推荐

