Add-In installation

S

Selgin

Hi all

I've created a VB6 COM Add-In (self-registering DLL file) for Outlook 2000 and have used Windows Installer 1.1 to create a setup (.msi) file to deploy it. It all works fine, but for one issue

If I update the DLL (and increase the version number) and build a new .msi with the updated DLL, when I run the setup it doesn't overwrite the existing DLL, thus not reflecting the updated DLL. The setup asks me if I want to repair or remove the add-in, and if I choose repair it doesn't update the DLL, just leaves the current existing one

I would like it to overwrite the installed DLL without having to uninstall and then install the updated add-in. Can anyone please help

Thanks in advance
Selgi
 
Z

Zweitze de Vries

Selgin said:
Hi all,

I've created a VB6 COM Add-In (self-registering DLL file) for Outlook 2000
and have used Windows Installer 1.1 to create a setup (.msi) file to deploy
it. It all works fine, but for one issue.
If I update the DLL (and increase the version number) and build a new .msi
with the updated DLL, when I run the setup it doesn't overwrite the existing
DLL, thus not reflecting the updated DLL. The setup asks me if I want to
repair or remove the add-in, and if I choose repair it doesn't update the
DLL, just leaves the current existing one.
I would like it to overwrite the installed DLL without having to uninstall
and then install the updated add-in. Can anyone please help?


Note: This is about Windows Installer, questions are generally asked in
ms.public.platformsdk.msi

To start with:
Did you change the PackageCode property? Otherwise you will just reinstall
the existing package.
Read the Windows Installers SDK and choose the upgrade type that suits you
best: Minor or Major.
If you did all this, create a log during installing.
 
S

Selgin

Thanks for the reply. I'm using Visual Studio Installer (6.0) to create the .msi file. I can't seem to locate the PackageCode property. Can it be modifed in Visual Studio Installer

----- Zweitze de Vries wrote: -----

Note: This is about Windows Installer, questions are generally asked i
ms.public.platformsdk.ms

To start with
Did you change the PackageCode property? Otherwise you will just reinstal
the existing package
Read the Windows Installers SDK and choose the upgrade type that suits yo
best: Minor or Major
If you did all this, create a log during installing
 
Z

Zweitze de Vries

I don't use Visual Studio.
To find the PackageCode of an existing MSI file, use Orca (part of Platform
SDK), menu View - Summery Information, at ProductID (very confusing..)

Note: if you didn't change PackageCode, the second install starts in
maintenance mode (usually offering you to change, repair or remove the
existing installation). Usually, looking at the first dialog tells enough.
--
Zweitze de Vries
Cyco Software
Rijswijk, The Netherlands

Selgin said:
Thanks for the reply. I'm using Visual Studio Installer (6.0) to create
the .msi file. I can't seem to locate the PackageCode property. Can it be
modifed in Visual Studio Installer?
 
S

Selgin

Thanks Zweitze for your responses.

I did as you say, however the ProductId is the ProductCode (I checked it with whats in Visual Installer), not the PackageCode. Modifying the ProductCode installs a second instance of the application (different product).
I want to overwrite the existing installation.

Thanks again,

Selgin

----- Zweitze de Vries wrote: -----

I don't use Visual Studio.
To find the PackageCode of an existing MSI file, use Orca (part of Platform
SDK), menu View - Summery Information, at ProductID (very confusing..)

Note: if you didn't change PackageCode, the second install starts in
maintenance mode (usually offering you to change, repair or remove the
existing installation). Usually, looking at the first dialog tells enough.
 
Z

Zweitze de Vries

Selgin said:
Thanks Zweitze for your responses.

I did as you say, however the ProductId is the ProductCode (I checked it
with whats in Visual Installer), not the PackageCode. Modifying the
ProductCode installs a second instance of the application (different
product).
I want to overwrite the existing installation.


You are mistaken. In Orca, the PackageCode is listed in Summery Information
as "ProductID". The ProductCode is listed in the Property table, as
"ProductCode".
If you want to upgrade, read the SDK. You'll need to distinguish between
Major and Minor upgrade. I recommend a major upgrade, minor upgrades have
limitations. However, I don't know whether the VS Installer supports these
features.
 
S

Selgin

----- Zweitze de Vries wrote: -----
You are mistaken. In Orca, the PackageCode is listed in Summery Informatio
as "ProductID". The ProductCode is listed in the Property table, a
"ProductCode"
If you want to upgrade, read the SDK. You'll need to distinguish betwee
Major and Minor upgrade. I recommend a major upgrade, minor upgrades hav
limitations. However, I don't know whether the VS Installer supports thes
features

