강좌 / 팁

소프트웨어 ThinApp 사용하여 포터블(가상화) 프로그램 만들기.

2018.02.18 16:02

대추사랑 조회:4196 추천:19

부제 : ThinApp 사용하여 Microsoft Office 2007의 포터블(가상화) 만들기.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

다음과 같은 의미를 담고서 글을 써 보겠습니다.
포터블 = 하나의 파일, 또는 폴더로 더이상의 조작없이 동작하는 프로그램.
무설치 = 하나의 파일, 또는 폴더를 복사하고,  레지스트리 병합으로 동작하는  프로그램.
 

하나의 컴퓨터에 복수의 운영체제를 사용하는 분들이 많을 것입니다.
단일 운영체제를 사용하시는 분들은 사용하는 프로그램들을 운영체제와 같은 드라이브에 설치하던, 또는 운영체제가 적재되지 않은 다른 드라이브에 설치하던, 별다른 점이 없을 것입니다.

 

하지만 복수의 운영체제를 사용하는 분들은 운영체제마다 같은 프로그램을 복수로 설치하지는 않습니까?
그렇다면 한정된 디스크의 자원을 무의미하게 사용하는 것이 아닐까요?

 

저의 경우에는 3파티션의 ssd(128G)에 2개의 운영체제와 드라이버만을 설치하고, 사용하는 프로그램들은 모두 포터블 내지는 무설치로 만들어서 다른 파티션(ssd = E:\)에 넣어서 2 운영체제에서 같이 사용합니다.
물론 '내문서, 즐겨찾기, 뮤직, 사진, 비디오' 등등도 2 운영체제에서 공유합니다.
심지어 PE에서도 프로그램과 내 문서 등을 같이 사용합니다.
 

이렇게 사용하기 위해서는 포터블 및 무설치가 가능한 프로그램만을 사용해야 한다는 전제조건이 있습니다.
저의 경우는 가정에서 웹서핑, 간단한 게임, 가계부 내지는 금전 출납부를 사용할 수 있는 시트, 그리고 한글 문서를 인쇄할 수 있는 워드, 그 이외에는 오디오, 비디오 편집 프로그램과 플레이어등을 사용하는데, 꼭 대용량이나 복잡한 기능이 들어있는 최신버전을 사용하지는 않습니다. 심지어 포토샵도 사용해보다가 너무 많은 기능에 질려서 그저 네오페인트 정도로 만족합니다.

 

이와같은 사용자라면 포터블과 무설치를 만들기는 간단합니다.
먼저 저의 하드웨어 구성을 적어보자면...
 

SSD: 128G
30G = C:\ 원도우10 2016 LTSB x64
30G = D:\ 윈도우7 Ultimate x86
59G = E:\ 포터블&무설치 프로그램들, 내문서, PE용 WIM파일.
 

HDD: 1TB
400G = F:\ 백업, 다운로드 폴더, 서적, 음악 자료들.
531G = G:\ ISO, 기타 보관용.
 

포터블 만들기의 주의할 점.
---------------------------
*** 포터블 또는 무설치를 만들때는 깨끗한 윈도우가 필요합니다.
*** 다른 많은 프로그램들이 먼저 설치된 상태면 Windows\System32, 또는 SysWOW64 폴더에 .dll 파일이 이미 있는 경우는 ThinApp 이 캐치하지 못하므로 다른 컴퓨터에서는 포터블이 동작하지 않는 경우가 생깁니다.
*** 포터블을 만들기 위한 시스템은 윈도우7 그것도 x86 시스템이 좋을 것입니다. (만들어진 포터블의 호환성을 위해서.)

*** 특별한 이유가 없이 ThinApp 프로그램을 사용하여 포터블을 만들었는데, 동작하지 않는 경우를 흔히 봅니다.
*** 예를 들어 Neopaint 4.7c 또는 섬즈플러스 같은 경우입니다.
*** 이 때는 무설치로 만들어야 합니다. 그렇기에 2가지 경우를 대비하여 같이 진행합니다.
*** 포터블 만드는 도중에 컴퓨팅 환경이 바뀌는, 즉 바탕화면이 변경된다든지, 인터넷 사용으로 시스템 드라이브의 상태가 변경되는 등, 시스템 상태가 바뀌지 않도록 고정합니다.
잡설은 여기까지 하고...

 

