You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.3 KiB
5.3 KiB
Avalonia应用WSL Ubuntu部署说明
📋 概述
本文档说明如何将Avalonia应用发布到WSL Ubuntu环境中运行。
🚀 发布步骤
1. 生成Linux版本
在Windows PowerShell中运行以下命令之一:
方法1: 使用批处理脚本
publish-linux.bat
方法2: 使用PowerShell脚本
.\publish-linux.ps1
方法3: 手动发布
dotnet publish -c Release -r linux-x64 --self-contained true -o "publish\linux-x64"
2. 拷贝到WSL Ubuntu
方法1: 通过Windows文件系统访问
- 在WSL Ubuntu中,Windows驱动器挂载在
/mnt/下 - 创建目标目录:
mkdir -p ~/MyAvaloniaApp - 拷贝文件:
cp -r /mnt/d/Log/MyAvaloniaApp/publish/linux-x64/* ~/MyAvaloniaApp/
方法2: 通过WSL文件系统
- 在Windows中,WSL文件系统位于:
\\wsl$\Ubuntu\home\<username>\ - 直接将
publish\linux-x64\文件夹复制到WSL用户目录
3. 在Ubuntu中设置权限和运行
-
进入应用目录:
cd ~/MyAvaloniaApp -
设置执行权限:
chmod +x MyAvaloniaApp -
运行应用:
./MyAvaloniaApp
🔧 系统要求
Ubuntu系统要求
- Ubuntu 18.04 或更高版本
- 图形界面支持(X11或Wayland)
- X11相关系统库(必须安装)
自动安装依赖
推荐方法: 使用提供的安装脚本
在Windows中运行:
install-wsl-deps.bat
或在WSL Ubuntu中手动运行:
# 拷贝脚本到WSL
cp /mnt/d/Log/MyAvaloniaApp/install-ubuntu-deps.sh ~/
chmod +x ~/install-ubuntu-deps.sh
./install-ubuntu-deps.sh
字体依赖安装
重要: 为了解决字体渲染问题,需要安装字体包:
# 安装常用字体包
sudo apt update
sudo apt install -y \
fonts-dejavu-core \
fonts-liberation \
fonts-liberation2 \
fontconfig \
fonts-noto-core \
fonts-noto-cjk
手动安装依赖
如果自动安装失败,可以手动安装:
sudo apt update
sudo apt install -y \
libice6 libsm6 libx11-6 libx11-xcb1 libxcb1 \
libxcb-icccm4 libxcb-image0 libxcb-keysyms1 \
libxcb-randr0 libxcb-render-util0 libxcb-render0 \
libxcb-shape0 libxcb-sync1 libxcb-util1 \
libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 \
libxkbcommon-x11-0 libxkbcommon0 \
libgl1-mesa-glx libgl1-mesa-dri libglib2.0-0 \
libgthread-2.0-0 libgtk-3-0 libcairo-gobject2 \
libgdk-pixbuf2.0-0 libpango-1.0-0 libpangocairo-1.0-0 \
libatk1.0-0 libcairo2 libpixman-1-0 libxcomposite1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 \
libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
fonts-dejavu-core fonts-liberation fontconfig \
libasound2 libatspi2.0-0 libdrm2 libxau6 libxdmcp6
图形界面支持
如果遇到图形界面问题,可能需要安装:
# 对于X11
sudo apt install x11-apps
# 对于Wayland
sudo apt install wayland-protocols
🐛 常见问题
1. libICE.so.6 缺失错误
错误信息: System.DllNotFoundException: Unable to load shared library 'libICE.so.6'
解决方案:
# 运行依赖安装脚本
./install-ubuntu-deps.sh
# 或手动安装X11库
sudo apt install libice6 libsm6 libx11-6
2. 权限问题
如果遇到权限错误:
chmod +x MyAvaloniaApp
3. 图形界面问题
如果应用无法显示窗口:
# 检查DISPLAY环境变量
echo $DISPLAY
# 设置DISPLAY(如果需要)
export DISPLAY=:0
# 如果使用WSLg,确保Windows版本支持
# 如果使用X11服务器,确保VcXsrv或Xming正在运行
4. 依赖库问题
如果缺少其他依赖库:
# 检查缺失的依赖
ldd MyAvaloniaApp
# 安装缺失的库
sudo apt install <missing-library-name>
5. 字体渲染问题
问题: 应用界面显示为占位符条状图标,文本无法正常显示
解决方案:
# 安装字体包
sudo apt install -y fonts-dejavu-core fonts-liberation fontconfig
# 刷新字体缓存
sudo fc-cache -fv
# 检查字体是否安装成功
fc-list | grep -i dejavu
验证字体安装:
# 查看可用字体
fc-list : family
# 测试字体渲染
echo "测试字体渲染" | xargs -I {} bash -c 'echo {} | figlet -f standard'
6. WSL图形界面设置
方法1: 使用WSLg (Windows 11)
- 确保Windows版本支持WSLg
- 无需额外配置
方法2: 使用X11服务器
- 安装VcXsrv或Xming
- 在WSL中设置:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
📁 文件结构
发布后的文件结构:
publish/linux-x64/
├── MyAvaloniaApp # 主执行文件
├── MyAvaloniaApp.dll # 应用程序集
├── MyAvaloniaApp.pdb # 调试符号
├── Avalonia.*.dll # Avalonia框架文件
├── System.*.dll # .NET运行时文件
├── lib*.so # 本地库文件
└── ... # 其他依赖文件
🔄 更新应用
当需要更新应用时:
- 重新运行发布脚本
- 停止旧版本应用
- 替换文件
- 重新运行
📝 注意事项
- 发布文件包含完整的.NET运行时,文件较大
- 确保WSL Ubuntu有足够的磁盘空间
- 首次运行可能需要较长时间来加载所有依赖
- 建议在发布前测试应用功能