从WIX制作MSI时出错LGHT0094:未解析的对符号

时间:2017-07-19 06:23:51

标签: wix windows-installer installer heat

我们的产品使用visual studio 2008(.NET CLR版本v2.0.50727)进行构建,并使用wix工具集3.0.5210为我们的产品创建安装程序。我最近升级到visual studio 2015(.NET CLR版本) v4.0.30319)用于构建我们的产品。在构建之后,我使用相同的WixToolset(3.0.5210)来创建安装程序,但是我看到从light.exe抛出的以下错误

  

MakeMSIFromWIX Install \ Product \ NTX86 \ Product \ release \ Product \ Product.msi T:\ Build \ Install \ Wix \ NTX86 \ Product \ bin_EnvironmentWizard.wxs(6):error LGHT0130:主键'reg76DDE9DE58652D7858F9E6690F309CC8'重复在表'注册表'中。请删除其中一个条目或   重命名主键的一部分以避免冲突。

我发现此信息“如果密钥有默认值,则会发生冲突。删除默认值可解决错误”。据说这可能是加热工具中的一个错误。 链接:https://sourceforge.net/p/wix/bugs/747/

所以我升级了wixtoolset并尝试创建安装程序,但我看到了奇怪的链接错误。

MakeMSIFromWIX Install\Product\NTX86\Product\release\Product\Product.msi
E:\Build\Install\Wix\NTX86\Product\group_Client.wxs(12) : error LGHT0094 : Unresolved reference to symbol 'Component:Comp.SystemFolder.AddFlow4.ocx' in section 'Fragment:Frag.Client'.
E:\Build\Install\Wix\NTX86\Product\group_Client.wxs(13) : error LGHT0094 : Unresolved reference to symbol 'Component:Comp.SystemFolder.HFlow.ocx' in section 'Fragment:Frag.Client'.
E:\Build\Install\Wix\NTX86\Product\group_Client.wxs(19) : error LGHT0094 : Unresolved reference to symbol 'Component:Comp.SystemFolder.msstkprp.dll' in section 'Fragment:Frag.Client'.
E:\Build\Install\Wix\NTX86\Product\group_Client.wxs(148) : error LGHT0094 : Unresolved reference to symbol 'Component:Comp.Bin.DXFC_net.dll' in section 'Fragment:Frag.Client'.
E:\Build\Install\Wix\NTX86\Product\group_Client.wxs(150) : error LGHT0094 : Unresolved reference to symbol 'Component:Comp.Bin.ValNet.dll' in section 'Fragment:Frag.Client'.
E:\External\Wix\light.exe -nologo -spdb -sice:ICE03 -sice:ICE61 -ext E:\External\Wix\WixUtilExtension.dll -b Install\Product -out Install\Product\NTX86\Product\release\Product\Product.msi Install\Product\NTX86\Product\release\Product.wixobj Install\Wix\NTX86\Product\obj\Product.wix
我只看到一些组件的链接错误。例如,我没有看到TFC_net.dll的未解决的引用错误。所有这些组件都存在于Bin文件夹中。以下是group_Client.wxs

中的内容

<?xml version="1.0" ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Fragment Id="Frag.Client">
    <ComponentGroup Id="Group.Client">
       <ComponentRef Id="Comp.Bin.boost_signalsvc140mt1_61.dll"/>
       <ComponentRef Id="Comp.Bin.boost_regexvc140mt1_61.dll"/>
       <ComponentRef Id="Comp.Bin.boost_threadvc140mt1_61.dll"/>
       <ComponentRef Id="Comp.Bin.cximageu.dll"/>
       <ComponentRef Id="Comp.Bin.oc1210asu.dll"/>
       <ComponentRef Id="Comp.Bin.og1210asu.dll"/>
       <ComponentRef Id="Comp.Bin.ov1210asu.dll"/>
       <ComponentRef Id="Comp.SystemFolder.AddFlow4.ocx"/>
       <ComponentRef Id="Comp.SystemFolder.HFlow.ocx"/>
       <ComponentRef Id="Comp.Bin.Interop.SHDocVw.dll"/>
	   <ComponentRef Id="Comp.Bin.TXXFC_net.dll"/>
       <ComponentRef Id="Comp.Bin.TFC_net.dll"/>
       <ComponentRef Id="Comp.Bin.ValNet.dll"/>
    </ComponentGroup>
  </Fragment>
</Wix>

我是wix和msi的新手。有些人可以帮我解决这些链接错误。

我们使用jam Build工具构建,我们有使用Jam脚本编写的操作规则。

actions MakeMSIFromWIX bind PRODUCTWIXLIB 
{
	$(LIGHT) $(LIGHTOPT) -b $(SUBDIR) -out $(<) $(>) $(PRODUCTWIXLIB)   
}
我们使用了以下灯光选项。 $(LIGHT)将调用Light.exe LIGHTOPT + = -nologo -spdb -sice:ICE03 -sice:ICE61 -ext WixUtilExtension.dll;

0 个答案:

没有答案