私は 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-grepしましたが、唯一の参照は次のとおりです。
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 行です。
これらは両方とも、main.wxs の wixui_company.wixlib から参照されます。
<UIRef Id="WixUI" />
FWIW、参照を WixUI に変更するか、参照を LicenseAgreementDlg に変更すると、重複エラーはなくなりますが、代わりにシンボルが見つからないというリンクエラーが発生します。WixCop を使用して元の wxs ファイルを移行しましたが、WiX 2 ではすべてそのまま機能しました。これは、WiX 3 で WiXUI を独自の名前空間に配置する動きに関係していると推測していますが、率直に言って、何を試したらよいかわかりません。
物事がひどくうまくいかなかった場所についてのアイデアはありますか?
ありがとう、
アダム