AutoZip 으로 만든 zip 만으로는 빌드가 되지 않았다. 별도 PC(C:\Test)에서 풀어 Debug|x64 로 돌리면 37개 중 16개가 실패했다. 원인은 -xr! 이 재귀 매칭이라는 점이다. -xr!External / -xr!packages 가 루트뿐 아니라 하위 아무 depth 의 같은 이름 폴더까지 전부 걸러냈다. 화이트리스트에 .dll 이 없던 것도 겹쳐, HintPath 가 프로젝트 상대경로로 가리키는 DLL 6개가 통째로 빠졌다. AuroraACS\External\ACS.SPiiPlusNET.dll (AuroraACS.csproj:39) AuroraLaser\External\AuroraModbus.csharp.dll AuroraDeviceCommon\Packages\NModbus.3.0.80\...\NModbus.dll (AuroraDeviceCommon.csproj:55) AuroraDeviceCommon\Packages\NModbus.Serial.3.0.80\...\NModbus.Serial.dll AuroraHeightSensor\Packages\MEDAQLib\MEDAQLib.dll (AuroraHeightSensor.csproj:124) AuroraHeightSensor\Packages\MEDAQLib\MEDAQLib.NET.dll AuroraDeviceCommon 이 NModbus 를 못 찾아 실패하면 _out\x64-Debug\AuroraDeviceCommon.dll 이 안 생기고, 이후 13개 프로젝트가 CS0006 으로 연쇄 실패했다. XAML MC3074 3건 (EnumToStringConverter·MainPage·UCWorkPos)도 같은 원인이다. 수정 - -xr!External / -xr!packages 삭제. -x!External -x!External\* -x!packages -x!packages\* 로 대체해 루트만 제외한다. - 화이트리스트에 -ir!*.dll 추가. obj·bin·_out* 이 이미 제외돼 있고 루트 두 폴더도 빠지므로 실제로 늘어나는 건 위 6개뿐이다. - 완료 메시지에 받는 쪽 준비물을 출력한다 - zip + 루트 External\ + 루트 packages\. 검증: 재압축 후 별도 폴더에 풀고 루트 External·packages 만 복사해 Debug|x64 빌드 성공. 인코딩은 CP949 를 유지했다. UTF-8 로 저장하면 콘솔 한글이 전부 깨진다(실측).
82 lines
2.5 KiB
Batchfile
82 lines
2.5 KiB
Batchfile
@echo off
|
|
setlocal
|
|
|
|
rem ============================================================
|
|
rem ILSOS 소스 백업 - 빌드에 필요한 소스만 암호 zip 으로 묶는다.
|
|
rem
|
|
rem - 배치파일이 있는 폴더를 기준(상대경로)으로 동작한다.
|
|
rem - 파일 목록을 박아두지 않고 확장자로 거르므로,
|
|
rem .cs / .xaml 을 추가해도 이 파일을 고칠 필요가 없다.
|
|
rem - 결과 zip 은 다음 실행 때 압축 대상에서 제외된다.
|
|
rem ============================================================
|
|
|
|
cd /d "%~dp0"
|
|
|
|
set "PW=ub8877"
|
|
set "PF86=%ProgramFiles(x86)%"
|
|
|
|
rem ---- 압축기 찾기 : 동봉본 우선, 없으면 설치본 ----
|
|
set "SEVENZIP="
|
|
if exist "tools\7za.exe" set "SEVENZIP=tools\7za.exe"
|
|
if not defined SEVENZIP if exist "%ProgramFiles%\7-Zip\7z.exe" set "SEVENZIP=%ProgramFiles%\7-Zip\7z.exe"
|
|
if not defined SEVENZIP if exist "%PF86%\7-Zip\7z.exe" set "SEVENZIP=%PF86%\7-Zip\7z.exe"
|
|
|
|
if not defined SEVENZIP (
|
|
echo.
|
|
echo [오류] 압축기를 찾지 못했습니다.
|
|
echo tools\7za.exe 가 없고 7-Zip 도 설치되어 있지 않습니다.
|
|
echo tools\7za.exe 를 복원하거나 7-Zip 을 설치한 뒤 다시 실행하세요.
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
rem ---- 타임스탬프 (%date% 는 로케일 의존이라 PowerShell 로 받는다) ----
|
|
set "TS="
|
|
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd_HHmmss"') do set "TS=%%i"
|
|
if not defined TS set "TS=notime"
|
|
|
|
set "OUT=ILSOS_All_src_%TS%.zip"
|
|
|
|
echo.
|
|
echo 압축기 : %SEVENZIP%
|
|
echo 대상 : %CD%
|
|
echo 출력 : %OUT%
|
|
echo 암호 : %PW%
|
|
echo.
|
|
echo 압축 중... (빌드에 필요한 소스만)
|
|
echo.
|
|
|
|
"%SEVENZIP%" a -tzip -mx=9 -p%PW% "%OUT%" ^
|
|
-ir!*.sln -ir!*.csproj -ir!*.cs -ir!*.xaml -ir!*.resx -ir!*.config ^
|
|
-ir!*.settings -ir!*.manifest -ir!*.snk -ir!*.dll ^
|
|
-ir!*.png -ir!*.ico -ir!*.jpg -ir!*.jpeg -ir!*.bmp -ir!*.gif -ir!*.cur -ir!*.ttf ^
|
|
-x!External -x!External\* -x!packages -x!packages\* ^
|
|
-xr!obj -xr!bin -xr!.git -xr!.vs -xr!_out* -xr!_intermediate ^
|
|
-xr!intermediate* -xr!_workspace -xr!_release -xr!_test -xr!Doc -xr!docs ^
|
|
-xr!.claude -xr!.ubisam_agent -xr!.serena -xr!__pycache__ ^
|
|
-xr!UnTrackedLocalFiles -xr!_dummyImages -xr!tools -xr!*.zip -xr!*.7z -xr!*.rar
|
|
|
|
if errorlevel 1 (
|
|
echo.
|
|
echo [오류] 압축에 실패했습니다. 위 메시지를 확인하세요.
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
set "SIZE=0"
|
|
for %%F in ("%OUT%") do set "SIZE=%%~zF"
|
|
set /a SIZE_MB=%SIZE% / 1048576
|
|
|
|
echo.
|
|
echo ============================================================
|
|
echo [완료] %OUT%
|
|
echo %CD%\%OUT%
|
|
echo 약 %SIZE_MB% MB (%SIZE% bytes)
|
|
echo 암호 : %PW%
|
|
echo ============================================================
|
|
echo.
|
|
pause
|
|
exit /b 0
|