微信开发者工具安装总结

发现的主要问题及解决方案:

  1. 缺少 wine32 包:系统因依赖冲突无法安装 wine32
  2. 缺少 bcryptprimitives.dll:这个 DLL 导致 Go 运行时崩溃
  3. Wine 前缀配置不正确:最初的 32/64 位混合配置导致问题
  4. 直接运行可执行文件失败:直接运行 .exe 文件无法正常工作

最终的解决方案:

  1. 正确重装 Wine

    sudo apt remove --purge wine*
    sudo apt install -y wine64 winetricks
    
  2. 创建新的 Wine 前缀

    export WINEPREFIX="$HOME/.wine-new"
    winecfg -v win7
    
  3. 修复 DLL 问题

    • 创建符号链接:bcrypt.dllbcryptprimitives.dll
    • 设置 DLL 覆盖:WINEDLLOVERRIDES="mscoree=,bcryptprimitives=n,b"
  4. 使用 CLI 方法替代

    • 直接运行可执行文件失败
    • CLI 方法有效:wine64 node.exe cli.js open --no-sandbox --disable-gpu
  5. 创建必要目录

    mkdir -p "$WINEPREFIX/drive_c/users/AppData/Local/微信开发者工具/User Data/b543eb636950fa5afc37d4d2f07d776/Default"
    touch "$WINEPREFIX/drive_c/users/AppData/Local/微信开发者工具/User Data/b543eb636950fa5afc37d4d2f07d776/Default/.cli"
    

最终启动脚本:

start-wechat-devtools.sh 脚本现在会:

  • 初始化干净的 Wine 前缀
  • 修复 DLL 依赖
  • 创建所需目录
  • 通过 CLI 使用适当的标志启动微信开发者工具

使用方法:

cd /home/gaogao/Desktop/Projects/new_journey/wechat-dev-tool
./start-wechat-devtools.sh

注意事项:

  • GUI 界面可用,但可能需要时间初始化
  • 可以直接使用 CLI:wine64 node.exe cli.js open --project /path/to/miniprogram
  • Wine 仍会显示一些警告,但不影响功能

关键突破点:

  1. 从直接运行 exe 改为使用 CLI 启动
  2. 修复 bcryptprimitives.dll 依赖问题
  3. 使用正确的 Wine 前缀配置
  4. 创建微信开发者工具所需的特定目录结构

脚本参考

#!/bin/bash
cd /home/wechat-dev-tool

# Use a fresh Wine prefix specifically for WeChat DevTools
export WINEPREFIX="$HOME/.wine-new"
export PATH="/usr/bin:$PATH"
export WINEDLLOVERRIDES="mscoree=,bcryptprimitives=n,b"
export NODE_SKIP_PLATFORM_CHECK=1
export DISPLAY=$DISPLAY

# Initialize the Wine prefix if it doesn't exist
if [ ! -d "$WINEPREFIX" ]; then
    echo "Initializing new Wine prefix for WeChat DevTools..."
    winecfg -v win7
fi

# Create necessary directories
mkdir -p "$WINEPREFIX/drive_c/微信开发者工具/User Data/b543eb636950fa5afc37d4d2f07d776/Default"

# Create CLI file if it doesn't exist
touch "$WINEPREFIX/drive_c/微信开发者工具/User Data/b543eb636950fa5afc37d4d2f07d776/Default/.cli"

# Fix bcryptprimitives.dll issue by creating symlink
ln -sf "$WINEPREFIX/drive_c/windows/system32/bcrypt.dll" "$WINEPREFIX/drive_c/windows/system32/bcryptprimitives.dll" 2>/dev/null || true

# Kill any existing WeChat DevTools processes
pkill -f "wechatdevtools\|微信开发者工具\|node.exe.*cli.js" 2>/dev/null || true
sleep 2

# Close any error windows
wmctrl -c "Program Error Details" 2>/dev/null || true
wmctrl -c "Desktop" 2>/dev/null || true
wmctrl -c "Program Error" 2>/dev/null || true
sleep 1

# Use CLI to launch WeChat DevTools
echo "Starting WeChat DevTools using CLI..."
wine64 node.exe cli.js open --no-sandbox --disable-gpu &
WINE_PID=$!

# Wait for the application to start
sleep 10

# Check for WeChat DevTools windows and bring to front
if wmctrl -l | grep -qi "wechat\|微信\|开发者工具"; then
    echo "Found WeChat DevTools window, bringing to front..."
    wmctrl -a "微信开发者工具" 2>/dev/null || wmctrl -a "WeChat DevTools" 2>/dev/null || true
else
    echo "No WeChat DevTools window found. Checking processes..."
    ps aux | grep -E "(wechat|$WINE_PID|node.exe)"
fi

echo "WeChat DevTools PID: $WINE_PID"
echo "To manually start a project: wine64 node.exe cli.js open --project /path/to/your/miniprogram"

更多推荐