This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- I had the same issue. :)
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
May 14, 2009
05:07 AM
Multiple Entry in Add/Remove program after upgrade
Hi,
I facing issue of having multiple Add/Remove program entry in the machine after installing and upgrading an application which is build in Install Shield 2009 MSI. Please let know how to resolve this problem.
I facing issue of having multiple Add/Remove program entry in the machine after installing and upgrading an application which is build in Install Shield 2009 MSI. Please let know how to resolve this problem.
(1) Reply
May 14, 2009
02:50 PM
I am assuming you are trying to to do a Major Upgrade.
Things to check.
#1. ProductCode has Changed. (look inside the MSI's to confirm this.) If Not
#2. UpgradeCode is the same. (look inside the MSI's to confirm this.)
#3. A new MajorUpgradeItem is added inside your Project inside Media\Upgrades. (Can also Check inside the Upgrade Table inside Direct Editor there should be atleast 2 items, "Your upgrade" and the ISPreventDowngrade)
If you are planning to automate the ProductCode Change and MajorUpgrade, I suggest you do it through the Automation API through VisualStudio or someother scripting tool.
this is my C# Code inside a Class
using ISWiAuto15;
namespace WindowsFromsApplication
public partial class InstallBuilder : Form
{
public InstallBuilder()
{
InitializeComponent();
}
//Method that opens my .ismfile and generates a new ProductCode.
//Creates MajorUpgrade Table Entries and removes the old ones.
private void NewProductCode(string ismPath, string version)
{
if (_checkBoxProductCode.Checked)
{
//Creates and opens ISM Project
ISWiProject msiProj = new ISWiProject();
msiProj.OpenProject(ismPath, false);
//Generates and Assigns a new ProductCode
msiProj.ProductCode = msiProj.GenerateGUID();
//sorts through the upgrade table entries and removes all but preventdowngrade
foreach (IswiUpgradeTableEntry ute in msiProj.IswiUpgradeTableEntries)
{
if (ute.Attributes != 2)
{
ute.Delete();
}
}
//For some silly reason I cannot get a MajorUpgrade to work unless I create two entries. I think it's a Bug!
//This will generate a new Upgrade Table Entry (needed for MajorUpgrade)
msiProj.AddUpgradeTableEntry();
msiProj.AddUpgradeTableEntry();
msiProj.SaveProject();
msiProj.CloseProject();
}
}
}
Things to check.
#1. ProductCode has Changed. (look inside the MSI's to confirm this.) If Not
#2. UpgradeCode is the same. (look inside the MSI's to confirm this.)
#3. A new MajorUpgradeItem is added inside your Project inside Media\Upgrades. (Can also Check inside the Upgrade Table inside Direct Editor there should be atleast 2 items, "Your upgrade" and the ISPreventDowngrade)
If you are planning to automate the ProductCode Change and MajorUpgrade, I suggest you do it through the Automation API through VisualStudio or someother scripting tool.
this is my C# Code inside a Class
using ISWiAuto15;
namespace WindowsFromsApplication
public partial class InstallBuilder : Form
{
public InstallBuilder()
{
InitializeComponent();
}
//Method that opens my .ismfile and generates a new ProductCode.
//Creates MajorUpgrade Table Entries and removes the old ones.
private void NewProductCode(string ismPath, string version)
{
if (_checkBoxProductCode.Checked)
{
//Creates and opens ISM Project
ISWiProject msiProj = new ISWiProject();
msiProj.OpenProject(ismPath, false);
//Generates and Assigns a new ProductCode
msiProj.ProductCode = msiProj.GenerateGUID();
//sorts through the upgrade table entries and removes all but preventdowngrade
foreach (IswiUpgradeTableEntry ute in msiProj.IswiUpgradeTableEntries)
{
if (ute.Attributes != 2)
{
ute.Delete();
}
}
//For some silly reason I cannot get a MajorUpgrade to work unless I create two entries. I think it's a Bug!
//This will generate a new Upgrade Table Entry (needed for MajorUpgrade)
msiProj.AddUpgradeTableEntry();
msiProj.AddUpgradeTableEntry();
msiProj.SaveProject();
msiProj.CloseProject();
}
}
}