2017-10-23 7 views
0

이전 Windows 설치 프로젝트를 wix 설치 프로그램으로 마이그레이션합니다. 윅스 사용자 지정 작업에서 나는 here, 을 발견하는 동안 내 오랜 InstallerClass에, 나는 OnAfterInstall, OnBeforeUninstall, OnBeforeInstall Wix 사용자 지정 작업에서 Committed, OnAfterInstall, OnBeforeUninstall, OnBeforeInstall의 동일한 구현

을, 네 개의 이벤트가 저지른 나는 단지 후와 전 프로비저닝을 가지고 생각합니다.

이전 Installer 클래스 코드를 어떻게 4 개의 별도의 사용자 지정 작업에 매핑 할 수 있습니까?

답변

1

WiX Execute = 커스텀 커스텀 액션이 커밋 됨.

다른 모든 사람들은 선택 사항을 제공하지만 실제로는 그렇지 않은 이름을 사용합니다. "OnBeforeInstall"이벤트가 없습니다. Visual Studio의 내부 이벤트입니다. 다른 관리되는 코드 사용자 지정 작업이 호출되기 전에 호출되는 사용자 지정 작업입니다. WiX에서 무의미한 점이 있습니다. 어쨌든 설치 전이 아닙니다. StartServices 액션 다음에 WiX 지연된 사용자 정의 액션을 호출하는 것과 같습니다.

OnAfterInstall도 마찬가지입니다. StartServices 다음에 호출 된 WiX 지연된 사용자 지정 동작과 동일하며 다른 사용자 지정 동작이 발생한 후에도 마찬가지입니다.

OnBeforeUninstall은 StopServices 이전에 지연된 사용자 지정 동작을 호출하는 것과 동일한 Visual Studio 기이입니다.

모든 Visual Studio 사용자 지정 작업은 InstallExecuteSequence에 있으며 가장 = 아니오입니다.

Visual Studio가 숨기는 또 다른 사항은 설치되고 제거되는 구성 요소에 대해 내부적으로 조건이 지정되므로 (즉 대부분의 경우) 사용자로부터 숨겨진 즉각/지연/가장을 비롯하여 조건을 이해해야합니다. Visual Studio에 의해.

Visual Studio에서 MSI 파일을 생성하면 Orca (Windows SDK/Kit의)를 사용하여 MSI 파일을 열고 InstallExecuteSequence 테이블을보고 순서를 클릭하여 실제 순서대로 주문할 수 있습니다. 표준 동작과 함께 사용자 지정 동작과 호출시기, 유형 및 조건을 볼 수 있습니다. CustomAction 테이블에 정의됩니다.

Visual Studio가 숨기고있는 다른 기능은 이상한 호출 환경을 제공하는 C++ Dll 인프라이므로 작동하지 않습니다. WiX의 관리 코드 사용자 지정 동작은 VS 관리 코드 사용자 지정 동작과 다르므로 코드를 WiX 모델로 마이그레이션해야합니다. 여기 예 :

https://www.codeproject.com/Articles/511653/Using-WIX-with-Managed-Custom-Action

https://blogs.msdn.microsoft.com/jschaffe/2012/10/23/creating-wix-custom-actions-in-c-and-passing-parameters/

+0

감사 PhilDW. 나는 같은 링크를 따라 가고있다. –

관련 문제