cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
p_asquino
Level 3

Component added to feature

I have a setup with 2 feature:
Service and Portal.
Service and Portal have more than one component and every component has more than one file.
Happens that 2 components (not all..) associated to feature "Portal" are installed on pc client when i do an update from a pc where was installed only feature "Service".
I checked in "Setup Desing" and in "Direct Editor" if there is some discrepancy between them, but i can't find any problems

Labels (1)
0 Kudos

(12) Replies
Jenifer
Flexera Alumni

Hi @p_asquino ,

 

Can you please elaborate these lines?

"Happens that 2 components (not all..) associated to feature "Portal" are installed on pc client when i do an update from a pc where was installed only feature "Service"."

Is that something on minor-upgrade component named portal is been deleted?

 

As well i would suggest to enable MSI log using General Information->Create MSI Logs->Yes for the case of MSI

or

run setup with 

Setup.exe /v"/l*v c:\test.log" -logging purpose

 

In the log file search for specific component to know what goes wrong with that?

 

Thanks,

Jenifer

0 Kudos

"Is that something on minor-upgrade component named portal is been deleted?" Before the setup has only the feature "Service" then i add the feature "Portal". Who has installed the old setup has only the feature "Service" installed. In the log i found this line: " New components have been added to feature 'File' MSI (c) (38:94) [16:22:53:818]: SELMGR: Component 'BIN' is a new component added to feature 'File' MSI (c) (38:94) [16:22:53:818]: SELMGR: Component 'IXAGENTCONFIG_PORTAL' is a new component added to feature 'File' MSI (c) (38:94) [16:22:53:818]: PROPERTY CHANGE: Adding TARGETDIR property. Its value is 'C:\'." The setup added the component "BIN" and "IXAGENTCONFIG_PORTAL" to the feature "File" (sorry, before i call it Service) but in the Setup Design the components "BIN" and "IXAGENTCONFIG_PORTAL" are associate to the feature "Portal", as you can see on the image
0 Kudos

Hi @p_asquino ,

Can you confirm that you are trying to do minor-upgrade?

 

If so i would suggest you to create sub-feature which has settings stated below:

Adding a Subfeature with a Minor Upgrade

In general, a minor upgrade should not include a new top-level feature. However, new subfeatures of existing features are allowed. If you are adding a new subfeature for a minor upgrade, set two of the subfeature’s properties as follows so that they are installed correctly during a minor upgrade:

  • Remote Installation—Set this property to Favor Parent.
  • Required—Set this property to Yes.

The user interface of a minor upgrade does not usually show the feature tree; however, maintenance mode for the updated installation typically does expose the feature tree. If you want the new subfeature to be excluded from the feature tree so that end users cannot deselect it, set the subfeature’s Display property to Not Visible.

As well if you want to remove any data on minor upgrade do follow things stated below:

InstallShield includes support for different methods for configuring a minor upgrade to remove installed data. Two methods are discussed in the following sections.

Method 1

To configure a minor upgrade to remove data that was installed during an earlier release, open your InstallShield project in which you are configuring the upgrade, and in the Files and Folders view, delete the file. Then you can create a record in the corresponding Remove tables within the Direct Editor. The Remove tables in the Direct Editor include the RemoveFile, RemoveIniFile, and RemoveRegistry tables.

To remove registry data from a component in a minor upgrade, you should create a record in the RemoveRegistry table. Records in the RemoveRegistry table describe the registry key and value to remove when the associated component is installed. Unlike the RemoveFile table, the RemoveRegistry table does not accept an option to remove the specified registry data when the associated component is uninstalled. Instead, you can author a registry value with the Uninstall entire key flag. If your component contains a registry value with a hyphen in the Name field and an empty Value field, the specified registry key and all its contents will be removed when the component is removed.

For other types of data, there is usually either an uninstallation flag available in the Windows Installer table or a corresponding uninstallation table. To remove .ini data, for example, there is a RemoveIniFile table. For environment variable data, there is a corresponding uninstallation flag.

 

Hope it helps,

Thanks,

Jenifer

0 Kudos

"Can you confirm that you are trying to do minor-upgrade?"

Yes, i'm trying to do minor-upgrade. I didn't explain myself well...

I did a setup with 1 features: File.

I Installed this setup on client pc and all gone right.

Than i modify my setup and i added another feature, at the same level of File: Portal.

The feature File has 4 component: AllOtherFiles, Config, ISRegistryComponent and Service

The feature Portal has a lot of component but there are 2 component that has problem: Bin and Config.

When i install the new setup (with the 2 feature) on a new machine, there isn't any problem. But when i install the new setup on a pc where i installed the old setup (so only with the feature File), the component Bin and Config are installed on the client.

I don't need to install the 2 feature on a client with installed the old setup but i need only to upgrade the file that are associated to the feature "File"

0 Kudos

I did another test and i discover that there are common files between component "bin" and the component "A" (A associated to File). 
This common files are link to different path:
Example: 
Feature "File" - Component A - File foo.dll --> link to C:\test\foo.dll
Feature "File" - Component A - File bar.dll --> Link to c:\test\bar.dll

