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
- :
- Re: Installshield / Visual Studio "primary output" and missing dependencies
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 10, 2014
12:22 PM
Installshield / Visual Studio "primary output" and missing dependencies
Hi there,
I've seen many unanswered questions regarding this on the forums, and wondered if anyone has a resolution.
It appears that if you have an assembly being shared between a couple of "primary output(s)" in a solution, IS won't pick it up or install it to more than one location. It seems like it should be as simple as creating a folder, putting a primary output from a project into that folder in the Project Assistant, and the files should get laid down? Dependencies on other third party assemblies (such as entity frameworks dlls) also seems to suffer from this issue.
I really don't want to have to manually add every file to the installer...isn't that the point of primary output?
Am I doing something wrong, or is this just the way it works?
Thanks,
Chris
I've seen many unanswered questions regarding this on the forums, and wondered if anyone has a resolution.
It appears that if you have an assembly being shared between a couple of "primary output(s)" in a solution, IS won't pick it up or install it to more than one location. It seems like it should be as simple as creating a folder, putting a primary output from a project into that folder in the Project Assistant, and the files should get laid down? Dependencies on other third party assemblies (such as entity frameworks dlls) also seems to suffer from this issue.
I really don't want to have to manually add every file to the installer...isn't that the point of primary output?
Am I doing something wrong, or is this just the way it works?
Thanks,
Chris
(6) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 20, 2015
08:17 AM
Hi Chris,
I am running into the same problem. Did you ever figure this out? What did you do to resolve?
Thanks
I am running into the same problem. Did you ever figure this out? What did you do to resolve?
Thanks
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 20, 2015
02:08 PM
There may be a better solution, but here is what I am doing right now to resolve this:
Visual Studio Solution Explorer
Click on the appropriate InstallShield Project
Project Assistant
Application Files
Drill down to the folder that should contain the missing file(s)
Add Files (add missing files as needed)
I am using VS 2013 and InstallShield 2013 Premier
Visual Studio Solution Explorer
Click on the appropriate InstallShield Project
Project Assistant
Application Files
Drill down to the folder that should contain the missing file(s)
Add Files (add missing files as needed)
I am using VS 2013 and InstallShield 2013 Premier
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 21, 2015
09:47 AM
I am not familiar with the Visual Studio model. However, for duplicate files, I need to select the component that contains the file to duplicate. Expand your component view and select 'Advanced Settings > Other Data'. On the right select DuplicateFile. This takes me to the Direct Editor mode.
Click on the New button and enter the data for the file to duplicate. The key here is that you will select your source file from the appropriate component and then make sure you specify the appropriate destination folder. You have to setup the directory table.
So lets say I have a file, foo.dll, that needs to be installed to [INSTALLDIR] and [BIN]. BIN dir is a directory off of COMMONFILES, C:\Program Files (x86)\\Bin.
1. Configure your destination directory by setting the COMMONFILES_APPDIR directory with a parent directory of COMMONFILES. Directory: COMMONFILES_APPDIR, Directory_Parent: COMMONFILES, DefaultDir:
2. Configure your BIN directory with a parent directory of 'COMMONFILES_APPDIR'. Directory: BIN, Directory_Parent: COMMONFILES_APPDIR, DefaultDir: Bin
Now configure the Duplicate file table
1. Click the new button.
2. Specify a unique file key, such as DupFoo.dll
3. Specify the source component, such as Foo.dll (this is usually the default component unless you are using dynamic file linking. I do not recommend dynamic file linking for duplicate files).
4. Select the appropriate file from the selected component.
5. Specify a destination name. If the file name is longer than 8 characters then you MUST specify a short name for the file. For example Foo12345678.dll would be listed as FOO123~1.DLL|Foo12345678.dll
6. Specify your destination directory. This must be a property only from the directory table as described above.
Voila! Once you have compiled and installed, the file is first installed to the component target directory. After all files are installed then the duplicate file process will copy that file from the component target directory to the destination directory.
Is this painful ... yes.
However, do not take the 'shortcut' trying to copy the same source file to a different component. If you ever do patches to the file I believe that component rules will be broken and you may not get a desired result.
Note that this is a requirement for Windows Installer, MSI, and not for InstallShield.
EDIT: OOPS, I think I might have misunderstood the original question. It goes to show, read 3x and answer once. I tried to delete the post but it fails to delete.
Click on the New button and enter the data for the file to duplicate. The key here is that you will select your source file from the appropriate component and then make sure you specify the appropriate destination folder. You have to setup the directory table.
So lets say I have a file, foo.dll, that needs to be installed to [INSTALLDIR] and [BIN]. BIN dir is a directory off of COMMONFILES, C:\Program Files (x86)\
1. Configure your destination directory by setting the COMMONFILES_APPDIR directory with a parent directory of COMMONFILES. Directory: COMMONFILES_APPDIR, Directory_Parent: COMMONFILES, DefaultDir:
2. Configure your BIN directory with a parent directory of 'COMMONFILES_APPDIR'. Directory: BIN, Directory_Parent: COMMONFILES_APPDIR, DefaultDir: Bin
Now configure the Duplicate file table
1. Click the new button.
2. Specify a unique file key, such as DupFoo.dll
3. Specify the source component, such as Foo.dll (this is usually the default component unless you are using dynamic file linking. I do not recommend dynamic file linking for duplicate files).
4. Select the appropriate file from the selected component.
5. Specify a destination name. If the file name is longer than 8 characters then you MUST specify a short name for the file. For example Foo12345678.dll would be listed as FOO123~1.DLL|Foo12345678.dll
6. Specify your destination directory. This must be a property only from the directory table as described above.
Voila! Once you have compiled and installed, the file is first installed to the component target directory. After all files are installed then the duplicate file process will copy that file from the component target directory to the destination directory.
Is this painful ... yes.
However, do not take the 'shortcut' trying to copy the same source file to a different component. If you ever do patches to the file I believe that component rules will be broken and you may not get a desired result.
Note that this is a requirement for Windows Installer, MSI, and not for InstallShield.
EDIT: OOPS, I think I might have misunderstood the original question. It goes to show, read 3x and answer once. I tried to delete the post but it fails to delete.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Dec 09, 2015
02:54 PM
I have the same issue as well. As far as "Note that this is a requirement for Windows Installer, MSI, and not for InstallShield."
I really don't understand how this is an MSI issue and not install shield. Why can't Install Shield just create the duplicate table entry's for me if this is an MSI requirement?
Link back to my post in 2015
https://community.flexerasoftware.com/showthread.php?219984-Two-Project-outputs-fails-to-deploy-detected-assemblies
I really don't understand how this is an MSI issue and not install shield. Why can't Install Shield just create the duplicate table entry's for me if this is an MSI requirement?
Link back to my post in 2015
https://community.flexerasoftware.com/showthread.php?219984-Two-Project-outputs-fails-to-deploy-detected-assemblies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 08, 2016
07:58 AM
I am having same problem in VS 2015. I am going to try making 3 installers and see if it works and having one main one launch the others. Still as far as I am concerned this is a bug. For asp.net web app deployments dlls do not get shared.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 28, 2016
10:02 AM
I'm having the same problem with VS2015. Is there any resolution for this?