How keypath is set in case of dynamic file linking.
does keypath set by default at build time?
If it set by default,does it change everytime when we run the build.
I am using Installshield 2012 spring.

Answer Summary:
0 Comments   [ + ] Show Comments


Please log in to comment



I would avoid setting a dynamic file as key path if at all possible.

The help file MSI.CHM (google for it) has a lot of information on the file tables, but in a nutshell, when you change a file, information about its size and version need to be updated in the file table. If the file has no internal version information, then you need to update the MSIFileHash table. For reliability, you need to delete the old file and add the new file so that Installshield can do all the hard work for you.

Answered 08/30/2014 by: EdT
Red Belt

  • i am not setting keypath for any file while using dynamic file linking.
    But installshield creating it by default at build time...
    I have checked it by deleting some files and repaired it.
    • Installshield is following "rules" to implement Microsoft best practices for MSI creation. If you are unable to change the rules on compilation, then I would suggest a post-compile edit to remove the key path setting for the dynamic files.
      • how to post-compile edit ??
        after creating build, i have output as single exe
        how to change that???
    • This content is currently hidden from public view.
      Reason: Member has been banned from the site
      For more information, visit our FAQ's.
Please log in to comment
Unfortunately, in the absence of full information, I made an assumption that you were compiling to MSI format rather than EXE. With an MSI, editing with a tool like ORCA is trivial, but with an EXE, it all depends on whether Installshield will allow an MSI to be compiled to EXE without modifying the MSI. Wise could do this but I've never needed to look at Installshield in respect of its "compile to EXE" capabilities and I don't have a copy of the 2012 release to have a direct look for you. Perhaps someone else in this forum could advise on this aspect.
Answered 08/31/2014 by: EdT
Red Belt

Please log in to comment

If you are capturing an install, I would not use dynamic file linking. This sounds like you have done a capture and now are trying to add a file through the ISM.
If you are working with an inhouse written app, that you will build often, then create an ISM, set key paths appropriately (look at the MSI.CHM) single DLL, EXE etc as a key path.

Dynamic file linking has NOTHING to do with Keypaths...
It allows you to make a link to a file, or folder, and when you build the MSI, it will add the latest file, or files, if you linked it to a folder with multiple files, so you don't have to talk to developers (or any body else) who might change those files that you need in your MSI.

If you are building your release and you are getting only an EXE, first of all, are you running a fully licensed version of InstallShield 2012 Spring???

If you are, click on the symbol  that looks like a CD and follow the wizard, or go to Build>release wizard (if not fully licensed, you wont get the following options)

Welcome, next,
    Product config, default it will make a new product, Next (you can overwrite an existing config)
        Specify a release, default will make a new release, Next (you can overwrite an existing release)
            Filtering settings, you probably aren't using these, Next (they are used for multiple feature MSI's with diff build options)
                Setup Language, choose your default (should be set in the ISM), Next
                    Media type, from the drop down, choose CD, Next (bear with me)
    Disk spanning, automatic or custom, choose automatic, Next
        Release configuration, compress all files, leave files uncompressed, custom, Choose 'Compress all files', Next    
            Setup launcher, REMOVE the tick from create a setup.exe, Next

you should now be able to click Next,2 times, then the finish button.

This will build a single external CAB file called, don't be fooled by the miss leading reference to a CD, if your app is over 600 MB it just builds one single cab file.

hope that helps.

Answered 09/01/2014 by: Badger
Red Belt

  • Thanks for the reply...!!!!
    we are using dynamic file linking as there will be no need to ask anything from developers or anyone as you mentioned....
    but i did not find the option to make any file as keypath while using dynamic file linking in installshield.
    But at build time,its linking to original files and also setting keypath automatically to some files.
    I need to make keypath to specific files but not able to do it....
    and yes i have full version of installshield and creating single exe is mandatory for my project.So i have other option for CD or DVD but not using it.
    • why on earth are you using setup.exe??? anyway...
      the files will belong to components, go into the component view, choose the file you want to be the key path, right click, set keypath. BUT ensure that file will always exist, if you have multiple files (a folder) and it pulls all the files in, if the one you want as key path is missing you will have other issues.
      Out of interest, when you say 'seting keypath automatically to some..' what sort of files is it using as a key path?
      • sometimes it used some xml file and sometime any properties file...
        anyway thanks for the answer.....!!!!
      • if you look at the component view of the ISM it is probably using the first file alphabetically in the folder, which is why some are xml
Please log in to comment
Answer this question or Comment on this question for clarity