포터블 만들기에 사용할 준비물.
------------------------------
준비물1 = VMware ThinApp 5.2.3  (최근 버전 사용을 권장함)
준비물1 = Regshot
준비물3 = Microsoft Office Professional Plus 2007 ( 내가 가진 단 하나의 오피스입니다)
위 1,2 프로그램은 본 포럼의 자료실에서 찾을 수 있을 것입니다.
 

1) [MS-Office 2007] 포터블(가상화) 만들기입니다.

 

2) 우선 준비된 두 프로그램을 실행해 둡니다. 또한 레지스트리 편집기도 실행해 둡니다.
   즉 틴앱실행 후, next 버튼을 누르지 않은 상태이고, 레지샷은 스캔하지 않은 상태입니다.
   (레지편집기는 만들어진 포터블이 소스 위치를 찾지 않도록 레지 정보를 편집하기 위해)

 

3) 오피스 Setup.exe 실행하고 제품키 입력, 다음 누르고, [지금 설치],[사용자 지정] 중에서 [사용자 지정] 선택합니다.
   설치 옵션, 파일 위치, 사용자 정보, 세개의 탭을 각각 선택하여 정보를 입력합니다.
   이렇게 미리 정보를 입력해야 나중에 다시 입력하는 수고를 덜 수 있습니다.
   설치 옵션 탭의 항목을 엑셀과 파포, 윈워드를 제외한 모두를 "사용할 수 없음" 선택합니다.
   선택된 세 항목도 세부적인 부분에서 모두 "사용할 수 없음" 선택하고 메인만 남겨놓습니다.
   *여기까지 진행하고 설치는 잠깐 정지합니다.

01.png

 

 

4) 틴앱의 첫 Next 버튼을 클릭합니다.
   다시 Advanced Scan Locations 버튼을 눌러보면 시스템 드라이브에 체크되어 있습니다.
   만들려는 무설치를 다른 드라이브에 설치하려면 설치할 드라이브도 체크하고, OK 클릭합니다. (지금은 E: 체크)
   그 다음 Prescan> 버튼을 클릭하고, Prescan이 끝나도록 기다립니다.

 

   *** 무설치를 만들려면 이 순서에서 1차 스캔 합니다. *****
   Prescan이 끝나면 레지샷 스캔 차례입니다. [리포트 저장 폴더]와 [리포트 이름]을 입력합니다.
   [리포트 저장 폴더] 지정은 가능한 시스템드라이브와 프로그램 설치할(E:) 는 피하는 것이 좋습니다.
   레지샷의 [1번 스캔] -> [전체 레지스트리] 선택해서 끝나도록 기다립니다. (무설치를 위한 과정)
   스캔이 끝나면 [1번 스캔] -> [저장] 버튼을 누르고 이름을 #1 입력합니다.
   그리고 [모두 지우기] 버튼을 클릭합니다.
 

5) 이제 오피스 설치에서 [지금 설치] 클릭합니다.
   설치 과정이 모두 끝나면 [닫기] 클릭합니다.

 

6) 모든 드라이브의 루트에 MSOCache 폴더가 생겼는지 확인하고, 있으면 삭제합니다.
   또한 시작메뉴-모든 프로그램 아래의 Microsoft Office 폴더를 삭제합니다.

 

