WiX - собирать не проектные сборки в выходных данных настройки - PullRequest
8 голосов
/ 09 февраля 2011

Я использую WiX 3.5 в VS 2010, и я добавил все сборки проекта в качестве ссылок в проекте установки (.wixproj) и установил для свойства Harvest значение True, чтобы двоичные файлы, контент и спутники включены в MSI-файл.

Однако как мне добавить сторонние сборки (.dll) к выводу .msi? Нужно ли явно добавлять каждый файл в файл Product.wxs, или есть более хороший способ? В идеале я хотел бы добавить их в качестве ссылок на файлы в проекте установки, но, похоже, это не вариант?

Ответы [ 2 ]

7 голосов
/ 10 февраля 2011

Да, вам нужно будет добавить их вручную в некоторый файл wxs ИЛИ вы можете использовать шаг предварительной сборки, который использует heat , чтобы собрать этот файл для вас (при условии, что все эти файлы находятся в отдельном каталоге).

Heat является частью Wix и может собирать весь каталог, используя переключатель dir .В зависимости от аргументов командной строки, он создаст отдельный файл wxs, содержащий одну ComponentGroup.Просто обратитесь к этой ComponentGroup из product.wxs.

Например, как в настоящее время я использую тепло для сбора своего каталога релизов:

heat dir "../../bin/release"-gg -cg CG.ApplicationBinaries -dr INSTALLDIR -scom -sfrag -sreg -srd -var var.BuildOutputDir -o ApplicationBinaries.wxs

В результате будет создан файл ApplicationBinaries.wxs:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <DirectoryRef Id="INSTALLDIR">
            <Component Id="cmp53F90D1335DD67504EC2B9E1E8620DD3" Guid="{CA2DF1B5-7B20-4596-84A4-925B4F9BA6EC}">
                <File Id="filC65F9CB88694FCA79FCB3CADB9481921" KeyPath="yes" Source="$(var.BuildOutputDir)\AsyncTCPsocket.dll" />
            </Component>
            ....
        </DirectoryRef>
    </Fragment>
    <Fragment>
        <ComponentGroup Id="CG.ApplicationBinaries">
            <ComponentRef Id="cmp53F90D1335DD67504EC2B9E1E8620DD3" />
            ...
        </ComponentGroup>
    </Fragment>
</Wix>
4 голосов
/ 11 ноября 2011

В настоящее время есть ошибка в Heat , которая используется проектом установщика WiX, что означает, что ссылочные сборки проекта не собираются автоматически. Вам, вероятно, придется подождать версии 4, прежде чем она будет адресована.

А пока ответ @Elmar de Koning, вероятно, будет лучшим на данный момент.

...