Reinstalling msi's
Hi all,
I create my msi packages with ms access developer extentions package. I need to configure an MSI to reinstall, doesn't matter if there is another version of the application.
How do I that?
Thanks
Rudi
I create my msi packages with ms access developer extentions package. I need to configure an MSI to reinstall, doesn't matter if there is another version of the application.
How do I that?
Thanks
Rudi
0 Comments
[ + ] Show comments
Answers (15)
Please log in to answer
Posted by:
Siebrasse
19 years ago
Hi,
Since it doesn't matter if there is a previous installation can't you just creat a package that installs the application? As long as the GUID are different that should work.
Depending on what the previuos package is and how it is distibuted you can also simply remove a key component from the target machines. Msiexec then will try to reinstall. removing one or more key components can by done by a command line execution from a login script.
Does this help you any bit at all?[8|]
Edwin
Since it doesn't matter if there is a previous installation can't you just creat a package that installs the application? As long as the GUID are different that should work.
Depending on what the previuos package is and how it is distibuted you can also simply remove a key component from the target machines. Msiexec then will try to reinstall. removing one or more key components can by done by a command line execution from a login script.
Does this help you any bit at all?[8|]
Edwin
Posted by:
tjoppie
19 years ago
Hi Edwin,
Not really. When I try changing the GUID, it installs it as if it's another application. When you look inside add / remove programs, you've got a line item for each installation. As I am deploying updates and bug fixes alot, this is a problem.
I am thinking of doing this - Small updates, but I don't have a clue on how to achieve it. Anyone got any ideas?
Not really. When I try changing the GUID, it installs it as if it's another application. When you look inside add / remove programs, you've got a line item for each installation. As I am deploying updates and bug fixes alot, this is a problem.
I am thinking of doing this - Small updates, but I don't have a clue on how to achieve it. Anyone got any ideas?
Posted by:
Siebrasse
19 years ago
Tjoppie,
Create two directroies, one main one update.
Create main.msi and save in the main directroy. Save it again in the update directory.
Run the main.msi
Change the package code of the main.msi the is located in the upgrade directroy.
Copy the main.msi form the update dir to the main dir. It will override your org main.msi.
Now in appwiz.cpl Support information ther is a extra button named repair.
Good luck with it.
Edwin
Create two directroies, one main one update.
Create main.msi and save in the main directroy. Save it again in the update directory.
Run the main.msi
Change the package code of the main.msi the is located in the upgrade directroy.
Copy the main.msi form the update dir to the main dir. It will override your org main.msi.
Now in appwiz.cpl Support information ther is a extra button named repair.
Good luck with it.
Edwin
Posted by:
tjoppie
19 years ago
Edwin,
Eish... Still not gonna cover it. See my client pc users, have limited pc experience, and I mean... Real limited. As in where do I switch on the pc limited.
They should not even know when and how it updates. My application I deploy checks for updates when it opens, and when there is an update, it updates (reinstalls) but this all runs in basic mode. So is there any way where the user has nothing to do with the installation but it just reinstalls the package?
Eish... Still not gonna cover it. See my client pc users, have limited pc experience, and I mean... Real limited. As in where do I switch on the pc limited.
They should not even know when and how it updates. My application I deploy checks for updates when it opens, and when there is an update, it updates (reinstalls) but this all runs in basic mode. So is there any way where the user has nothing to do with the installation but it just reinstalls the package?
Posted by:
Siebrasse
19 years ago
Posted by:
tjoppie
19 years ago
Edwin,
The way my application updates. I use SQL Server as my back end database. Update versions are kept in a table in sql server. Every time my application opens, it checks which is the newest version of the application. if it is the current installed version, then it ignores updating, and continues. When it sees that there's a new update version captured. It attempts to update. Now the setup files are on our file servers. (currently only the raw files, and I'm using a .bat script to copy the files over to the client pc, so I want to move over to msi now) So when it "sees" there's an update, sql server tells the application where the new files are which it needs to copy.
My Problem is: As I am deploying my application to our network alot, I need to be able to "reinstall" the application alot on client pcs. Now When I package my application (using Microsoft Access developer extentions). It installs fine on client pcs. When I have a new revision of my application, and repackage, then the application does not install on the client pcs. I get the error "Another version of this application already exists, please first uninstall in the Add / Remove control panel applet"
Now that is my problem. I want the application to reinstall, if it already is installed. so it uninstalls or just reinstalls, it does not tell me "go and reinstall in control panel" That will lead to my phone starting to ring like mad 5 min after I deploy my package everytime.
I want the msi application to install if the application does not exist (First time installing) and when it updates, it only reinstalls the application.
Thanks for the help so far.
The way my application updates. I use SQL Server as my back end database. Update versions are kept in a table in sql server. Every time my application opens, it checks which is the newest version of the application. if it is the current installed version, then it ignores updating, and continues. When it sees that there's a new update version captured. It attempts to update. Now the setup files are on our file servers. (currently only the raw files, and I'm using a .bat script to copy the files over to the client pc, so I want to move over to msi now) So when it "sees" there's an update, sql server tells the application where the new files are which it needs to copy.
My Problem is: As I am deploying my application to our network alot, I need to be able to "reinstall" the application alot on client pcs. Now When I package my application (using Microsoft Access developer extentions). It installs fine on client pcs. When I have a new revision of my application, and repackage, then the application does not install on the client pcs. I get the error "Another version of this application already exists, please first uninstall in the Add / Remove control panel applet"
Now that is my problem. I want the application to reinstall, if it already is installed. so it uninstalls or just reinstalls, it does not tell me "go and reinstall in control panel" That will lead to my phone starting to ring like mad 5 min after I deploy my package everytime.
I want the msi application to install if the application does not exist (First time installing) and when it updates, it only reinstalls the application.
Thanks for the help so far.
Posted by:
Siebrasse
19 years ago
Tjoppie,
I do understand that you don't want to have the phone ringing ever 5 min. After I've created a package and distributed it I do not want to see or hear a customer with an isue.
So now your problem. The command line for reinstall is msiexec.exe /fa package.msi. the command line for silence installing is msiexec.exe /i pacakage.msi /qb. For removing a package its is msiexec.exe /x package.msi
So within a logon script you can use this 3 lines to install, forced reinstall and remove if nessecary. It needs some pretty good planning ahead to figure out the method But I'm sure that you can make it happen.
Edwin
I do understand that you don't want to have the phone ringing ever 5 min. After I've created a package and distributed it I do not want to see or hear a customer with an isue.
So now your problem. The command line for reinstall is msiexec.exe /fa package.msi. the command line for silence installing is msiexec.exe /i pacakage.msi /qb. For removing a package its is msiexec.exe /x package.msi
So within a logon script you can use this 3 lines to install, forced reinstall and remove if nessecary. It needs some pretty good planning ahead to figure out the method But I'm sure that you can make it happen.
Edwin
Posted by:
tjoppie
19 years ago
Hi Edwin,
Maybe this is gonna be a stupid question but.
My package gets distributed for writing onto a cd. So my directory structure looks like so:
| --- Autorun.inf
| --- Setup.exe
| --- Files\Accessrt.zip
| --- Files\ACCESSRT.msi
| --- Files\JMS.msi
| --- Files\Setup\Setup.ini
Now in my setup.ini file, the following lines is written:
This is the original:
==================================================
[MSI]
; The MSI section gives the name of the MSI file to install. This file must be in
; the same folder as Setup.exe, and both must be in the root of the installation
; tree.
MSI=\Files\jms.msi
===================================================
I changed it to this:
MSI=msiexec.exe /fa \Files\jms.msi
The error that I'm getting upon running setup.exe from the root is:
"Can't Locate the msi file specified in H:\Deploy\20050624\Files\Setup\Setup.ini"
It doesn't help when I change the path to the full path aswell... any suggestions?
Maybe this is gonna be a stupid question but.
My package gets distributed for writing onto a cd. So my directory structure looks like so:
| --- Autorun.inf
| --- Setup.exe
| --- Files\Accessrt.zip
| --- Files\ACCESSRT.msi
| --- Files\JMS.msi
| --- Files\Setup\Setup.ini
Now in my setup.ini file, the following lines is written:
This is the original:
==================================================
[MSI]
; The MSI section gives the name of the MSI file to install. This file must be in
; the same folder as Setup.exe, and both must be in the root of the installation
; tree.
MSI=\Files\jms.msi
===================================================
I changed it to this:
MSI=msiexec.exe /fa \Files\jms.msi
The error that I'm getting upon running setup.exe from the root is:
"Can't Locate the msi file specified in H:\Deploy\20050624\Files\Setup\Setup.ini"
It doesn't help when I change the path to the full path aswell... any suggestions?
Posted by:
Siebrasse
19 years ago
Posted by:
rikx2
19 years ago
Posted by:
Priapus
19 years ago
The way my application updates. I use SQL Server as my back end database. Update versions are kept in a table in sql server. Every time my application opens, it checks which is the newest version of the application. if it is the current installed version, then it ignores updating, and continues. When it sees that there's a new update version captured. It attempts to update. Now the setup files are on our file servers. (currently only the raw files, and I'm
Hej Tjoppie,
I had a similar problem. Not exactly the same but a similar. You see I am receiving a software version updates time to time. When I install the package, it does not remove the old package. So, this is my workaround;
I find the CLSID of the package that I have to remove. This will be in the registry here and will look something like this;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3248F0A8-6813-11D6-A77B-00B0D0150020}
So I create a .bat file and place it under the logon process of the client,
In the .bat file,
I remove the old package by this lijn;
start /wait msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150020} /qb-
start /wait msiexec. /i \package\package.msi /qb-
If you want to make it more advanced, you can add a autologon(under RUNONCE in Registry), reboot the machine, autologon with Administrator credentials, install the new package, clean up autologon entries from the registry and the new app. is installed.
Voila !
This works, I guarantiee you that...
Posted by:
VikingLoki
19 years ago
Wow, lots of suggestions to do it the hard way. Research use of the Upgrade Table.
In a nutshell, it's a list of upgrade codes and a version ranges that will be scanned for and removed before the MSI's installation begins. When that MSI goes on, it first takes these MSI(s) off. Once the upgrade table is defined, no further thought is required. It just upgrades properly.
In a nutshell, it's a list of upgrade codes and a version ranges that will be scanned for and removed before the MSI's installation begins. When that MSI goes on, it first takes these MSI(s) off. Once the upgrade table is defined, no further thought is required. It just upgrades properly.
Posted by:
rikx2
19 years ago
ORIGINAL: VikingLoki
Wow, lots of suggestions to do it the hard way. Research use of the Upgrade Table.
In a nutshell, it's a list of upgrade codes and a version ranges that will be scanned for and removed before the MSI's installation begins. When that MSI goes on, it first takes these MSI(s) off. Once the upgrade table is defined, no further thought is required. It just upgrades properly.
now why didnt i think of that? ahehehe[8D]
rick
Posted by:
VikingLoki
19 years ago
Posted by:
tjoppie
19 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.