Wix project references on multiple destination locations how?
I'm struggling with wix setup for one project I'm working on. I have decided to give a wix try and it is not going well so far. I have read probably all tutorials and searched net without success.
Here is my situation: One setup should install in program files app folder
1.) Windows forms application 2.) Web application that is used by windows application 3.) Shared lib1 used by web and win application 4.) Shared lib2 used by web and win application ... etcI'm using project references to collect project output with heat. I have given each project directory id so I can later use this as reference in real install location. It looks like I can't have same project output on more than one location I can't have same project referenced more than once also.
How can I make installer that is using project outputs on more than one destination location. Here is example from my product.wxs
<!-- Define Directory Structure -->
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- ProgramFiles -->
<Directory Id="ProgramFilesFolder">
<Directory Id="dirManufacturer" Name="TEST_[Manufacturer]">
<Directory Id="INSTALLLOCATION" Name="TEST_[ProductName]">
<!-- Filled With Referenced project -->
<Directory Id="dirControl" Name="Control">
<Directory Id="dirControlOutput" />
<Directory Id="dirSearchAndIndexOutput" />
<Directory Id="dirControlLib" />
<Directory Id="dirControlAndWebLib" />
<Directory Id="dirLuceneAnalyzersOutput" />
</Directory>
<!-- Filled With Referenced project -->
<Directory Id="dirWeb" Name="Web">
<Directory Id="dirWebOutput" />
<Directory Id="dirWebBin" Name="bin">
<Directory Id="dirUrlRewriterOutput" />
<Directory Id="dirSearchAndIndexOutput" />
<!-- TODO: Fix This
<Directory Id="dirSearchAndIndexOutput" />
开发者_JAVA百科 <Directory Id="dirControlAndWebLib" />
<Directory Id="dirLuceneAnalyzersOutput" />
-->
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
<!-- StartMenu -->
<Directory Id="ProgramMenuFolder">
<Directory Id="dirProgramsMenu" Name="TEST_[ProductName]">
</Directory>
</Directory>
<!-- CommonApplicationData -->
</Directory>
I'm really trying to understand how all of this works but everything I have found points out that this scenario is either impossible or requires hard manual referencing files directly.
My general idea is to have Visual Studio solution that is automatically builds setup for each source change.
Thank you for help and sudgestions!
Goran
From 3. and 4. in the description I gather you need the same file installed on different places, right?
You could do it like in the example below - same file (path\to\lib1.dll on the build machine) will be installed twice on the target machine, as App\lib1.dll and as Web\lib1.dll. You just need 2 different components that reference the same source file.
<Directory Id="AppDir" Name="App">
<Component Id='lib1_app.dll' Guid='*'>
<File Id='lib1_app' Name='lib1.dll' Source='path\to\lib1.dll' KeyPath='yes'>
</Component>
</Directory>
<Directory Id="WebDir" Name="Web">
<Component Id='lib1_web.dll' Guid='*'>
<File Id='lib1_web' Name='lib1.dll' Source='path\to\lib1.dll' KeyPath='yes'>
</Component>
</Directory>
精彩评论