I have a .NET solution with multiple projects. Each project has it's own output folder (project1 to projectN). All the projects has common files which are coped by msbuild to each folder. (And this is normal). The common files has exactly the same name, modification time and content. The common files are about 90% of the total size of each project.
I'd like to create an installer with Inno Setup / Inno Script Studio Each project has it's own component. (Can be selected during the install)
My iss file look like:
Source: "{#BuildOutputDirectory}_project1\*"; Excludes: "*.pdb,*.xml"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Components: project1
Source: "{#BuildOutputDirectory}_project2\*"; Excludes: "*.pdb,*.xml"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Components: project2
...
Source: "{#BuildOutputDirectory}_projectN\*"; Excludes: "*.pdb,*.xml"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Components: projectN
My problem is that the duplicate files are included in the installer multiple times. The Total size of the projects folder is 517MB, the size of the uniqe files is 78MB the installer size 98MB (compression lzma2 solid). The expected installer size should be about 21MB (I've compressed the unique files with 7-Zip and the result was this)
And the install creation time is quite long, because it compresses the duplicate files multiple times. But this is not really a problem.
What should I do to filter the duplicate files? (I have one idea, to generate the iss file with a simple application which already filters them, but it is only a workaround)