Feature "Portal" - Component Bin - File foo.dll --> Link too C:\portal\bin\foo.dll 
Feature "Portal" - Component Bin - File test.dll --> Link too C:\portal\test.dll

I think that when i upgrade from old setup and the new, the setup find all file "foo.dll" and install that, despite the files are associated to onether component and feature

0 Kudos

Hi @p_asquino ,

 

There are lot to add here:

  • First of all Minor upgrade should not contain any new feature to be added.Notes from Flexera on this regard:"Any new features that you add to the latest version of your installation must be added as subfeatures of existing features. These new features must have the Remote Installation property set to Favor Parent and the Required attribute set to Yes in the Features view."
  • As well file sharing between components that too on upgrade that wont be viable solution.To know what would be impact of this i would suggest you to enable msi validation via Tools->options->Validation->Perform Validation Using ->Full MSI Validation Suite
  • That can clearly give back this error that says "the file added under specific component is been shared by other component which might break component referencing"

Any specific reason why are you using same file under different component?If you want those files to updated by Feature "File" add those under existing components not new ones.

Thanks,

Jenifer

0 Kudos


There are lot to add here:

  • First of all Minor upgrade should not contain any new feature to be added.Notes from Flexera on this regard:"Any new features that you add to the latest version of your installation must be added as subfeatures of existing features. These new features must have the Remote Installation property set to Favor Parent and the Required attribute set to Yes in the Features view."

 


excuse me but at this link https://helpnet.flexerasoftware.com/installshield22helplib/helplibrary/MajorMinorSmall.htm , at the table, there is a line that said "Add a new component to a new feature" and it's write "yes" at the column "Use a minor Upgrade?" 

0 Kudos

Any specific reason why are you using same file under different component?If you want those files to updated by Feature "File" add those under existing components not new ones. The same file are shared between 2 components because i need install files at 2 different path on the computer client

Hi @p_asquino ,

 

How i was sure on adding new features to Minor upgrade might not work?

That is rule of windows installer minor upgrade.Thereby there is an option to proceed with using Subfeature as well few settings that i had mentioned in my previous post.

You can validate this in the log:For an example i had added one subfeature(NewFeature3->Component5) as well one new feature(NewFeature2->Component4) in minor upgrade msi.I could see below in log file:

MSI (s) (5C:28) [22:37:24:583]: Feature: NewFeature1; Installed: Local; Request: Reinstall; Action: Reinstall
MSI (s) (5C:28) [22:37:24:583]: Feature: NewFeature2; Installed: Absent; Request: Null; Action: Null
MSI (s) (5C:28) [22:37:24:583]: Feature: NewFeature3; Installed: Absent; Request: Local; Action: Local
MSI (s) (5C:28) [22:37:24:583]: Component: NewComponent1; Installed: Local; Request: Local; Action: Local
MSI (s) (5C:28) [22:37:24:583]: Component: NewComponent2; Installed: Local; Request: Local; Action: Local
MSI (s) (5C:28) [22:37:24:583]: Component: NewComponent4; Installed: Absent; Request: Null; Action: Null
MSI (s) (5C:28) [22:37:24:583]: Component: NewComponent5; Installed: Absent; Request: Local; Action: Local

 

You could see request as null to newly added feature but as Local for subfeature been Created with settings:

Remote Installation—Set this property to Favor Parent.

Required—Set this property to Yes.

Note-SubFeauture has to be created on top of existing feature

 

I had verified with same file been added with different INSTALLDIR in different components(One in existing component another in sub feature's component) ,it is working

 

Thanks,

Jenifer

0 Kudos

Before I try your solution, i find a problem:
I don't know why but the setup install files that aren't linked in the project...
I open the project on installshield and i have the component "AllOtherFiles" and there isn't the file A.
Then i build the setup.exe and i install that on my clean machine.
After i have installed the setup, i find the file A on client pc...
I open the MSI with Windows installer Unpacker and i find a components "_C99627ECA3A0719C8241338FD51B3A7F" with the files "A"...

Can installshield have some cache or temp on build server?
can i send you my project and exe?

 

0 Kudos

Hi @p_asquino ,

"I don't know why but the setup install files that aren't linked in the project..."

It isn't possible,setup can pick files only if those are linked to the features and components.

Yes,please send InstallShield project file(.ism file) and supporting files as zip folder.So that i won't face any build issue.

 

Thanks,

Jenifer

 

0 Kudos

I prefer send you the zip only through direct message or email...

By the way in log build (on installshield software) i read this line:

Adding file 'A.dll' that is a dependency of component 'SERVICE'

Adding file 'B.dll' that is a dependency of component 'SERVICE'

Adding file 'C.dll' that is a dependency of component 'SERVICE'

Adding file 'D.dll' that is a dependency of component 'SERVICE'

But i don't have linked that file in the component service, as you can see in the screenshot...

0 Kudos