IA11: Force Uninstall of unpinned assemblies ...
Posted: Mon Jul 04, 2011 2:53 am
Hi,
I have the above option ticked but the assemblies are not being removed from the CLR2.0 GAC. I'm using a VM and the assemblies are not being used by any other program.
This is a very simple installation and here's the script:
How do I fix this?
Define Component: Full Installation
Comment: .NET Application Setup Project
Set Variable MYAHLOGO to TRUE
Set Localization Variable AquariusInstallerHeader to Aquarius Communications Installer Wizard
Set Variable NATIVE_ENGINE to TRUE
Set Variable NATIVE_ROLLBACK to TRUE
Set Variable NO_MSI to FALSE <===== I set this after reading the help docs. Doesn't seem to make any difference.
[DEFINE REGION: Check Application Requirements]
Get System Setting Windows XP into CHECKSYSTEM
if Variable CHECKSYSTEM not Equals TRUE
MessageBox: $TITLE$ Setup Error, This product requires at least Windows XP.$NEWLINE$$NEWLINE$Setup cannot continue.
Terminate Installation
end
<<Code Folding Region>>
[DEFINE REGION: Check/Install Application Pre-Requisites]
[DEFINE REGION: Check Application Pre-Requisites]
Comment: Check setup pre-requisites
Set Variable PREREQ to FALSE
Set Variable PRELIST to
[compiler if Variable BUILDMODE not Equals PATCH]
if Variable NEEDSUPGRADE Equals TRUE
Set Variable PREREQ to TRUE
Set Variable PRELIST to $PRELIST$$NEWLINE$Previous Version Uninstallation
end
[compiler end]
<<Code Folding Region>>
[DEFINE REGION: Install Application Pre-Requisites]
Comment: Install setup pre-requisites
if Variable PREREQ not Equals FALSE
Display Dialog: prereq, wait for dialog to return (modal)
if Variable WIZARD Equals CANCEL
Terminate Installation
end
Display Dialog: progressprereq, use as progress dialog (non-modal)
[compiler if Variable BUILDMODE not Equals PATCH]
if Variable NEEDSUPGRADE Equals TRUE
Set Variable REMOVEOLD to
Set Variable ERROROLD to
Install/Remove MSI Package $PRODUCTCODE$[REMOVE=ALL] (get result into variable REMOVEOLD)
if Variable REMOVEOLD Equals ERROR
MessageBox: $TITLE$ Setup, Unable to uninstall old version of $TITLE$. Please uninstall it yourself using Control Panel Add-Remove Programs before attempting to install this product.$NEWLINE$$NEWLINE$$ERROROLD$
Terminate Installation
end
if Variable REMOVEOLD Equals REBOOT
MessageBox: $TITLE$ Setup, Your computer needs to be restarted before $TITLE$ Setup can continue.$NEWLINE$$NEWLINE$Please save your work in all running programs and click OK to restart your computer. Setup will resume once your computer restarts.$NEWLINE$$NEWLINE$If you click CANCEL, setup will exit. You will have to run setup again at a later time to install $TITLE$.
if Variable REBOOTNOW Equals OK
Reboot Computer and Resume Setup
else
Terminate Installation
end
end
Set Variable MAINTENANCE to FALSE
end
[compiler end]
Hide Dialog
end
<<Code Folding Region>>
<<Code Folding Region>>
[DEFINE REGION: Define Setup Globals]
Comment: Define Setup Components
Comment: Initialize Setup Globals
Get System Setting Windows NT Kernel (NT4, 2000, XP, 2003, Vista, 2008) into ISNT
Get Folder Location System->Program Files Directory into PROGRAMFILES
Get Common Folder Location System->Program Files Directory into COMMONFILES
Get Common Folder Location Start Menu->Programs Group into SHORTCUTFILESALL
Get Folder Location Start Menu->Programs Group into SHORTCUTFILES
if Variable SHORTCUTFILESALL Equals
Set Variable SHORTCUTFILESALL to $SHORTCUTFILES$
end
Get Folder Location System->Desktop Directory into DESKTOPDIR
Get Folder Location System->Windows Directory into WINDIR
Get Folder Location System->System Directory into WINSYSDIR
Get Folder Location Taskbar->Quick Launch Directory into QUICKLAUNCHDIR
Get Folder Location WWW->WWWRoot into WWWROOTDIR
<<Code Folding Region>>
[DEFINE REGION: Setup User Interview]
if Variable MAINTENANCE Equals TRUE
GoTo Label: Maintenance
else
[compiler if Variable BUILDMODE not Equals PATCH]
Comment: First Time Install
Set Variable TARGETDIR to $PROGRAMFILES$\Aquarius Communications\$TITLE$
Set Variable STARTMENU to $TITLE$
[compiler end]
end
label: Welcome Dialog
Display Dialog: welcome, wait for dialog to return (modal)
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
[compiler if Variable BUILDMODE not Equals PATCH]
label: License Check
Display Dialog: licensecheck, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Welcome Dialog
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: ReadMe Information
Display Dialog: readme, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: License Check
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: User Registration
Comment: Display Dialog: registration, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: ReadMe Information
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: Setup Type
Display Dialog: setuptype, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: User Registration
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
Comment: TO-DO: Customize your minimum setup here
if Variable MINIMUM Equals TRUE
else
if Variable COMPLETE Equals TRUE
end
end
label: Custom Setup
Display Dialog: componentstree (if variable PERSONALIZED is TRUE), wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Setup Type
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: Destination Directory
Display Dialog: destination, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Custom Setup
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: Start Menu
Display Dialog: startmenu, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Destination Directory
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
[compiler end]
label: Start Installation
Display Dialog: startinstallation, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
[compiler if Variable BUILDMODE not Equals PATCH]
GoTo Label: Start Menu
[compiler else]
GoTo Label: Welcome Dialog
[compiler end]
else
GoTo Label: Main Install
end
label: Maintenance
Comment: Maintenance Install/Uninstall
wizard loop
Display Dialog: maintenance, wait for dialog to return (modal)
Display Dialog: componentstree (if variable MODIFY is TRUE), wait for dialog to return (modal)
Display Dialog: startinstallation, wait for dialog to return (modal)
end
<<Code Folding Region>>
[DEFINE REGION: Process (Un)Installation]
label: Main Install
Comment: Exit Setup if Wizard Loop cancelled
if Variable WIZARD Equals CANCEL
Terminate Installation
end
Comment: Prepare to install
Set Variable PROGRESSTEXT to Installing $TITLE$
Set Variable SUCCESS to
Set Variable LASTERROR to
if Variable ALLUSERS Equals TRUE
Set Variable SHORTCUTFOLDER to $SHORTCUTFILESALL$\$STARTMENU$
else
Set Variable SHORTCUTFOLDER to $SHORTCUTFILES$\$STARTMENU$
end
Display Dialog: progress, use as progress dialog (non-modal)
Comment: Modify Target System
[DEFINE REGION: Perform Uninstallation]
if Variable REMOVE Equals TRUE
Comment: Uninstall product
Comment: TO-DO: Insert any additional uninstall commands here
Apply Uninstall (get result into variable SUCCESS)
if Variable SUCCESS not Equals ERROR
if Variable SUCCESS not Equals CANCEL
Remove Unpinned Assemblies
end
end
Set Variable PROGRESS to 100
else
<<Code Folding Region>>
[DEFINE REGION: Perform First Time or Maintenance Installation]
Comment: Install/Re-Install product
Create Shortcut $SHORTCUTFOLDER$\Uninstall #TITLE# to $UNINSTALLLINK$
[OFFLINE CONTENT]
Install Files C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\TargetDir\AquariusDBATool.exe to $TARGETDIR$
[DEFINE WEB MEDIA Full Installation]
Get Component Full Installation Selection State into Variable SELECTED
if Variable SELECTED Equals TRUE
end
[DEFINE WEB MEDIA AquariusDBATool, Exclude from Build]
if Variable SELECTED Equals TRUE
end
Comment: TO-DO: Insert any additional install commands here
[compiler if Variable BUILDMODE Equals PATCH]
Apply Patch (get result into variable SUCCESS)
[compiler else]
if Variable ADVERTISE Equals TRUE
Apply Advertised (get result into variable SUCCESS)
else
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\VistaDB.4.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.Data.v10.2.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.Utils.v10.2.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.XtraEditors.v10.2.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.XtraGrid.v10.2.dll to Global Assembly Cache
Create Shortcut $SHORTCUTFOLDER$\Aquarius DBA Tool to $TARGETDIR$\AquariusDBATool.exe
Apply Install (get result into variable SUCCESS)
end
[compiler end]
Set Variable PROGRESS to 100
end
<<Code Folding Region>>
<<Code Folding Region>>
[DEFINE REGION: Finish Setup]
Comment: End of Installation
Hide Dialog
Display Dialog: finish, wait for dialog to return (modal)
if Variable SILENT Equals FALSE
if Variable REBOOTCOMPUTER Equals TRUE
if Variable SUCCESS Equals REBOOT
Reboot Computer
end
end
if Variable RUNAPP Equals TRUE
if Variable REMOVE Equals FALSE
if Variable SUCCESS Equals COMPLETE
Comment: TO-DO: Insert command that starts your application here
Run Program $TARGETDIR$\AquariusDBATool.exe
end
end
end
end
<<Code Folding Region>>
I have the above option ticked but the assemblies are not being removed from the CLR2.0 GAC. I'm using a VM and the assemblies are not being used by any other program.
This is a very simple installation and here's the script:
How do I fix this?
Define Component: Full Installation
Comment: .NET Application Setup Project
Set Variable MYAHLOGO to TRUE
Set Localization Variable AquariusInstallerHeader to Aquarius Communications Installer Wizard
Set Variable NATIVE_ENGINE to TRUE
Set Variable NATIVE_ROLLBACK to TRUE
Set Variable NO_MSI to FALSE <===== I set this after reading the help docs. Doesn't seem to make any difference.
[DEFINE REGION: Check Application Requirements]
Get System Setting Windows XP into CHECKSYSTEM
if Variable CHECKSYSTEM not Equals TRUE
MessageBox: $TITLE$ Setup Error, This product requires at least Windows XP.$NEWLINE$$NEWLINE$Setup cannot continue.
Terminate Installation
end
<<Code Folding Region>>
[DEFINE REGION: Check/Install Application Pre-Requisites]
[DEFINE REGION: Check Application Pre-Requisites]
Comment: Check setup pre-requisites
Set Variable PREREQ to FALSE
Set Variable PRELIST to
[compiler if Variable BUILDMODE not Equals PATCH]
if Variable NEEDSUPGRADE Equals TRUE
Set Variable PREREQ to TRUE
Set Variable PRELIST to $PRELIST$$NEWLINE$Previous Version Uninstallation
end
[compiler end]
<<Code Folding Region>>
[DEFINE REGION: Install Application Pre-Requisites]
Comment: Install setup pre-requisites
if Variable PREREQ not Equals FALSE
Display Dialog: prereq, wait for dialog to return (modal)
if Variable WIZARD Equals CANCEL
Terminate Installation
end
Display Dialog: progressprereq, use as progress dialog (non-modal)
[compiler if Variable BUILDMODE not Equals PATCH]
if Variable NEEDSUPGRADE Equals TRUE
Set Variable REMOVEOLD to
Set Variable ERROROLD to
Install/Remove MSI Package $PRODUCTCODE$[REMOVE=ALL] (get result into variable REMOVEOLD)
if Variable REMOVEOLD Equals ERROR
MessageBox: $TITLE$ Setup, Unable to uninstall old version of $TITLE$. Please uninstall it yourself using Control Panel Add-Remove Programs before attempting to install this product.$NEWLINE$$NEWLINE$$ERROROLD$
Terminate Installation
end
if Variable REMOVEOLD Equals REBOOT
MessageBox: $TITLE$ Setup, Your computer needs to be restarted before $TITLE$ Setup can continue.$NEWLINE$$NEWLINE$Please save your work in all running programs and click OK to restart your computer. Setup will resume once your computer restarts.$NEWLINE$$NEWLINE$If you click CANCEL, setup will exit. You will have to run setup again at a later time to install $TITLE$.
if Variable REBOOTNOW Equals OK
Reboot Computer and Resume Setup
else
Terminate Installation
end
end
Set Variable MAINTENANCE to FALSE
end
[compiler end]
Hide Dialog
end
<<Code Folding Region>>
<<Code Folding Region>>
[DEFINE REGION: Define Setup Globals]
Comment: Define Setup Components
Comment: Initialize Setup Globals
Get System Setting Windows NT Kernel (NT4, 2000, XP, 2003, Vista, 2008) into ISNT
Get Folder Location System->Program Files Directory into PROGRAMFILES
Get Common Folder Location System->Program Files Directory into COMMONFILES
Get Common Folder Location Start Menu->Programs Group into SHORTCUTFILESALL
Get Folder Location Start Menu->Programs Group into SHORTCUTFILES
if Variable SHORTCUTFILESALL Equals
Set Variable SHORTCUTFILESALL to $SHORTCUTFILES$
end
Get Folder Location System->Desktop Directory into DESKTOPDIR
Get Folder Location System->Windows Directory into WINDIR
Get Folder Location System->System Directory into WINSYSDIR
Get Folder Location Taskbar->Quick Launch Directory into QUICKLAUNCHDIR
Get Folder Location WWW->WWWRoot into WWWROOTDIR
<<Code Folding Region>>
[DEFINE REGION: Setup User Interview]
if Variable MAINTENANCE Equals TRUE
GoTo Label: Maintenance
else
[compiler if Variable BUILDMODE not Equals PATCH]
Comment: First Time Install
Set Variable TARGETDIR to $PROGRAMFILES$\Aquarius Communications\$TITLE$
Set Variable STARTMENU to $TITLE$
[compiler end]
end
label: Welcome Dialog
Display Dialog: welcome, wait for dialog to return (modal)
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
[compiler if Variable BUILDMODE not Equals PATCH]
label: License Check
Display Dialog: licensecheck, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Welcome Dialog
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: ReadMe Information
Display Dialog: readme, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: License Check
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: User Registration
Comment: Display Dialog: registration, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: ReadMe Information
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: Setup Type
Display Dialog: setuptype, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: User Registration
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
Comment: TO-DO: Customize your minimum setup here
if Variable MINIMUM Equals TRUE
else
if Variable COMPLETE Equals TRUE
end
end
label: Custom Setup
Display Dialog: componentstree (if variable PERSONALIZED is TRUE), wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Setup Type
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: Destination Directory
Display Dialog: destination, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Custom Setup
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
label: Start Menu
Display Dialog: startmenu, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
GoTo Label: Destination Directory
else
if Variable WIZARD Equals CANCEL
GoTo Label: Main Install
end
end
[compiler end]
label: Start Installation
Display Dialog: startinstallation, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
[compiler if Variable BUILDMODE not Equals PATCH]
GoTo Label: Start Menu
[compiler else]
GoTo Label: Welcome Dialog
[compiler end]
else
GoTo Label: Main Install
end
label: Maintenance
Comment: Maintenance Install/Uninstall
wizard loop
Display Dialog: maintenance, wait for dialog to return (modal)
Display Dialog: componentstree (if variable MODIFY is TRUE), wait for dialog to return (modal)
Display Dialog: startinstallation, wait for dialog to return (modal)
end
<<Code Folding Region>>
[DEFINE REGION: Process (Un)Installation]
label: Main Install
Comment: Exit Setup if Wizard Loop cancelled
if Variable WIZARD Equals CANCEL
Terminate Installation
end
Comment: Prepare to install
Set Variable PROGRESSTEXT to Installing $TITLE$
Set Variable SUCCESS to
Set Variable LASTERROR to
if Variable ALLUSERS Equals TRUE
Set Variable SHORTCUTFOLDER to $SHORTCUTFILESALL$\$STARTMENU$
else
Set Variable SHORTCUTFOLDER to $SHORTCUTFILES$\$STARTMENU$
end
Display Dialog: progress, use as progress dialog (non-modal)
Comment: Modify Target System
[DEFINE REGION: Perform Uninstallation]
if Variable REMOVE Equals TRUE
Comment: Uninstall product
Comment: TO-DO: Insert any additional uninstall commands here
Apply Uninstall (get result into variable SUCCESS)
if Variable SUCCESS not Equals ERROR
if Variable SUCCESS not Equals CANCEL
Remove Unpinned Assemblies
end
end
Set Variable PROGRESS to 100
else
<<Code Folding Region>>
[DEFINE REGION: Perform First Time or Maintenance Installation]
Comment: Install/Re-Install product
Create Shortcut $SHORTCUTFOLDER$\Uninstall #TITLE# to $UNINSTALLLINK$
[OFFLINE CONTENT]
Install Files C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\TargetDir\AquariusDBATool.exe to $TARGETDIR$
[DEFINE WEB MEDIA Full Installation]
Get Component Full Installation Selection State into Variable SELECTED
if Variable SELECTED Equals TRUE
end
[DEFINE WEB MEDIA AquariusDBATool, Exclude from Build]
if Variable SELECTED Equals TRUE
end
Comment: TO-DO: Insert any additional install commands here
[compiler if Variable BUILDMODE Equals PATCH]
Apply Patch (get result into variable SUCCESS)
[compiler else]
if Variable ADVERTISE Equals TRUE
Apply Advertised (get result into variable SUCCESS)
else
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\VistaDB.4.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.Data.v10.2.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.Utils.v10.2.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.XtraEditors.v10.2.dll to Global Assembly Cache
Install Assembly C:\Users\Administrator\Documents\My Projects\AquariusDBATool\IADistribution\GAC\DevExpress.XtraGrid.v10.2.dll to Global Assembly Cache
Create Shortcut $SHORTCUTFOLDER$\Aquarius DBA Tool to $TARGETDIR$\AquariusDBATool.exe
Apply Install (get result into variable SUCCESS)
end
[compiler end]
Set Variable PROGRESS to 100
end
<<Code Folding Region>>
<<Code Folding Region>>
[DEFINE REGION: Finish Setup]
Comment: End of Installation
Hide Dialog
Display Dialog: finish, wait for dialog to return (modal)
if Variable SILENT Equals FALSE
if Variable REBOOTCOMPUTER Equals TRUE
if Variable SUCCESS Equals REBOOT
Reboot Computer
end
end
if Variable RUNAPP Equals TRUE
if Variable REMOVE Equals FALSE
if Variable SUCCESS Equals COMPLETE
Comment: TO-DO: Insert command that starts your application here
Run Program $TARGETDIR$\AquariusDBATool.exe
end
end
end
end
<<Code Folding Region>>