3
votes

My problem is with one simple application project and a class library project with some GAC references, that I add into the Files section (Primary output on the app project only). The problem is that the installer REALLY wants to add all the non-Net GAC'ed files from the project into the installer even though they are explicitly set to Copy Local false (false in the project file).

How do I tell InstallShield to only take the dependency files that has Copy Local true and not everything in the list?

1
Copy Local = False is exactly the wrong setting. Since the build directory won't have a copy anymore, the program can only run if the DLL is stored in the GAC. It needs to be True. And you of course have to deploy the copy you now get since it won't be in the GAC on the target machine. Do in general strongly avoid ever putting anything in the GAC on your dev machine.Hans Passant
The file is allready in the GAC on the target server. It is how it is designed to use that assembly. So I want to have a clean setup that does not include a copy (newer/same/older) of that assembly. My preferred way is to keep it along with the project. But InstallShield do seem to ignore any Copy Local settings you set on a project. It takes it regardless. As I have answered below you have to exclude it in the installer project.Wolf5
Strange. "Clean setup" are not the words that jump to mind :) Do take the ability of the GAC to store multiple versions of a DLL as an advantage.Hans Passant
That is how it when you have to follow the rules of previous architects... :P You should see the output folder of some of the setup projects I have come over. What a clutter of way to many unused DLLs and even normal .Net framework assemblies. So I keep it minimalistic.Wolf5

1 Answers

4
votes

And I found the answer here: InstallShield LE (with Visual Studio 2012) completely fails to detect dependencies

Using the properties on the "Primary output" element under Files.

enter image description here

I just unchecked the GAC files from the that list.