2013-08-09 5 views
0

Windows 인증을 사용하는 SQL 서버 데이터베이스에 연결해야하므로 설치 프로그램을 관리자가 아닌 시스템으로 실행해야합니다. 내 연구를 기반으로, 나는 "1"로 MSIUSEREALADMINDETECTION 속성을 설정해야합니다MSIUSEREALADMINDETECTION의 16 진수 표현은 무엇입니까?

내가 http://blogs.msdn.com/b/astebner/archive/2007/05/28/2958062.aspx

var msidbCustomActionTypeInScript = 0x00000400; 
var msidbCustomActionTypeNoImpersonate = 0x00000800 

의 블로그에 값이 설정하는 스크립트를 같이 이러한 Installer 속성이 진수 표현을 가지고 있음을 알

사용할 수 here,하지만 당신에게 MSIUSEREALADMINDETECTION의 16 진수 표현을 제공하지 않습니다. 누구든지 MSIUSEREALADMINDETECTION의 16 진수 표현을 알고 있습니까? 아니면 설치 프로그램 포스트 빌드를 편집하는 것이 더 나은 해결책입니까?

답변

1

Windows SDK 디렉토리의 컴퓨터에서 이러한 종류의 식별자에 대한 정의를 찾을 수 있습니다. VS 버전은 언급하지 않았고 c : \ program files (x86) \ microsoft sdks \ windows \ x.x \ include에서 시작합니다. VS2012 +가있는 경우 Windows 키트에서 검색을 시작하십시오. MsiDefs.h 파일이 관심의 대상입니다. 그것은 포함 : 또한

// properties related to UAC 
#define IPROPNAME_MSI_UAC_DEPLOYMENT_COMPLIANT TEXT("MSIDEPLOYMENTCOMPLIANT") 
#define IPROPNAME_MSI_USE_REAL_ADMIN_DETECTION TEXT("MSIUSEREALADMINDETECTION") 

:

// execution scheduling flags    // default is execute whenever sequenced 
msidbCustomActionTypeFirstSequence = 0x00000100, // skip if UI sequence already run 
msidbCustomActionTypeOncePerProcess = 0x00000200, // skip if UI sequence already run in same process 
msidbCustomActionTypeClientRepeat  = 0x00000300, // run on client only if UI already run on client 
msidbCustomActionTypeInScript   = 0x00000400, // queue for execution within script 
msidbCustomActionTypeRollback   = 0x00000100, // in conjunction with InScript: queue in Rollback script 
msidbCustomActionTypeCommit   = 0x00000200, // in conjunction with InScript: run Commit ops from script on success 

// security context flag, default to impersonate as user, valid only if InScript 
msidbCustomActionTypeNoImpersonate = 0x00000800, // no impersonation, run in system context 

당신은 MSIUSEREALADMINDETECTION 숫자로 표현되지 않도록이에서 말할 수있는, 그것은 속성의 이름입니다. 속성 값은 MsiSetProperty()으로 설정합니다. 속성에 대한 추가 정보 : this MSDN section

+0

통찰력을 주셔서 감사합니다. 이것은 매우 도움이 될 것입니다. ocra에서 설치 프로그램을 열면 MSIUSEREALADMINDETECTION이 1로 설정됩니다. 그러면 설치 프로그램이 시스템으로 실행됩니다. – Dhawalk

1

설치 관리자 postbuild를 편집하는 더 좋은 방법은 기본 Windows Installer 기능에서 사용자를 숨기지 않는 Windows Installer XML과 같은 다른 도구로 전환하는 것입니다.

FWIW, 내가 postbuild 정리를해야 할 때 나는 transforms를 만들고 postbuild 단계에서 MSI에 변형을 적용하는 경향이있다. 그런 식으로 내 요구 사항이 변하면 난 그냥 변환을 업데이 트하고 내 postbuild 코드를 변경하지 않아도됩니다.

MSIUSEREALADMINDETECTION 속성의 16 진수 값까지 ... 당신은 그것을 생각하고 있습니다. 그것은 1입니다. 당신이 언급 한 다른 2 개는 사용자 지정 작업의 비트 마스크 열에서 사용되는 상수이므로 16 진수 값을 가지고 있기 때문에 논리적으로 또는 논리적으로 사용할 수 있습니다.

+0

WIX는 다음 버전을위한 계획입니다. 타임 라인은 설치 프로그램을 변경하기에 충분하지 않습니다. 나는 거기에서 생각하는 것 위에 명확히 있었다. 하지만 내 문제는 ocra 편집기가 MSIUSEREALADMINDETECTION을 설정으로 보여주고 시스템으로 실행될 때까지 설치 프로그램이 실행된다는 것입니다. – Dhawalk