Setup] How to create custom .NET Framework 3.5 SP1 not connecting through net

일전에 Blogging 한 .NET Framework 3.5 SP1 을 Custom 하게 Deploy 한 방법(http://kikiwaka.egloos.com/2404272)에서 몇 가지 추가하려고 합니다. 

최근 고객(?)이 Windows XP x86 에 .NET Framwork 3.5 SP1 을 인터넷에 연결되지 않은 상황 그리고 한국어 Langpack 을 포함시킨 Package 를 만들어 달라고 부탁하였습니다. /nopatch 를 사용하면 될 것 같습니다만… .NET Framework 3.5 SP1 은 해당 Option 을 주어도 Internet 에서 update package 를 download 하려고 시도합니다.

.NET Framework 3.5 SP1 은 한글 버전과 영문 버전을 제공하고 있습니다.  
이것은 Bootstrapper 일 때 적용되는 버전입니다. Full Package 는 영문 버전 한글 버전이 따로 존재하지 않습니다. 즉, Full Package 에는 모든 Locale 정보를 가지고 있습니다.



.NET Framework 3.5 sp1 Full Package :
http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe

우선 .NET Framework 3.5 SP1 은 OS 의 Locale 에 따라 Langpack 을 Download 하려고 합니다. 만일 영문 OS 라면 인터넷에서 .NET Framework Langpack 을 Download 하려고 시도 하지 않습니다. (Default 이기 때문에 필요가 없습니다.) 그러나 한글 OS 라면 인터넷에서 .NET Framework Langpack 을 Download 하려고 시도합니다.
만일 한글 버전의 Langpack 을 설치할 필요가 없다면, 다음과 같이 Custom Package 에 Option 을 추가하면 됩니다.

dotnetfx35setup.exe /lang:ENU

인터넷에 연결되어 있지 않아도 .NET Framework 3.5 SP1 을 설치하는 것을 확인 할 수 있습니다. (한글 OS 임에도 불구하고…)
반대로 영문 OS 에서 한글 Langpack 을 설치하고 싶다면

dotnetfx35setup.exe /lang:KOR

를 사용하면 됩니다.

웹에 연결하는 시도조차 하고 싶지 않다면 어떻게 해야 할까요?

dotnetfx35setup.exe /x 를 사용하여 unzip 하면 setup.exe 를 볼 수 있습니다. setup.exe 는 기본적으로 웹에 연결하는 시도를 하지 않습니다. /web option 을 사용해야만 인터넷에 연결을 시도합니다. 필요한 EULA 와 resource dll 을 제외하고 모두 지운 후 다음과 같이 한글 OS 에 설치한다면 웹에 연결하지 않고 (시도조차 하지 않고) 설치하는 것을 볼 수 있습니다.

setup.exe 

하지만, 고객은 한글 Langpack 까지 설치하기(인터넷에 연결하지 않고)를 원하기 때문에 Langpack 을 직접 download 받아서 Target OS Architecture 에 맞게 다음 위치에 저장하면 됩니다.

.\dotnetfx35\x86
.\dotnetfx35\x64
.\dotnetfx35\ia64

한국어 언어팩은 다음 Link 에서 Download 할 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyId=C78987B9-97F4-455F-BEE7-F6BFA4AD774E&displaylang=ko

모두 정상적으로 변경하였다면 다음 명령어로 인터넷 연결 없이 한글 Langpack 을 설치할 수 있습니다. :-)

setup.exe /lang:KOR

by kikiwaka | 2010/01/28 18:38 | MS] Setup & Deploy | 트랙백 | 덧글(0)
Setup] Visual Studio 웹 제작 도구 구성 요소 in VS 2008 failed to install

Product 설치 실패 issue 는 까다로운 경우가 많습니다만… 최근에 종료한 Case 도  그 중 하나입니다. 앞서 Blogging 한 내용을 보셨듯이, 설치 실패 issue 는 Log 또는 Debugger 의 Exception 정보에 의존합니다.

Visual Studio 2008 Standard Edition 을 설치할 때 다음과 같이 오류가 발생하였습니다.

 

해당 Log 를 확인하여 보면 (%temp%\dd_install_vs_XXXX.txt)

***ERRORLOG EVENT*** : ISetupComponent::Pre/Post/Install() failed in ISetupManager::InternalInstallManager() with HRESULT -2147023293.

