首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Wix 2迁移到Wix 3:重复符号

从Wix 2迁移到Wix 3:重复符号
EN

Stack Overflow用户
提问于 2012-10-17 09:05:44
回答 1查看 1.1K关注 0票数 2

我对WiX完全陌生,所以我使用WiX的第一个任务当然是将现有的大型安装程序从WiX 2迁移到WiX 3。我遇到了一些问题,其中大部分已经解决了,但我还是希望能给出一些建议,下面是一些轻微的错误。因为我是WiX的新手,所以我想列出我的整个过程:

要创建WiX库:

代码语言:javascript
复制
candle.exe *.wxs  
lit.exe -out "wixui_company.wixlib" *.wixobj

要生成主MSI:

代码语言:javascript
复制
candle.exe main.wxs -o main.wixobj  
light.exe main.wixobj -o Main_Installer.msi wixui_company.wixlib -ext WixUIExtension

最后一个命令给出了几十个错误,但它们都采用以下形式

代码语言:javascript
复制
error LGHT0091 : Duplicate symbol 'Dialog:LicenseAgreementDlg' found.

我有grep和re-greped,但仅有以下引用:

在LicenseAgreementDlg.wxs中:

代码语言:javascript
复制
<Fragment>  
    <UI>  
        <Dialog Id="LicenseAgreementDlg" ...

在wixui_company.wxs中

代码语言:javascript
复制
<Fragment>  
    <UI Id="WixUI">  
          <DialogRef Id="LicenseAgreementDlg" />  
...
          <Property Id="WixUI_WelcomeDlg_Next" Value="LicenseAgreementDlg" />

是DialogRef行给出了错误。

这两者都是从main.wxs中的wixui_company.wixlib引用的:

代码语言:javascript
复制
<UIRef Id="WixUI" />

如果我将ref改为WixUI或将ref改为LicenseAgreementDlg,重复的错误就会消失,但我得到的却是symbol not found链接错误。我使用WixCop迁移了原始的wxs文件,但在WiX 2下,它们都按原样工作。我猜这与在WiX 3中将WiXUI放在自己的命名空间中有关,但坦率地说,我甚至不知道该怎么做。

关于哪里出了大问题,你有什么想法吗?

谢谢,

亚当

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 14:22:10

使用light.exe链接到的"LicenseAgreementDlg" is the name of a dialog in the WixUIExtension。MSI数据库中的每个对话框都必须有一个惟一的标识符,因此您很可能已经为某个标准的WiX UI ("WixUI_FeatureTree“、"WixUI_Mondo”等)创建了一个<UIRef>元素,其中包括WiX的LicenseAgreeementDlg对话框。然后引用您自己的LicenseAgreementDlg,所以现在有两个同名的对话框。

在这种情况下,您需要重命名您自己的LicenseAgreementDlg,或者将其完全删除并使用内置的and。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12925708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档