132 lines
2.8 KiB
Batchfile
132 lines
2.8 KiB
Batchfile
@echo off
|
|
setlocal enabledelayedexpansion
|
|
|
|
echo ========================================
|
|
echo YY.Admin 应用程序发布脚本
|
|
echo ========================================
|
|
echo.
|
|
|
|
REM 显示当前目录
|
|
echo 当前目录: %cd%
|
|
echo.
|
|
|
|
REM 检查是否在项目目录中
|
|
if not exist "YY.Admin.csproj" (
|
|
echo [错误] 当前目录没有找到项目文件 YY.Admin.csproj
|
|
echo 请确保在项目根目录运行此脚本
|
|
echo 预期项目文件: YY.Admin.csproj
|
|
echo.
|
|
|
|
REM 尝试在上级目录查找
|
|
echo 正在搜索项目文件...
|
|
dir /s /b *.csproj 2>nul
|
|
echo.
|
|
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM 检查 .NET SDK 是否可用
|
|
dotnet --version >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo [错误] 未找到 .NET SDK 或未安装
|
|
echo 请安装 .NET SDK 并确保 dotnet 命令可用
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM 显示项目信息
|
|
echo 项目文件: YY.Admin.csproj
|
|
echo.
|
|
|
|
REM 清理发布目录
|
|
if exist "publish" (
|
|
echo [1/4] 清理旧发布文件...
|
|
rmdir /s /q "publish"
|
|
if errorlevel 1 (
|
|
echo [错误] 无法清理发布目录,可能有文件被占用
|
|
echo 请关闭所有可能占用文件的程序后重试
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
) else (
|
|
echo [1/4] 创建发布目录...
|
|
mkdir "publish" >nul 2>&1
|
|
)
|
|
|
|
REM 发布应用程序
|
|
echo [2/4] 正在发布应用程序...
|
|
dotnet publish -c Release -r win-x64 -o "publish" --self-contained true -p:PublishSingleFile=true
|
|
|
|
if errorlevel 1 (
|
|
echo [错误] 应用程序发布失败!
|
|
echo 请检查项目配置和错误信息
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM 创建 Updates 目录并复制版本文件
|
|
echo [3/4] 配置自动更新文件...
|
|
if not exist "publish\Updates" mkdir "publish\Updates"
|
|
|
|
if exist "version.xml" (
|
|
copy "version.xml" "publish\Updates\" >nul
|
|
echo 版本文件已复制
|
|
) else (
|
|
echo 警告: 未找到 version.xml 文件,自动更新功能可能无法正常工作
|
|
echo 请在项目根目录创建 version.xml 文件
|
|
)
|
|
|
|
REM 复制其他必要文件(如果有)
|
|
if exist "AppSettings.json" (
|
|
copy "AppSettings.json" "publish\" >nul 2>&1
|
|
echo 配置文件已复制
|
|
)
|
|
|
|
if exist "Resources" (
|
|
xcopy "Resources" "publish\Resources" /E /I /Y >nul 2>&1
|
|
echo 资源文件已复制
|
|
)
|
|
|
|
REM 显示发布结果
|
|
echo [4/4] 发布完成!
|
|
echo.
|
|
echo ========================================
|
|
echo 发布摘要:
|
|
echo ========================================
|
|
echo 发布目录: %cd%\publish
|
|
echo.
|
|
|
|
REM 显示生成的主要文件
|
|
set "exeFile="
|
|
for %%f in (publish\*.exe) do set "exeFile=%%f"
|
|
|
|
if defined exeFile (
|
|
echo 主要文件:
|
|
echo !exeFile!
|
|
echo.
|
|
echo 文件大小:
|
|
for %%f in (!exeFile!) do echo %%~zf 字节
|
|
) else (
|
|
echo [警告] 未找到可执行文件
|
|
)
|
|
|
|
echo.
|
|
echo 目录内容:
|
|
dir publish /B
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo 下一步操作:
|
|
echo 1. 测试发布的应用: 双击 publish\!exeFile! 运行测试
|
|
echo 2. 打包分发: 将整个 publish 目录打包分发
|
|
echo 3. 配置自动更新: 更新服务器上的 version.xml 文件
|
|
echo ========================================
|
|
echo.
|
|
|
|
echo.
|
|
echo 发布流程完成!
|
|
pause |