Uninstall old version and install new version in Inno Setup - inno-setup

I am trying to create a installer which checks if the older version of the software is installed or not. In case yes, it will uninstall the older version and install the new version silently by keeping all the parameters of older version (Path etc.)
I am able to check the older version by following commands:
RegQueryStringValue(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\mySoftware','DisplayVersion',pVersion)
and uninstall the older version by:
ShellExec('', ExpandConstant(<uninstall exe path>),'/VerySILENT /NORESTART /SUPPRESSMSGBOXES', '', SW_Hide, ewNoWait, ErrorCode)
but I am unable to install the new version silently.

If you are really certain that you need to perform an uninstall of an installed version before installing, you can use UnInsIS.dll, which provides an Inno Setup installer the ability to check if a package is installed and potentially uninstall it before proceeding with your installation. UnInsIS.dll is open-source.

Related

Install new library without reinstalling cygwin

I need to install jq under Text library in cygwin without reinstalling it, is there any way to update libraries or install new ones without reinstalling cygwin?
thanks.
I opened preinstalled cygwin, it takes me through installing steps which may overwrite my installed libraries.

How to install the latest version of NuGet.exe CLI in Ubuntu 18.04 WSL?

I have WSL 18.04 (Ubuntu) and I want to use NuGet.exe to install a Nuget Package to a folder (not .csproj) using the code below:
nuget install Test.Nuget.Version -OutputDirectory packages
In WSL, I use sudo apt install nuget. However that will only install an old nuget version 2.8.xxx in Ubuntu. =(
In order to run nuget install command, I must use the latest version of NuGet version (5.x.x) installed in Ubuntu.
Is it possible to install latest NuGet version in Ubuntu?
If yes, how can I do so?
Normally you can get nuget to update itself:
nuget.exe update -self
However recently, because I assume they have updated the min TLS version, one can get the following error:
The authentication or decryption has failed.
Error while sending TLS Alert (Fatal:InternalError): System.IO.IOException:
So your nuget version has to be new enough to upgrade itself.
So you have to get a new nuget.exe by alternative means:
curl https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -o nuget.exe

Unable to install Perlapi anymore?

I'm trying to follow the steps to fix Shutter's disabled edit button, and for that, you need to install libgoo-canvas-perl
I downloaded it, but when I install, I get:
libgoo-canvas-perl: Depends: perlapi-5.22.1 but it is not installable
What I can do?
The archive pool site only seems to have the old package:
libgoo-canvas-perl_0.06-2ubuntu1_amd64.deb
(note the ubuntu1 version)
Use and install the newer version from launchpad which has the dependency updated for the newer version of perl.
https://launchpad.net/ubuntu/bionic/amd64/libgoo-canvas-perl/0.06-2ubuntu3
(note the ubuntu3 version)

how to upgrade develop toolset on CentOS6.3 without the Internet?

Background: My CentOS have no access to the Internet and upgrading OS isn't permitted, but I can upload files to it. I want to use YCM to complete my c++ code.
I intended to install YCM on centos6.3 which have a clang2.8, but YCM needs libcalng3.9. So I have to upgrade my clang and llvm. Then I follow this tutorail to install llvm with source code, however I found that gcc cmake and many other fundamental tools also must be upgraded, or many errors would occur.
In order to install new tool chain, I have downloaded CentOS7.iso and use it as a local yum repo to upgrade development toolset. I don't know whether this way is proper, and it falt into loop dependence. So my questions are below.
Can install YCM without upgrade my development toolset?
Is there an easy/hard way to upgrade my development toolset?
What is the reason that I can't install software on CentOS6.3 using CentOS7.4?
You may use scientific linux's devtoolset packages from http://mirror.centos.org/centos/6/sclo/x86_64/rh/devtoolset-7/
Use rpm or yum to install devtoolset-7 and its dependecies. New binaries will be installed into /opt/rh/devtoolset-7/root/usr/bin. To make use of them you must add the path to the PATH environment variable.
The packages contain prebuilt binaries which require specific versions of shared librarirs, which are not available on mismatched version of centos.

How to install node 5.4.1 using brew

I am trying the following brew statement on console, but required node version is not found
brew install node#5.4.1
Does anybody knows how to install node version 5.4.1 by using Homebrew? This version is mandatory when using SAP HAT framework and is no longer possible to use previously node versions.
Futher information about HAT may be found on the following link: https://help.hana.ondemand.com/webide_hat/frameset.htm
You can’t install a specific version of Node with Homebrew if nobody wrote a formula (= package) for it. Homebrew doesn’t magically knows how to retrieve Node version 5.4.1 and how to build it.
You have to either install that version another way (e.g. using n) or create your own Homebrew formula (see the node#6 one).

Resources