2015-01-06 5 views
0

Я создаю приложение, где установка включает в себя копирование и регистрацию Microsoft.VisualBasic.PowerPacks.Vs в папку сборки Windows. Этот процесс иногда не в системе Windows 7, где UAC является active.Currently, я использую следующий скрипт в разделе:Как скопировать и установить DLL в папку сборки с помощью NSIS в ОС Windows с повышенным UAC

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

Запрос любезно предоставить мне сценарий/решение, чтобы успешно скопировать и зарегистрировать DLL даже когда UAC повышается в системе Windows 7

ответ

0

Все установщики NSIS должны содержать атрибут RequestExecutionLevel, он проверяется Windows Vista и позже, когда включен UAC.

Установщик должен запросить права администратора при установке вещи в 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 

 Смежные вопросы

  • Нет связанных вопросов^_^