11.3 应用打包与发布
1. 应用打包基础
1.1 打包概述
- 打包是将应用程序及其依赖项组合成一个可分发格式的过程
- 现代C#应用支持多种打包格式:MSI、EXE、APPX、APK、IPA等
- 打包需要考虑目标平台(Windows、macOS、iOS、Android等)
1.2 打包工具链
- Visual Studio内置打包工具
- .NET CLI打包命令
- 第三方工具:InstallShield、Advanced Installer等
2. 桌面应用打包
2.1 WPF/WinForms打包
<!-- 示例:.csproj中的打包配置 -->
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
2.2 安装程序创建
- 在Visual Studio中创建安装项目
- 配置安装向导步骤
- 添加自定义操作(如注册表修改、服务安装等)
- 生成MSI或EXE安装包
3. MAUI跨平台打包
3.1 多平台打包配置
# 为Android构建APK
dotnet build -t:Run -f net6.0-android
# 为iOS构建IPA
dotnet build -t:Run -f net6.0-ios
3.2 平台特定设置
Android:
- 配置应用图标和启动画面
- 设置权限要求
- 签名配置(使用keystore)
iOS:
- 配置Info.plist
- 设置应用权限
- 配置应用签名(使用Apple开发者账户)
4. 发布到应用商店
4.1 Microsoft Store发布
- 创建APPX/MSIX包
- 通过Partner Center提交
- 通过认证流程
- 设置定价和分发选项
4.2 移动应用商店发布
Google Play:
- 创建开发者账户
- 准备应用截图和描述
- 上传签名的APK/AAB
- 通过内容审核
Apple App Store:
- 加入Apple开发者计划
- 使用Xcode创建归档
- 通过App Store Connect提交
- 通过苹果审核流程
5. 持续集成与自动化发布
5.1 CI/CD流水线配置
# 示例:GitHub Actions工作流
name: Build and Publish
on: [push]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: '6.0.x'
- name: Build
run: dotnet build --configuration Release
- name: Publish
run: dotnet publish -c Release -o ./publish
5.2 自动签名与发布
- 配置代码签名证书
- 设置自动版本号递增
- 集成应用商店发布API
- 配置测试和预发布通道
6. 最佳实践与故障排除
6.1 打包最佳实践
- 保持依赖项最小化
- 合理组织文件结构
- 提供清晰的安装选项
- 包含适当的卸载支持
6.2 常见问题解决
- 依赖项缺失问题
- 签名验证失败
- 平台特定兼容性问题
- 应用商店审核被拒的常见原因
7. 资源与进一步学习
专业提示:在发布前,务必在不同设备和操作系统版本上进行充分测试,特别是权限相关功能和离线场景。考虑使用应用内分析工具来跟踪发布后的使用情况。
