mgfeller
Level 3

Misplaced DLL's

Hi all,

I’m trying to deploy an application with follow structure:
.\FolderA\Primary output A
.\FolderB\Primary output B
.\Primary output App
App require A & B
App & A & B require a common.dll

Installshield installs this structure as follow:
.\FolderA\a.dll
.\FolderA\common.dll
.\FolderB\b.dll
.\app.exe
=> Common.dll is stored next to a.dll and not next to the app.exe. In this case the app.exe miss the common.dll and won't start.

I tried to remove the dependency with “scan at build” between a.dll and common.dll. But this removes the dependency between app.exe and common.dll too.
Has someone an idea how I can define that the common.dll is placed next to the app.exe and not into a subfolder?

Thanks,
Michael
0 Kudos
7 Replies
Lenwin
Level 10

Could you let us know if the file Common.dll is listed in the list of files added to the InstallShield project under files view.
0 Kudos
mgfeller
Level 3

No.
The Common.dll is only listed in the "scan on build"-view.
0 Kudos
Lenwin
Level 10

Could you kindly share a screenshot of the location where the Common.dll file is listed.
0 Kudos
mgfeller
Level 3

Link to the picture:
https://skydrive.live.com/redir?resid=E79E1FBA725F9094!819&authkey=!AEgc4x4JTDeFFZ4

I simplified my problem in the first post.
In the picture you can see the "ScrumTable.Common.dll".

Both “Primary output from the application” and "Primary output from ScrumTable.DL.Data.Excel" needs this common dll thus contain a compilation time reference to "ScrumTable.Common.dll".

As a result of the installer output, the common library is stored only in the folder next to the "Primary output from ScrumTable.DL.Data.Excel" and not as expected in the root folder where the “Primary output from the application” is placed.

When I deactivate the “ScrumTable.Common.Dll” dependency in the "Primary output from ScrumTable.DL.Data.Excel", the common dll gets removed from all other outputs too.
0 Kudos
Lenwin
Level 10

This is a known limitation with using Primary Outputs. InstallShield will set the dependency file in the same location as the first file it processes during build that is dependent on the dependency file.

To resolve the problem you would have to statically define the dependency file, common.dll, giving it the desired destination location. You may still use Primary Output and Dependency scanning. Dependency Scanning will just skip adding common.dll, as it will detect the file has already been added to the project.
0 Kudos
mgfeller
Level 3

Thanks for your response.
Is there a way to change the build order?
0 Kudos
Lenwin
Level 10

Could you provide more information regarding your requirement of changing the Build Order.

Right click on Solution -> Project Dependencies ( has the option of changing the build order).
0 Kudos