Я совершенно новичок в WiX, поэтому, конечно, моя первая задача с WiX — это перенести существующую большую программу установки с WiX 2 на WiX 3. У меня было несколько морщин, большинство из которых были отсортированы, но я был бы признателен для некоторых предложений со следующими легкими ошибками. Поскольку я новичок в WiX, я хочу перечислить весь мой процесс:
Чтобы создать библиотеку WiX:
candle.exe *.wxs
lit.exe -out "wixui_company.wixlib" *.wixobj
Чтобы сгенерировать основной MSI:
candle.exe main.wxs -o main.wixobj
light.exe main.wixobj -o Main_Installer.msi wixui_company.wixlib -ext WixUIExtension
Эта последняя команда выдает десятки и десятки ошибок, но все они имеют следующий вид
error LGHT0091 : Duplicate symbol 'Dialog:LicenseAgreementDlg' found.
У меня есть grep и re-greped, но единственные ссылки следующие:
В LicenseAgreementDlg.wxs:
<Fragment>
<UI>
<Dialog Id="LicenseAgreementDlg" ...
И в wixui_company.wxs
<Fragment>
<UI Id="WixUI">
<DialogRef Id="LicenseAgreementDlg" />
...
<Property Id="WixUI_WelcomeDlg_Next" Value="LicenseAgreementDlg" />
Это строка DialogRef, которая дает ошибку.
На них обоих ссылаются из wixui_company.wixlib в main.wxs:
<UIRef Id="WixUI" />
FWIW, если я изменю либо ссылку на WixUI, либо ссылку на LicenseAgreementDlg, повторяющиеся ошибки исчезнут, но вместо этого я получу символ, не найденный ошибками ссылки. Я перенес исходные файлы wxs с помощью WixCop, но под WiX 2 все они работали как есть. Я предполагаю, что это связано с переходом WiXUI в его собственное пространство имен в WiX 3, но, честно говоря, я понятия не имею, что даже попробовать.
Есть идеи, где что-то пошло не так?
Спасибо,
Адам