[01/28/10,10:47:19] Setup.exe: GetGlobalCustomProperty - Property: {383F0141-C682-4665-A69B-756E719C968D} - PropertyName: Process Return Code - Value: 1603
[01/28/10,10:47:19] Setup.exe: SETUP EXIT CODE – 1603

를 찾을 수 있었습니다.
내부 DB 를 검색해 보아도 감이 안잡힐 경우 Debugger 를 Attach 해서 확인합니다.
많은 setup.exe Process 가 creating 되기 때문에, (setup.exe 뿐만 아니라 다른 Process 가 많이 올라 왔다가 사라집니다.) 이 때는 유용한 Tool 이 있는데, Process Explorer 입니다.

Options > Difference Highlight Duration > 10 sec 으로 변경하여 마지막에 올라오는 Process 를 확인 한 후 해당 Process 에 Debugger 를 Attach 해서 확인하여 보면 어느 Process 에서 문제가 발생했는지 추측해 볼 수 있습니다.

해당 issue 는 OSE.exe 가 마지막으로 올라오고 오류가 발생했습니다. OSE.exe 에 Debugger 를 Attach 하니 바로 정보가 보입니다.
Exception 정보는 OfficeMUI.ko-kr 때문인데, 해당 Machine 은 Office 2007 이 비정상적으로 설치되어 있었습니다. (삭제가 되지 않습니다.) http://support.microsoft.com/kb/928218/en-us 의 내용을 참고하여 Office 2007 을 삭제하니 정상적으로 설치가 됩니다.

Visual Studio 웹 제작 도구 구성요소(Web Authoring Component) 는 %temp% 의 SetupExe(20100128XXXXXX).log를 남기는데, 그 로그 내용을 확인했으면, Debugger 까지 붙일 필요 없이 쉽게 문제가 해결 되었을 텐데 말이죠.
아래는 오류 내용입니다. :’(

Executing chained package: OfficeMUI.ko-kr
01/28/2010 10:35:07 Configuring chained package: OfficeMUI.ko-kr
PERF: TickCount=1768734 Name=Verify MSI local install source Description=Begin function
OSE is detected as a registered service. Service binary is reported at location: C:\Program Files\Common Files\Microsoft Shared\Source Engine\OSE.EXE
OSE service binary is detected at location: C:\Program Files\Common Files\Microsoft Shared\Source Engine\OSE.EXE
File at m:\92157bb928483c32b80724\visualwebdeveloper.ww\ose.exe has version: 12.0.4518.1014
File at C:\Program Files\Common Files\Microsoft Shared\Source Engine\OSE.EXE has version: 12.0.4518.1014
Running OSE version 12.0.4518.1014
OSE is detected as a registered service. Service binary is reported at location: C:\Program Files\Common Files\Microsoft Shared\Source Engine\OSE.EXE
OSE service binary is detected at location: C:\Program Files\Common Files\Microsoft Shared\Source Engine\OSE.EXE
File at m:\92157bb928483c32b80724\visualwebdeveloper.ww\ose.exe has version: 12.0.4518.1014
File at C:\Program Files\Common Files\Microsoft Shared\Source Engine\OSE.EXE has version: 12.0.4518.1014
Running OSE version 12.0.4518.1014
LIS: wait for package "{90120000-006E-0412-0000-0000000FF1CE}" to complete caching
LIS failed to cache download "{90120000-006E-0412-0000-0000000FF1CE}-C" resource "Setup.xml". Cache Error 0x80070017
Source Resolution aborted
  LIS: start caching file "Setup.xml"
LIS failed to cache download "{90120000-006E-0412-0000-0000000FF1CE}-C" resource "OfficeMUI.xml". Cache Error 0x80070017
Source Resolution aborted
  LIS: start caching file "OfficeMUI.xml"
LIS failed to cache download "{90120000-006E-0412-0000-0000000FF1CE}-C" resource "OfficeMUI.msi". Cache Error 0x80070017
Source Resolution aborted
Log level changed from: Standard to: Verbose
Error: LIS: Failed to cache download "{90120000-006E-0412-0000-0000000FF1CE}-C" resource "OfficeMUI.msi". HResult: 0x80070017.
Rolling back chain
01/28/2010 10:41:18 Rolling back package: OfficeMUI.ko-kr

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 의 정보를 확인하는 것도 잊지 말아주세요. :-)

by kikiwaka | 2010/01/28 14:02 | MS] Setup & Deploy | 트랙백 | 덧글(0)


< 이전페이지 다음페이지 >