7) 레지편집기에서 현위치를 HKEY_CLASSES_ROOT에 두고 Ctrl+F 눌러서 찾기합니다. (*** 중요한 과정입니다.)
   찾을 것은 SourceList 입니다. (찾을 대상은 키 이름)
   HKEY_CLASSES_ROOT\Installer\Products 하위 키에서 찾아집니다.
   값의 문자열을 보면 "Microfoft Office Professional Plus 2007" 문자열이 보이는 곳은 모두 SourceList 키를 삭제합니다. (대강 14 개소 정도??)

 

   다시 LocalPackage 문자열을 찾고, 찾을 대상은 [값]과 [데이터] 입니다.
   데이터 쪽을 살펴보고, 찾아진 키의 이름과 데이터 부분에서 "Microsoft Office ....." 문자열이 보이면 오피스의 설치 캐시폴더와 로컬패키지의 위치를 저정한 곳이므로 "LocalPackage" 이름도 지우고, "InstallSource" 이름도 삭제합니다. 이 부분이 살아있으면 사용자 부주의나 다른 이유로 지정된 위치에 캐시 폴더가 지워지면 오피스 사용중에 위치한 곳에서 데이터를 찾을수 없다는 메세지를 보게 됩니다.
   LocalPackage 이름을 찾다보면 많은 곳에서 찾을 수 있는데, 정확하게 데이터 부분에서 "Microsoft Office ....." 문자열이 보이는 키에서만 삭제

 

8) 설치한 프로그램을 실행해 봅니다. 엑셀, 파포뷰어, 파워포인트, 윈워드, 모두 실행해봅니다.
   온라인 도움말 사용하고, 업데이트는 사용하지 않습니다. (지금 포터블이 정상 작동하면 다음에 시도)
   보통 이 단계에서 앞의 6)번에서 MSOCache 폴더를 삭제했고, 7)번 단계를 거치지 않았다면 오피스가 계속 원본을 찾고 변경된 부분을 원래로 되돌리기위해 오피스 실행까지 지연이 발생할 것입니다.
 

   *** 무설치를 만들려면 이 순서에서 2차 스캔 합니다. *****
   다시 레지샷 스캔 2차 입니다.
   레지샷의 [1번 스캔] -> [전체 레지스트리] 선택해서 끝나도록 기다립니다.
   스캔이 끝나면 [1번 스캔] -> [저장] 버튼을 누르고 이름을 #2 입력합니다.
   그리고 [모두 지우기] 버튼을 클릭합니다.
 

9) 이제 틴앱의 버튼 Postscan을 누릅니다.
   Postscan이 끝나면 만들 포터블의 이름과 대상이 표시됩니다.
   보통 포터블의 이름은 시작메뉴-모든 프로그램에 기재된 바로가기의 이름으로 됩니다.
   하지만 바로가기의 이름보다 본체의 이름(E:\Programs\MOffice\Office12\EXCEL.EXE)으로 하는 것이 좋습니다.
   위의 6)번에서 시작메뉴의 오피스 폴더를 삭제했으면 자동적으로 본체의 이름이 나타날 것입니다.
 

10) 설치한 프로그ㅐㅁ에 따라서 하나를 선택하면(둘 이상도 가능) 그것이 포터블의 이름이 됩니다.
   그리고 설치된 파일이 과도하게 크다면 실행 파일과 데이터가 적재된 데이터 파일로 분리되는 경우도 있습니다.
   여기서는 EXCEL.EXE, POWERPNT.EXE, PPTVIEW.EXE, WINWORD.EXE 4개 선택합니다.
   선택이 끝나면 Next 버튼을 4번 클릭합니다.

 

11) 샌드박스의 위치를 결정하는데 기본값을 선택하던지 두번째인 같은 디렉터리를 선택하든지 아니면 사용자지정 위치나 네트워크 드라이브를 선택할 수 있습니다.
첫번째 선택은 샌드박스가 %AppData% 아래에 생성됩니다.
두번째 '같은 위치'를 선택했다면 생성되는 포터블을 CD같은 읽기전용 매체에서는 실행할 수 없습니다.
세번째 선택은 특정한 위치를 지정하고, 지정된 곳에 샌드박스를 생성합니다.
여러가지 경우를 고려하고 선택하십시오. (메모리가 많다면 1번 선택이 무난함)
하나를 선택후 Next 버튼 클릭.-> No 선택하고 Next 버튼 클릭.
 

