x187lockdown
Level 3

Upgrade issues with SdFeatureTree: conflicts with previous definition

Hi,

Upgrading a fairly large InstallShield script project from 2008 to 2011. In this project is a customised SdFeatureTree.rul.

The conversion went fine apart from I cannot solve the following 2 errors:

InstallShield Script Compiler
Version 17.0.0.714
Copyright 1997-2010 Flexera Software, Inc. and/or InstallShield Co. Inc. All Rights Reserved.

Compiling...
Setup.Rul
Linking...
iswi.obl(ComponentConv.obs) : error L8407: 'ISRT._GetDiskSpaceExEx' : conflicts with previous definition
iswi.obl(ComponentConv.obs) : error L8407: 'ISRT._ComponentGetTotalCostEx' : conflicts with previous definition
Setup.inx - 2 error(s), 0 warning(s)

Ifx.h is defined at the top of setup.rul and the SdFeatureTree.rul does not contain references to any other headers. Without completely re-writing the way the customised SdFeatureTree works, does anyone know how to overcome this issue? I am baffled as to where these previous definitions come from?... and if it is previously defined then why can I not just comment out the prototypes at the top of SdFeatureTree.rul 😞 😞

A search on Google and the forums reveals 2 other people experienced the same issue, both not getting a response.

Any help would be greatly appreciated! Thanks
Labels (1)
0 Kudos
8 Replies
MSIYER
Level 8

I do not have a sure shot solution but try the following:
Replace all references to GetDiskSpace or GetDiskSpaceEx with GetDiskInfo in your code.
Replace all references to ComponentGetTotalCost with FeatureAddItem in your code.

Please update me regarding the same.
0 Kudos
MSIYER
Level 8

Also, clean up setup.inx and setup.map and all such compiler generated files before you compile you script with the changes mentioned below.

Hope this helps.
0 Kudos
x187lockdown
Level 3

Thanks for the response. I little more digging last night and I came to a similiar conclusion as you, replace the ISRT._GetDiskSpaceExEx with GetDiskInfo and ISRT._ComponentGetTotalCostEx with FeatureGetCostEx.

Just in the process of getting this all working so will update this thread when I do.
0 Kudos
phill_mn
Level 7

I had this same problem when upgrading my projects from IS2010 to IS2011. In comparing a 'new InstallScript project' from IS2011 I observed that the Build/Settings dialog has a literal defined "_ISSCRIPT_NEW_DLG_DEFS". After adding this to my 'upgraded' project, rather than getting L8407 errors on the two functions mentioned in this thread, I then get Compile errors if 'identifier already defined' C8014 on these two function and several other places in the customized dialog scripts. For each C8014 error I commented out the line that it pointed to in code. Then I get a clean build under IS2011 (and the setup project seems to run on a test system correctly, although I have more testing to do in that area).

I also created SIOC-000109915 under my Gold Maintenance contract for this issue, prior to finding this solution, but Flexera has not responded to that request for assistance yet. Since I could not find any documentation of this issue in the 'upgrading from InstallShield 2010.." or "Whats new in..." documents I would like ot know from Flexera if there are any other ramifications from making this change that I should be aware of.
0 Kudos
phill_mn
Level 7

To clarify, I misstated the name of the literal in the prior post, but it is correct in the title to that post. _ISSCRIPT_NEW_STYLE_DLG_DEFS
0 Kudos
x187lockdown
Level 3

Thanks Phill for the response. I have already made the changes now but have yet to be able to build the project and test them. Its one of those massive projects that started life in InstallShield 6.2, upgraded to 2008 and now I have the pleasure of taking it to 2011.

What I think I will do is use your solution as this then makes for a clean upgrade. The fun starts when I need to add a 64-bit configuration to this behemoth of a project! :eek: :eek:

I doubt this is the last your be hearing from me.... 😉
0 Kudos
x187lockdown
Level 3

This solution did not work for me. I added the pre-processor define as you suggested (and corrected) but I still get the same errors.

Was there any other steps you did? Clear any caches or anything? :confused: :confused:
0 Kudos
x187lockdown
Level 3

Just to close the thread off, I couldn't get Phill's solution to work for me personally although that may be just me! MSIYER's solution however did work, so replacing the functions with the ones he said a few posts back has kept the original functionality intact. 😄

Thanks for the responses.
0 Kudos