2013-03-21 18 views
0

나는 WiX 프로젝트가 있으며 ProgramFiles에있는 폴더에 일부 실행 파일과 라이브러리를 설치합니다.Wix에 설치된 파일의 권한이 승계 됨

이러한 실행 파일 중 하나를 실행하면 문제가 발생합니다. 그 중 일부는 수행해야하는 모든 작업을 수행하기 위해 Administrator으로 실행해야합니다. 바로 마우스 오른쪽 버튼을 클릭하고 관리자 권한으로 실행하면 잘 작동합니다. 하지만 WiX가 내 파일에 대한 권한을 단독으로 높이기를 원합니다.

어떨까요?

<Package Id="$(var.GUID_Package)" 
     InstallPrivileges="elevated" 
     InstallScope="perMachine" ...> 

그리고 :

<Property Id="MSIUSEREALADMINDETECTION" Value="1" /> 

그러나이 두 가지 옵션 만 .msi 패키지 (하지 설치된 파일)을 위해 일

나는이 일을 시도했다.

참고 : 나는 자신을 올바르게 설명하지 않았다고 생각합니다. 내 문제는 설치된 파일에 대한 사용 권한 때문입니다. 권한 때문에 올바르게 실행할 수 없습니다. 관리자 권한으로 실행하면 분명히 모든 권한이 실행에 적합합니다. 그래서 내가해야 할 일은 문제가있는 각 파일의 권한을 변경하는 것이 었습니다.

답변

-1

관심이있는 사람들에게 해결책을 찾았습니다.

먼저 .wxs 프로젝트에 WixUtilExtension에 대한 참조를 추가했습니다.이 번호는 WiX 폴더에서 찾을 수 있습니다.

xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 

그 후, 로컬 PermissionEx 사용할 수 있습니다 :

<File Id="$(var.productFamily)$(var.productSummary)" 
     Name="$(var.productFamily)$(var.productSummary).exe" 
     DiskId="1" KeyPath="yes" 
     Source="$(var.release)$(var.productFamily)$(var.productSummary).exe" > 
     <util:PermissionEx User="Everyone" GenericAll="yes" ChangePermission="yes" /> 
    </File> 

을 그리고 그와 나는 그들의 권한을 상승 할 수

당신은 또한이 같은 외부 참조로 추가 할 수 있습니다.

+0

왜 반대표입니까? 사실 그것은 문제를 해결했습니다 ... – Sonhja

+3

이것은 문제를 해결하지 못합니다. 이것은 실행 파일을 편집하는 것을 포함하여 모든 사람에게 액세스 권한을 부여하는 것뿐입니다. 이것은 우선 보호의 목적을 무효로 만듭니다. (참고 : 나는 당신에게 부정적인 표를주지 않았지만 나는 그 사람과 동의하는 경향이있다). –

+0

하지만 실제로 문제를 해결합니다. 읽기/쓰기 사용 권한 문제가 있었고이를 통해 읽기/쓰기가 가능하고 올바르게 실행할 수있었습니다. 그것은 내 문제 였고, 그것을 해결했습니다. – Sonhja

0

설치 프로그램에서 수행 한 작업으로이 문제를 해결할 수 없습니다.

exe가 일회성 설정을 수행하는 경우 (예 : Prog 파일 디렉토리에서 파일/폴더를 수정하고, 그것을 wix 설치 프로그램으로 옮기는 것을 고려하십시오.

모든 작업에서 일어나는 일이라면 무엇을하고 있는지 확인하고 고도를 필요로하지 않는 방식으로 시도하고 변경해야합니다. 가능하지 않다면 나는 두려워하는 것을 고조시켜야 할 것입니다. 이를 돕는 다른 방법은 로컬 컴퓨터 정책을 automatically elevate for administrators으로 설정하는 것입니다.

+0

exe는 Prog 파일 디렉토리의 파일을 수정하지만 내가 만든 폴더에 있습니다. 그리고 필자는 ProgramFiles 폴더에 프로그램을 설치해야하므로 일부 파일을 실행할 때 실행 권한을 높이는 것이 필요합니다. – Sonhja

+0

할 일은 사용자가 제어 할 수있는 파일을 Program Files가 아닌 사용자가 제어하는 ​​폴더에 저장하는 것입니다.Win7에서는 C : \ Users \ \ AppData \ ...입니다. 다른 버전의 Windows에는 고유 한 사용자 데이터 위치가 있습니다. 그들은 표준 환경 변수 % APPDATA %, iirc에 의해 참조 가능합니다. – DaveE

0

msi를 exe로 변환하는 옵션을 사용할 수 있으며 사용자가 exe를 실행하면 사용자에게 관리자 권한으로 실행하라는 메시지가 표시됩니다.

동일한 번호로 dontnetinstaller을 사용하고 있습니다. 완벽하게 작동합니다.