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: Only one primary output gets shared dll
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 18, 2014
01:46 AM
Only one primary output gets shared dll
Hello,
I have a problem with Installshiel 2013,
My setup project install five programs in differents folder
-> Folder 1
-> Folder 2
-> Folder 3
-> Folder 4
-> Folder 5
If programs in folder 1, 2 and 3 reference the same dll (test.dll), the file test.dll will only be deploy in Folder 1 (not folder 2 nor foplder 3).
So when I try to run the program in Folder 2, it tell me that the file test.dll is missing...
How can I solved that ? How can we force dll to be copied to each folders ?
It's a critical issue for us
Thanks in advance
I have a problem with Installshiel 2013,
My setup project install five programs in differents folder
-> Folder 1
-> Folder 2
-> Folder 3
-> Folder 4
-> Folder 5
If programs in folder 1, 2 and 3 reference the same dll (test.dll), the file test.dll will only be deploy in Folder 1 (not folder 2 nor foplder 3).
So when I try to run the program in Folder 2, it tell me that the file test.dll is missing...
How can I solved that ? How can we force dll to be copied to each folders ?
It's a critical issue for us
Thanks in advance
(3) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 18, 2014
06:24 AM
First of all, hopefully this is a basic MSI installation. If so you should be able to make use of the duplicate file table.
Now if I understand your situation correctly.
file test.dll should always be installed to folder1. This should be its primary destination folder.
It sounds as if files in folder2 and folder3 are optional, so duplicating the file to these directories will also be optional.
So lets say you have a file.exe in folder2 that is being copied in. I believe it is possible to setup a duplicate file action for test.dll from folder1 to folder2 and associate it with the component for file.exe that goes in folder2.
http://msdn.microsoft.com/en-us/library/aa368335%28v=vs.85%29.aspx
The same principle would apply to folder3. Create another duplicate file record.
Now, one might ask since you have a DLL file that is shared why does it not have a load library so it can be registered. I can only think that this is possibly a 3rd party DLL and the company has no control over its development, or possibly this is a legacy DLL for your company and the company does not want to touch it. In any case, I think the above will work, providing you are using a MSI project. If you are using InstallScript then you have to insert some type of copy file mechanism after the files have copied.
Now if I understand your situation correctly.
file test.dll should always be installed to folder1. This should be its primary destination folder.
It sounds as if files in folder2 and folder3 are optional, so duplicating the file to these directories will also be optional.
So lets say you have a file.exe in folder2 that is being copied in. I believe it is possible to setup a duplicate file action for test.dll from folder1 to folder2 and associate it with the component for file.exe that goes in folder2.
http://msdn.microsoft.com/en-us/library/aa368335%28v=vs.85%29.aspx
The same principle would apply to folder3. Create another duplicate file record.
Now, one might ask since you have a DLL file that is shared why does it not have a load library so it can be registered. I can only think that this is possibly a 3rd party DLL and the company has no control over its development, or possibly this is a legacy DLL for your company and the company does not want to touch it. In any case, I think the above will work, providing you are using a MSI project. If you are using InstallScript then you have to insert some type of copy file mechanism after the files have copied.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 15, 2014
02:28 AM
Sorry for my late answer.
Your solution work only if all the output are desktop applications.
In my case, I have three vsto Word add in (visual studio tools for office) and two desktop applications.
Desktop1 - Desktop2 - Vsto1 - Vsto2 - Vsto3
These five projects reference a dll (Core.dll)
I had a primary output for earch project, so we have :
[INSTALLDIR]\Desktop1\[Output Desktop1]
[INSTALLDIR]\Desktop2\[Output Desktop2]
[INSTALLDIR]\Vsto1\[Output Vsto1]
[INSTALLDIR]\Vsto2\[Output Vsto2]
[INSTALLDIR]\Vsto3\[Output Vsto3]
When I run the installer,
Core.dll is only in [INSTALLDIR]\Desktop1\Core.dll
For Desktop2, I can manually add the dll with "Add files", it's not a problem.
But I cannot do that for the VSTO(s) because if I do that when I lauch the vsto add in, it tell me that the manifest is incorrect
For information, if I had only one vsto output, everything works well.
This issue begins to be critical for us.
Thansk in advance for your answer.
Geotinc
Your solution work only if all the output are desktop applications.
In my case, I have three vsto Word add in (visual studio tools for office) and two desktop applications.
Desktop1 - Desktop2 - Vsto1 - Vsto2 - Vsto3
These five projects reference a dll (Core.dll)
I had a primary output for earch project, so we have :
[INSTALLDIR]\Desktop1\[Output Desktop1]
[INSTALLDIR]\Desktop2\[Output Desktop2]
[INSTALLDIR]\Vsto1\[Output Vsto1]
[INSTALLDIR]\Vsto2\[Output Vsto2]
[INSTALLDIR]\Vsto3\[Output Vsto3]
When I run the installer,
Core.dll is only in [INSTALLDIR]\Desktop1\Core.dll
For Desktop2, I can manually add the dll with "Add files", it's not a problem.
But I cannot do that for the VSTO(s) because if I do that when I lauch the vsto add in, it tell me that the manifest is incorrect
For information, if I had only one vsto output, everything works well.
This issue begins to be critical for us.
Thansk in advance for your answer.
Geotinc