2015-01-06 3 views
0

Windows 어셈블리 폴더에 Microsoft.VisualBasic.PowerPacks.Vs를 복사하고 등록하는 설치가 포함 된 응용 프로그램 설치를 작성합니다. 성공적으로 복사 심지어 DLL을 등록 친절하게 나에게 어떤 스크립트/솔루션을 제공하기 위해 요청승격 된 UAC가 설치된 Windows OS에서 NSIS를 사용하여 어셈블리 폴더에 dll을 복사하고 설치하는 방법

SetOutPath $INSTDIR\bin 
File "..\MyFolder\systemfiles\Microsoft.VisualBasic.PowerPacks.Vs.dll 
ExecWait '"$R0\RegAsm.exe" Microsoft.VisualBasic.PowerPacks.Vs.dll' 

:이 과정은 때로는 내가 섹션에서 다음 스크립트를 사용하여 UAC가 active.Currently 인 Windows 7 시스템에서 실패 Windows 7 시스템에서 UAC가 상승 된 경우

답변

0

모든 NSIS 설치 관리자는 RequestExecutionLevel 속성을 포함해야하며 UAC가 켜져있을 때 Windows Vista 이상에서 검사됩니다.

귀하의 설치 프로그램은 GAC, SXS 등의 일을 설치할 때 관리자 권한을 요청해야합니다 :

Outfile RequireAdmin.exe 
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) 

!include LogicLib.nsh 

Function .onInit 
UserInfo::GetAccountType 
pop $0 
${If} $0 != "admin" ;Require admin rights on NT4+ 
    MessageBox mb_iconstop "Administrator rights required!" 
    SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED 
    Quit 
${EndIf} 
FunctionEnd 

Page InstFile 

Section 
SectionEnd