Ссылки на проекты Wix в нескольких местах назначения, как? - PullRequest
2 голосов
/ 10 мая 2011

Я борюсь с настройкой wix для одного проекта, над которым я работаю.Я решил попробовать wix, и пока не очень хорошо.Я прочитал, вероятно, все учебные пособия и безуспешно искал в сети.

Вот моя ситуация: одна установка должна быть установлена ​​в папке приложения с программными файлами
1.) Приложение Windows формы
2.) Веб-приложение, котороеиспользуется приложением windows
3.) Общий lib1 используется приложением web и win
4.) Общий lib2 используется приложением web и win
... и т. д.

Я используюПроектные ссылки для сбора результатов проекта с теплом.Я дал каждый идентификатор каталога проекта, чтобы потом использовать его в качестве ссылки в реальном месте установки.Похоже, у меня не может быть одного и того же выходного проекта в более чем одном месте. У меня не может быть одного и того же проекта, на который ссылаются также более одного раза.

Как я могу сделать установщик, который использует выходные данные проекта более чем в одном местеместо нахождения.Вот пример из моего 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" />
                            <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 голосов
/ 10 мая 2011

Из 3. и 4. В описании, которое я собираю, вам нужен один и тот же файл, установленный в разных местах, верно?

Вы можете сделать это, как в примере ниже - тот же файл (путь \ к \ lib1.dll на сборочном компьютере) будет дважды установлен на целевой машине, как App \ lib1.dll и как Web \ lib1.dll.Вам просто нужно 2 разных компонента, которые ссылаются на один и тот же исходный файл.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...