12) 생성되는 인벤토리 이름과 프로젝트의 이름을 입력하고 Next 버튼 클릭.
     인벤토리 이름은 샌드박스의 이름이 됩니다.
     프로젝트의 이름은 틴앱의 하위 폴더인 Captures\ 폴더 아래에 생성되는 프로젝트 폴더 이름입니다.
 

13) 생성되는 포터블의 크기가 많이 크다면 여기서 포터블 실행 파일과 데이터 파일로 분리할 수 있습니다.
  그리고 패키지를 압축하는 것도 여기서 지정합니다. (Compress virtual package 체크)
  그리고 Save 버튼 클릭.
 

14) 위 과정이 끝나면 포터블 빌드를 위한 창이 나타나는데, 굳이 이 순서에서 빌드를 진행할 필요는 없습니다. [Skip the build process] 체크하고 Next 버튼 클릭.
 

15) 다시 [open project ....] 체크 해제하고 [Finish] 버튼 클릭.
 

이제 초기 과정이 완료되었습니다.
이대로 포터블을 빌드해도 되지만, 설치로 인한 캐시파일들이 많이 포함되어 생성되는 크기가 증가합니다.
쓰레기 파일이 많이 포함되었으니 당연하겠지요.
이제 쓰레기 파일을 삭제할 차례입니다.
아래는 생성된 프로젝트의 폴더와 파일들인데, 쓰레기를 제외한 것입니다.
마찬가지로 아래의 각 폴더에 들어가 보면 오피스를 제외한 시스템에서 사용한 흔적들도 보이는데 모두 삭제합니다.
 

%AppData%\ 폴더에는 Microsoft\ 제외한 모든 폴더 삭제.
%Common AppData%\ 폴더에는 Microsoft\, Microsoft Help\ 제외한 모든 폴더 삭제.
%SystemRoot%\ 폴더에는 SHELLNEW, winsxs 폴더를 제외한 모두 삭제.
 

--------- 32비트 윈도우7 에서의 작업결과 ----------------------
%AppData%\ ----------------- D:\Users\Administrator\AppData\Roaming\ 아래의 폴더.
%Common AppData%\ -------- D:\ProgramData\ 아래의 폴더.
%drive_E%\ ------------------ 오피스 2007 설치된 드라이브명.
%Local AppData%\ ----------- D:\Users\Administrator\AppData\Local\ 아래의 폴더.
%Program Files Common%\ --- x86 시스템 = D:\Program Files\Common Files\.   x64 시스템 = D:\Program Files (x86)\Common Files\
%ProgramFilesDir%\ ---------- x86 시스템 = D:\Program Files\.   x64 시스템 = D:\Program Files (x86)\
%SystemRoot%\ ------------- Windows\
%SystemSystem%\ ----------- x86 시스템 = Windows\System32\.     x64 시스템 = Windows\SysWOW64\
build.bat ---------------------- 빌드 배치파일.
HKEY_CURRENT_USER.txt ------ 레지스트리 정보 파일
HKEY_LOCAL_MACHINE.txt ----- 레지스트리 정보 파일
HKEY_USERS.txt --------------- 레지스트리 정보 파일
Package.ini -------------------- 빌드시 설정 파일
------------------------------------------------------------------

 

------------- Package.ini 편집 ---------------
[Compression]
CompressionType=Fast

[Isolation]
DirectoryIsolationMode=Merged

[BuildOptions]
.ShowSB=0 <----- 빌드시 이 부분을 추가하면 포터블 실행시 화면 우하단의 광고창을 나타나지 않게한다.
.
.
;-------- General Purpose Parameters  ----------
SandboxName=Office12
InventoryName=Office12
InventoryIcon=%Program Files Common%\Microsoft Shared\OFFICE12\Office Setup Controller\OSETUP.DLL,1
;PermittedGroups=Administrators;Remote Desktop Users
;PermittedComputers=DomainName1\GroupName1;DomainName1\GroupName2
;PermittedComputersOfflineAccess=0
;RemoveSandboxOnExit=1 ; 줄 선두에 세미클론 제거. (보안을 위해 포터블 종료시 샌드박스 파일 삭제)
;RemoveSandboxOnStart=1 ; 줄 선두에 세미클론 제거. (보안을 위해 포터블 시작시 샌드박스 파일 삭제)