You are right, I came across this in some of the reading I did. Though what I did observe as aforementioned is that the ProductID in Orca is the same as the product Id in Visual Installer, which uses that ID to idenitify the product. Interesting..
In any case, changing that does cause a second installation instance. I'll look into the major upgrade via the SDK

Thanks again for your posts

Selgi
 
S

Selgin

----- Zweitze de Vries wrote: -----
You are mistaken. In Orca, the PackageCode is listed in Summery Information
as "ProductID". The ProductCode is listed in the Property table, as
"ProductCode".
If you want to upgrade, read the SDK. You'll need to distinguish between
Major and Minor upgrade. I recommend a major upgrade, minor upgrades have
limitations. However, I don't know whether the VS Installer supports these
features.

It appears that Visual Installer uses the product code as the value of the package code, as Visual Installer has no way of accessing the package code. That's why they were coming up the same.

I have modified my update MSI file doing the following:
* I have given the updated DLL the same Component ID as the original, but a higher version number
* I have given the update package a higher version number
* I have placed the same UpgradeCode in the Upgrade Table of the update package using Orca, as the original
* I have given it a new PackageCode using Orca
* ProductCodes are the same

However, I am now getting the error:
"Another version of this product is already installed. Installation of this package cannot continue..." ie. must uninstall first.

Any ideas,

Thanks and regards,

Selgin
 
Z

Zweitze de Vries

Try changing the ProductCode as well. Note that this is an essential part of
Major upgrades. To get them working properly, make sure that the Upgrade
table is populated well, and that RemoveExistingProducts is listed in the
InstallExecuteSequence table.
If everything's OK, the Windows Installer will uninstall the old version
during RemoveExistingProducts.
--
Zweitze de Vries
Cyco Software
Rijswijk, The Netherlands

Selgin said:
----- Zweitze de Vries wrote: -----
You are mistaken. In Orca, the PackageCode is listed in Summery Information
as "ProductID". The ProductCode is listed in the Property table, as
"ProductCode".
If you want to upgrade, read the SDK. You'll need to distinguish between
Major and Minor upgrade. I recommend a major upgrade, minor upgrades have
limitations. However, I don't know whether the VS Installer supports these
features.

It appears that Visual Installer uses the product code as the value of the
package code, as Visual Installer has no way of accessing the package code.
That's why they were coming up the same.
I have modified my update MSI file doing the following:
* I have given the updated DLL the same Component ID as the original, but a higher version number
* I have given the update package a higher version number
* I have placed the same UpgradeCode in the Upgrade Table of the update
package using Orca, as the original
* I have given it a new PackageCode using Orca
* ProductCodes are the same

However, I am now getting the error:
"Another version of this product is already installed. Installation of
this package cannot continue..." ie. must uninstall first.
 
S

Selgin

I tried it again. The behaviour I'm getting is that changing the poduct code results in a second installed instance, in Add/Remove programs, even when the below is done.

According to all the documentation on the MS site that I have read, this should have worked. I don't know if there is much more to be said. I'll continue tinkering and looking around. Do you know of any good sites that cover this stuff, with examples?

Thanks for all of your helpful posts during this

----- Zweitze de Vries wrote: ----

Try changing the ProductCode as well. Note that this is an essential part o
Major upgrades. To get them working properly, make sure that the Upgrad
table is populated well, and that RemoveExistingProducts is listed in th
InstallExecuteSequence table
If everything's OK, the Windows Installer will uninstall the old versio
during RemoveExistingProducts
--
Zweitze de Vrie
Cyco Softwar
Rijswijk, The Netherland

Selgin said:
You are mistaken. In Orca, the PackageCode is listed in Summer Informatio
as "ProductID". The ProductCode is listed in the Property table, a
"ProductCode"
If you want to upgrade, read the SDK. You'll need to distinguis betwee
Major and Minor upgrade. I recommend a major upgrade, minor upgrade hav
limitations. However, I don't know whether the VS Installer support thes
package code, as Visual Installer has no way of accessing the package code
That's why they were coming up the same
* I have given the updated DLL the same Component ID as the original, bu a higher version numbe
* I have given the update package a higher version numbe
* I have placed the same UpgradeCode in the Upgrade Table of the updat
package using Orca, as the origina
* I have given it a new PackageCode using Orc
* ProductCodes are the sam
"Another version of this product is already installed. Installation o
this package cannot continue..." ie. must uninstall first
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top