2017-06-20 6 views
0

Un débutant NSIS ici.NSIS Uninstaller en conflit avec l'anti-virus (Trend Micro): Impossible de désinstaller

J'appelle ma commande de désinstallation avec ExecWait car j'ai prédéfini des pages personnalisées avant la désinstallation.

ExecWait '"$R6\Uninstall.exe" _?=$R6' ;Do not copy the uninstaller to a temp file 

$ R6 est mon chemin d'installation du répertoire.

mais ceci est la copie des fichiers lors de la désinstallation dans Windows dossier temp et le logiciel anti-virus bloque ces fichiers de désinstallation et de corrompre la uninstaller.exe

Comment puis-je arrêter la création de ces fichiers temporaires pendant la désinstallation? ? Je suis confronté à ce problème même pendant que je le désinstalle du panneau de contrôle.

Comme il s'agit d'un système client, nous ne pouvons pas désactiver l'antivirus (cette option est exclue). S'il vous plaît quelqu'un peut-il m'aider avec cela. merci d'avance

+0

Où est cet appel ExecWait? Dans l'installateur ou le programme de désinstallation? Poster plus de code. – Anders

+0

Hi Anders, il est appelé dans l'installateur lors de la vérification de l'application précédemment installée, si une version trouvée, alors cette commande est invoquée. – faisal

+0

Si vous utilisez _? = Lors de l'exécution du programme de désinstallation à partir du programme d'installation, le programme de désinstallation n'est pas copié dans% temp%. – Anders

Répondre

0

Signalez les faux positifs à Trend Micro.

Si vous voulez éviter% Temp%, vous pouvez utiliser un petit lanceur de désinstallation:

!define UNBINNAME "Uninst.bin" 
!define UNHLPNAME "Uninst.exe" 
!ifndef UNHELPER ; Main script: 
OutFile "MySetup.exe" 
RequestExecutionLevel Admin 
Name "MySetup" 
InstallDir "$ProgramFiles\MyApp" 

Page Directory 
Page InstFiles 

Section 
SetOutPath $InstDir 
WriteUninstaller "$InstDir\${UNBINNAME}" ; Real uninstaller 
!makensis '-DUNHELPER "${__FILE__}"' = 0 ; Compile helper (NSIS v3+) 
File "${UNHLPNAME}" ; Uninstall launcher 
; TODO: Write uninstall registry entries here 
SectionEnd 

Section Uninstall 
Delete "$InstDir\${UNBINNAME}" 
Delete "$InstDir\${UNHLPNAME}" 
RMDir "$InstDir" 
SectionEnd 

!else ; Helper: 
OutFile "${UNHLPNAME}" 
RequestExecutionLevel Admin 
SilentInstall silent 
Name "UnHelper" 
Icon "${NSISDIR}\Contrib\Graphics\Icons\classic-uninstall.ico" 
Section 
System::Call "OLE32::CoCreateGuid(g.r0)" ; Note: This will create a .dll in %Temp%, use a unique name instead if this is a problem. 
StrCpy $0 "$LocalAppData\Un$0.exe" 
CopyFiles /SILENT /FILESONLY "$ExeDir\${UNBINNAME}" "$0" 
Exec '"$0" _?=$ExeDir' 
Quit 
SectionEnd 
!endif 

Si cela fonctionne alors l'AV est l'utilisateur peut écrire un peu idiot,% Temp% n'est pas vraiment spécial, à d'autres endroits.

+0

je vais essayer de mettre en œuvre ceci et je reviendrai à vous merci – faisal