;SandboxNetworkDrives=1
.
.
------------------------------------------

16) 이제 프로젝트 폴더에서 build.bat 파일을 실행하면 bin\ 서브폴더가 생성되고 포터블이 만들어집니다.
만들어진 포터블이 다른 환경에서도 동작하는지 시험해 봅니다.
내 경우는 윈도우7_x86, 윈도우7_x64, 윈도우10_x64에서 무난하게 실행되었습니다.
 

win10 x64에서:

윈도10x64.jpg

 

win7 x86에서:

윈도7x86.jpg

 

*** ThinApp 사용하여 포터블을 만들때 디렉터리의 깊이에 따라 오류 메세지가 나타나는 경우가 있었습니다. (WinRCTrans.)

*** 무설치 만들기는 오피스 2007의 경우 x86, x64 시스템 사이의 호환성이 없어서 포기했습니다.
*** 다른 무설치 만드는 방법은 다음에 시간이 허용하면 다시 적어보겠습니다.

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4309 윈 도 우| 윈도우 업데이트 다운로드 및 설치 오류 조치 [6] 미스라 3604 5 02-17
4308 소프트웨어| (ver 0.2.3, url 파일기능) 크롬/엣지에서 URL 드래그 드롭... [7] 메리아 2862 10 02-16
4307 모 바 일| 뉴진스 음악에서 보컬만 추출하기? 이거 하나면 끝!!! | mp... toz21 1884 0 02-14
4306 윈 도 우| IE 강제 실행 스크립트 + 탭 여러개 열기 [6] 녹색조각 2592 14 02-14
4305 기 타| 파이어 폭스 무설치 만들기 [17] 슈머슈마 1547 9 02-12
4304 윈 도 우| 향상된 윈도우 자동 로그인 On/Off 스크립트 [6] zerojiddu 2703 13 02-11
4303 소프트웨어| 현존 최강 무료 동영상 편집기 소개 및 활용법 안내 | 이게... [13] toz21 2648 7 02-11
4302 소프트웨어| Pecmd.ini 위치를 Windows폴더로 이동 [6] 카멜 745 10 02-10
4301 소프트웨어| (ver 0.2) 크롬/엣지에서 URL 드래그 드롭으로 제목 얻기 [11] 메리아 1029 12 02-08
4300 윈 도 우| 파일을 디펜더가 차단할때, 파워쉘로 허용시키기 [7] zerojiddu 1720 14 02-06
4299 윈 도 우| 강제로 Internet Explorer 열기 스크립트 [13] 사랑이7 2801 20 02-05
4298 윈 도 우| 윈도우11 $OEM$소스 및 WinNTSetup 응용 설치! [40] 무월 3441 49 02-03
4297 윈 도 우| 윈도우 부팅시 신용카드 정보를 요구할때 넘어가기 [5] 고장난우주 2398 1 02-01
4296 윈 도 우| 감춰진 모든 고급 전원옵션 표시하기 [4] zerojiddu 2120 13 01-30
4295 윈 도 우| 특정 폴더 내 임의 파일/폴더 선택 배치 함수 [10] 지후빠 684 16 01-29
4294 윈 도 우| 프로그램 필요없이, 윈도우 설치 USB 만들기 [16] zerojiddu 5641 27 01-18
4293 기 타| CMD BAT 를 UTF8 모드로 사용 [13] 입니다 1649 22 01-16
4292 윈 도 우| 폴더 깊이 제한하여 파일,폴더 찾기 배치 함수 [11] 지후빠 1262 15 01-12
4291 윈 도 우| 배치파일 명령어 > nul 2>&1 해석 [6] 컨피그 1226 12 01-11
4290 윈 도 우| BCD 백업 및 복구 프로그램 입니다 [14] 지룡자 2767 41 01-10
XE1.11.6 Layout1.4.8