2009-09-24 3 views
4

우리는 .NET 응용 프로그램 용 설치 프로그램을 작성하기 위해 Wix를 사용하며 Wix 3.0으로 포팅하는 중입니다.Wix 3.0이 포함 된 단계별 ngen

우리의 응용 프로그램에는 여러 .NET 어셈블리가 포함되어 있습니다 (.NET 응용 프로그램과 마찬가지로). 최종 설치 단계는 이러한 문제를 해결하는 것입니다. 이는 ngen이 아닌 어셈블리를 시동 할 때 약 2 배의 시간이 걸리기 때문에 중요합니다.

불행히도 ngening 단계는 몇 분이 걸리며 설치 프로그램이 여전히 작동하고 있다는 시각적 피드백을 사용자에게 전합니다 (적어도 한 사용자는 설치 프로그램이 다운 된 것으로 생각합니다!). 우리는 을 사용하지 마십시오.은 초기 사용자 경험을 훨씬 악화시키기 때문에 백그라운드로 ngening을 옮기고 싶습니다. 우리 애플리케이션은 시작이 매우 느릴 것입니다.

우리가하고 싶은 것은 개별적으로 어셈블리를 ngen하고 메시지와 진행률 표시 줄을 통해 설치 프로그램에서 사용자에게보고하는 것입니다. Wix가 닌징을하는 것은 쉽고 배경으로 옮기는 일은 쉬울 것입니다. 우리가 원하는 것을 성취 할 수있는 직접적인 방법은 없습니다. 좋은 아이디어 나 기법?

(우리의 응용 프로그램은 .NET 2.0 SP1과 호환됩니다, 그래서 우리는 이것을 달성하기 위해 3+ .NET에서 아무것도에 의존하지 않습니다.)

답변

3

내가 NGEN 이러한 피드백 메커니즘을 한 것으로 알고하지 않았다 해당 진행률은 파일별로보고 될 수 있습니다. Windows Installer가 InstallFinalize 중에 GAC에 어셈블리를 커밋한다는 사실은 (WiX NGen CustomAction과 같은) CustomAction이 진행 상황을 보낼 수있는 기회가 없다는 것을 의미합니다. 기본적으로 진행률 표시 줄은 이미 "100 %"입니다 (Windows Installer의 진행률 표시 줄은 정확하지만).

궁극적으로이 대답은 WiX NGen CustomActions에 대한 멋진 기능 요청이지만 실현 가능성은 확실하지 않다고 생각합니다.

[업데이트] : 바보, 나 먼저 코드를 살펴 봐야 겠지. ActionText를 통해 파일 이름이 게시되지는 않지만 진행 메시지가 전송됩니다. 요청하는 것이 합당한 것 같습니다. 그러나, 내가 위에서 말한 것은 아마도 GAC 된 어셈블리에 적용될 것입니다.

+0

그래서 Wix는 게시되는 진행 메시지를 사용하지 않습니다. 우리가 할 수있는 우리 자신의 커스텀 액션을 작성할 수 있을까? 우리는 어셈블리를 GACing하지 않습니다. – fuzzyman

+0

"WiX는 게시되는 진행 메시지를 사용하지 않습니다."라는 의미를 모르겠습니다. WiX 도구 세트는 NGen 된 각 파일에 대한 비용을 추가하고 처리 할 때 진행 상황을 보냅니다. 코드에서 볼 수 있습니다. 그리고 네, 당신은 자신의 코드를 작성할 수 있습니다. 또는 NGen 사용자 지정 작업을 약간 향상하여 원하는 것을 정확하게 얻을 수 있습니다. 그 길의 98 %입니다. –

+0

"파일 이름이 ActionText를 통해 게시되지는 않지만 진행 메시지가 전송되었습니다." 나는 메시지를 보내고 ("진행 메시지를 보냈지 만"사용하지는 않는다는 뜻입니다). NGen 사용자 지정 작업을 향상시키는 방법은 우리가 어떻게 할 것인가? (실제로 나는 우리 자신이 작성한 것을 의미합니다. – fuzzyman