diff --git a/.github/workflows/build-multiplatform.yml b/.github/workflows/build-multiplatform.yml index 67859b3..00dc8cb 100644 --- a/.github/workflows/build-multiplatform.yml +++ b/.github/workflows/build-multiplatform.yml @@ -381,39 +381,66 @@ jobs: uses: actions/download-artifact@v4 with: name: libcore-windows - path: . + path: libcore_windows_temp - name: 🔧 复制 libcore 文件到正确位置并重命名 - shell: bash run: | - echo "📋 复制 libcore 文件..." + Write-Host "📋 开始复制 libcore 文件..." + + # 显示下载的文件结构 + Write-Host "🔍 检查下载的文件结构:" + Get-ChildItem -Recurse libcore_windows_temp -ErrorAction SilentlyContinue | Format-Table Name, FullName # 确保目标目录存在 - mkdir -p libcore/bin + New-Item -ItemType Directory -Force -Path "libcore\bin" | Out-Null - # 复制并重命名文件 - if [ -f "HiddifyCli.exe" ]; then - echo "✅ 找到 HiddifyCli.exe,重命名为 BearVPNCli.exe" - cp HiddifyCli.exe libcore/bin/BearVPNCli.exe - fi + # 查找 libcore.dll(可能在 libcore_windows_temp/bin/ 或 libcore_windows_temp/libcore/bin/) + $dllFiles = Get-ChildItem -Path libcore_windows_temp -Recurse -Filter "libcore.dll" -ErrorAction SilentlyContinue + if ($dllFiles) { + $sourceDll = $dllFiles[0].FullName + Write-Host "✅ 找到 libcore.dll: $sourceDll" + Copy-Item $sourceDll "libcore\bin\libcore.dll" -Force + } else { + Write-Host "❌ 未找到 libcore.dll" + Write-Host "当前目录内容:" + Get-ChildItem -Path . -Recurse | Select-Object -First 20 | Format-Table Name, FullName + exit 1 + } - if [ -f "libcore.dll" ]; then - echo "✅ 找到 libcore.dll" - cp libcore.dll libcore/bin/ - fi + # 查找并复制 HiddifyCli.exe,重命名为 BearVPNCli.exe + $exeFiles = Get-ChildItem -Path libcore_windows_temp -Recurse -Filter "HiddifyCli.exe" -ErrorAction SilentlyContinue + if ($exeFiles) { + $sourceExe = $exeFiles[0].FullName + Write-Host "✅ 找到 HiddifyCli.exe: $sourceExe,重命名为 BearVPNCli.exe" + Copy-Item $sourceExe "libcore\bin\BearVPNCli.exe" -Force + } else { + Write-Host "⚠️ 未找到 HiddifyCli.exe(这不是致命错误)" + } - # 如果下载到子目录,也需要处理 - if [ -d "libcore-windows" ]; then - if [ -f "libcore-windows/HiddifyCli.exe" ]; then - cp libcore-windows/HiddifyCli.exe libcore/bin/BearVPNCli.exe - fi - if [ -f "libcore-windows/libcore.dll" ]; then - cp libcore-windows/libcore.dll libcore/bin/ - fi - fi + # 复制 webui 目录 + $webuiDir = Get-ChildItem -Path libcore_windows_temp -Recurse -Filter "webui" -Directory -ErrorAction SilentlyContinue + if ($webuiDir) { + Write-Host "✅ 找到 webui 目录: $($webuiDir[0].FullName)" + Copy-Item -Path $webuiDir[0].FullName -Destination "libcore\bin\webui" -Recurse -Force + } else { + Write-Host "⚠️ 未找到 webui 目录(这不是致命错误)" + } - echo "📄 验证文件..." - ls -lh libcore/bin/ || echo "目录为空" + Write-Host "" + Write-Host "📄 验证复制后的文件结构:" + if (Test-Path "libcore\bin") { + Get-ChildItem libcore\bin\ -Recurse | Format-Table Name, FullName, Length + } else { + Write-Host "❌ libcore\bin 目录不存在" + } + + if (-not (Test-Path "libcore\bin\libcore.dll")) { + Write-Host "❌ libcore.dll 未正确复制到 libcore\bin\" + exit 1 + } + + Write-Host "✅ libcore 文件复制完成" + shell: pwsh - name: ⚙️ 配置 API、OSS 和加密密钥 shell: bash diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt index 10f00c9..13a8818 100755 --- a/windows/CMakeLists.txt +++ b/windows/CMakeLists.txt @@ -94,14 +94,15 @@ install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR} install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime) -# install(FILES "../libcore/bin/libcore.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" -# COMPONENT Runtime) +# 安装 libcore.dll 到可执行文件目录 +install(FILES "${CMAKE_SOURCE_DIR}/libcore/bin/libcore.dll" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) -install(FILES "../libcore/bin/libcore.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" -COMPONENT Runtime RENAME libcore.dll) - -install(FILES "../libcore/bin/BearVPNCli.exe" DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime RENAME BearVPNCli.exe) +# 安装 BearVPNCli.exe 到可执行文件目录 +install(FILES "${CMAKE_SOURCE_DIR}/libcore/bin/BearVPNCli.exe" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) if(PLUGIN_BUNDLED_LIBRARIES)