2016-08-10 6 views
-1

C 드라이브에 파일을 전송하기 위해 wix 설치 프로그램을 만들었습니다. .msi 파일을 실행하면 파일 shipping.In 사용자 지정 작업을 사용하기 전에 사용자 지정 작업을 호출하려고했습니다.실행중인 wix 설치 프로그램을 닫는 방법?

사용자 지정 작업 코드 : 관리자 모드로 실행되지 좋아하지만 사용자 지정 작업을 작업 지정 작업 위

  bool isElevated; 
      WindowsIdentity identity = WindowsIdentity.GetCurrent(); 
      WindowsPrincipal principal = new WindowsPrincipal(identity); 
      isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator); 
      if (!isElevated) 
      { 
       DialogResult dialogResult = MessageBox.Show("CustomAction is not running admode , so please refer online ?", "Admin Alert ", MessageBoxButtons.YesNo); 
       if (dialogResult == DialogResult.Yes) 
       { 
        Process.Start("Same Web site link"); 
        Environment.Exit(0); 
       } 
       else if (dialogResult == DialogResult.No) 
       { 
        Environment.Exit(0); 
       } 
      } 

성공적으로 메시지 상자가 표시. 메시지 상자에서 옵션을 선택하지 않으면 wix 설치 프로그램이 닫히지 만 파일이 발송됩니다. 제발 말해주세요, 어떻게 C#을 사용하여 wix 설치 프로그램을 중단 하시겠습니까?

+0

이 맞춤식 작업을 언제 예약합니까? –

+0

안녕하세요 Brian, msi 설치 프로그램을 사용하기 전에 위의 사용자 지정 작업을 예약했습니다. 예 : <이진 Id = "Checkadmin"SourceFile = "F : \ Work \ SVN \ BigData \ Wix Burn \ CustomAction \ adminMode \ bin \ Release \ adminMode.CA.dll"/> 설치되지 않음 ranjo

답변

2

설치를 강화하려면 WiP에 InstallPrivileges = elevated라고 말하십시오. 이를 확인하기 위해 코드를 작성할 필요가 없습니다. 당신은 사용자 지정 작업 후 상승 실행하려면 https://msdn.microsoft.com/en-us/library/windows/desktop/aa370852(v=vs.85).aspx

이는 실행 순서가되어야하고 이연 noimpersonate = true로 패키지가 InstallScope = perMachine가 표시된 : 또는 실행 순서에 따라 권한 속성의 상태를 확인 .

그래서 설치를 높일 수 있으며 아무런 점검도 할 필요가 없으며 설치를 막을 필요가 없습니다. 문서가 말한대로

https://msdn.microsoft.com/en-us/library/windows/desktop/aa367545(v=vs.85).aspx

당신은 하나의 값으로 소스에서 해당 MSIUSEREALADMINDETECTION를 선언 할 것 : 당신이해야 할 관리자를 필요로 또는 경우 관리 사용자 특성 및 MSIUSEREALADMINDETECTION를 사용 옵션이 설치합니다. Privileged 속성을 시작 조건으로 사용합니다. 사용자가 admin이 아니면 설치가 시작되지 않습니다. 여기에 두 번째 가이드 라인 그러나 :

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368772(v=vs.85).aspx

이 설정되어 대신 권한을 확인하는 유형 (19) 사용자 지정 작업을 권장합니다

및 예를 들어 여기가 아래로 스크롤 :

http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Help-on-type-19-custom-action-td712797.html

그러나 설치를 승격 시키려면 InstallPriviges = Package 요소를 사용하십시오.

+0

"Checkadmin"DllEntry = "Checkadmin" 제발 좀 공유해주세요 – ranjo

+0

안녕 PhilDW, 귀하의 의견을 사용했습니다. 나에게 효과가 없으니 몇 가지 샘플을 나눠주세요. – ranjo