@@ -366,15 +366,16 @@ return console.askOkCancel(message, true);
366366 <screen id =" 4" beanClass =" com.install4j.runtime.beans.screens.InstallationDirectoryScreen" actionElevationType =" none" >
367367 <condition >!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition >
368368 <preActivation >String pastInstallDir = (String)context.getVariable("sys.installationDir");
369- String agnosticAppDir = (String)context.getVariable("sys.programFilesDir");
369+ String privilegedAppDir = (String)context.getVariable("sys.programFilesDir");
370370String appName = "VCell_" + context.getCompilerVariable("Site");
371371boolean windowsOrMac = Util.isWindows() || Util.isMacOS();
372- if (pastInstallDir.contains(agnosticAppDir ) && windowsOrMac){
372+ if (pastInstallDir.contains(privilegedAppDir ) && windowsOrMac){
373373 String homeDir = (String)context.getVariable("sys.userHome");
374374 if (Util.isMacOS()){
375- context.setInstallationDirectory(new File(homeDir + "/Application /" + appName));
375+ context.setInstallationDirectory(new File(homeDir + "/Applications /" + appName));
376376 } else{
377- context.setInstallationDirectory(new File(homeDir + "\\AppData\\Local\\Programs\\" + appName));
377+ String localAppDataDir = (String)context.getVariable("sys.localAppdataDir");
378+ context.setInstallationDirectory(new File(localAppDataDir + "\\Programs\\" + appName));
378379 }
379380}
380381</preActivation >
@@ -626,8 +627,9 @@ return bngperlfile.exists();
626627 <condition >import java.io.File;
627628File userAgnostic = new File((String)context.getVariable("sys.programFilesDir"));
628629String appName = "VCell_" + context.getCompilerVariable("Site");
629- List< File> installed = Arrays.stream(userAgnostic.listFiles()).filter(f -> f.toString().contains(appName)).toList();
630- return installed.size() == 1;
630+ List< File> vcellRelatedAdminDirs = Arrays.stream(userAgnostic.listFiles()).filter(f -> f.toString().contains(appName)).toList();
631+ boolean existsAdminInstall = vcellRelatedAdminDirs.size() == 1;
632+ return existsAdminInstall;
631633</condition >
632634 <actions >
633635 <action id =" 3106" beanClass =" com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType =" none" rollbackBarrierExitCode =" 0" >
@@ -769,7 +771,16 @@ return true;
769771 <screen id =" 14" beanClass =" com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode =" 0" >
770772 <actions >
771773 <action id =" 20" beanClass =" com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" />
772- <action id =" 21" beanClass =" com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType =" none" />
774+ <action id =" 21" beanClass =" com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType =" none" >
775+ <condition >import java.io.File;
776+ File userAgnostic = new File((String)context.getVariable("sys.programFilesDir"));
777+ String appName = "VCell_" + context.getCompilerVariable("Site");
778+ List< File> vcellRelatedAdminDirs = Arrays.stream(userAgnostic.listFiles()).filter(f -> f.toString().contains(appName)).toList();
779+ boolean existsAdminInstall = vcellRelatedAdminDirs.size() == 1;
780+ return existsAdminInstall;
781+
782+ </condition >
783+ </action >
773784 </actions >
774785 </screen >
775786 </startup >
@@ -797,7 +808,7 @@ return console.askYesNo(message, true);
797808 </screen >
798809 <screen id =" 16" beanClass =" com.install4j.runtime.beans.screens.UninstallationScreen" >
799810 <actions >
800- <action id =" 17" beanClass =" com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType = " elevated " />
811+ <action id =" 17" beanClass =" com.install4j.runtime.beans.actions.UninstallFilesAction" />
801812 </actions >
802813 <formComponents >
803814 <formComponent id =" 2260" beanClass =" com.install4j.runtime.beans.formcomponents.ProgressComponent" >
0 commit comments