#wix
#wix
Вопрос:
У меня проблемы с настройкой wix для одного проекта, над которым я работаю. Я решил попробовать wix, и пока все идет не очень хорошо. Я прочитал, вероятно, все учебные пособия и безуспешно искал в сети.
Вот моя ситуация: одна программа установки должна быть установлена в папке program files app
1.) Приложение Windows forms
2.) Веб-приложение, которое используется приложением Windows
3.) Общий lib1, используемый веб-приложениями и win-приложениями
4.) Общий lib2, используемый веб-приложениями и win-приложениями
… и т. Д
Я использую ссылки на проект для сбора выходных данных проекта с помощью heat. Я присвоил каждому проекту идентификатор каталога, чтобы позже я мог использовать это в качестве ссылки в реальном месте установки. Похоже, что я не могу иметь один и тот же результат проекта в более чем одном месте, я также не могу ссылаться на один и тот же проект более одного раза.
Как я могу создать установщик, который использует выходные данные проекта в нескольких местах назначения. Вот пример из моего продукта.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" />
<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>
Я действительно пытаюсь понять, как все это работает, но все, что я нашел, указывает на то, что этот сценарий либо невозможен, либо требует прямых ссылок на файлы вручную.
Моя общая идея заключается в том, чтобы иметь решение Visual Studio, которое автоматически создает настройки для каждого изменения исходного кода.
Спасибо за помощь и предложения!
Горан
Ответ №1:
Из 3. и 4. в описании, как я понимаю, вам нужен один и тот же файл, установленный в разных местах, верно?
Вы могли бы сделать это, как в примере ниже — тот же файл (путь к lib1.dll на компьютере сборки) будет дважды установлена на целевой машине, поскольку Applib1.dll и как Weblib1.dll . Вам просто нужны 2 разных компонента, которые ссылаются на один и тот же исходный файл.
<Directory Id="AppDir" Name="App">
<Component Id='lib1_app.dll' Guid='*'>
<File Id='lib1_app' Name='lib1.dll' Source='pathtolib1.dll' KeyPath='yes'>
</Component>
</Directory>
<Directory Id="WebDir" Name="Web">
<Component Id='lib1_web.dll' Guid='*'>
<File Id='lib1_web' Name='lib1.dll' Source='pathtolib1.dll' KeyPath='yes'>
</Component>
</Directory>