[wix-users] A circular reference of ordering dependencies was detected
Edwin Castro
egcastr at gmail.com
Tue Feb 23 16:58:18 PST 2016
I found a configuration that does not fail to compile:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="
http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Bootstrapper1" Version="1.0.0.0"
Manufacturer="Manufacturer"
UpgradeCode="22b20cf0-2de5-4a3d-95f4-0337e7f84846">
<BootstrapperApplicationRef
Id="WixStandardBootstrapperApplication.Foundation"/>
<Chain>
<PackageGroupRef Id="PackageGroup"/>
</Chain>
</Bundle>
<Fragment>
<PayloadGroup Id="PayloadA.txt">
<Payload SourceFile="PayloadA.txt"/>
</PayloadGroup>
</Fragment>
<Fragment>
<PayloadGroup Id="PayloadB.txt">
<Payload SourceFile="PayloadB.txt"/>
</PayloadGroup>
</Fragment>
<Fragment>
<PayloadGroup Id="PayloadGroup">
<PayloadGroupRef Id="PayloadA.txt"/>
<PayloadGroupRef Id="PayloadB.txt"/>
</PayloadGroup>
</Fragment>
<Fragment>
<PackageGroup Id="PackageGroup">
<ExePackage SourceFile="PackageA.exe">
<PayloadGroupRef Id="PayloadGroup"/>
</ExePackage>
<ExePackage SourceFile="PackageB.exe">
<PayloadGroupRef Id="PayloadGroup"/>
</ExePackage>
</PackageGroup>
</Fragment>
</Wix>
It seems that the dependency occurs as soon as I separate PackageA.exe into
a different package group from PackageB.exe (even within the same Fragment):
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="
http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Bootstrapper1" Version="1.0.0.0"
Manufacturer="Manufacturer"
UpgradeCode="22b20cf0-2de5-4a3d-95f4-0337e7f84846">
<BootstrapperApplicationRef
Id="WixStandardBootstrapperApplication.Foundation"/>
<Chain>
<PackageGroupRef Id="PackageA.exe"/>
<PackageGroupRef Id="PackageB.exe"/>
</Chain>
</Bundle>
<Fragment>
<PayloadGroup Id="PayloadA.txt">
<Payload SourceFile="PayloadA.txt"/>
</PayloadGroup>
</Fragment>
<Fragment>
<PayloadGroup Id="PayloadB.txt">
<Payload SourceFile="PayloadB.txt"/>
</PayloadGroup>
</Fragment>
<Fragment>
<PayloadGroup Id="PayloadGroup">
<PayloadGroupRef Id="PayloadA.txt"/>
<PayloadGroupRef Id="PayloadB.txt"/>
</PayloadGroup>
</Fragment>
<Fragment>
<PackageGroup Id="PackageA.exe">
<ExePackage SourceFile="PackageA.exe">
<PayloadGroupRef Id="PayloadGroup"/>
</ExePackage>
</PackageGroup>
<PackageGroup Id="PackageB.exe">
<ExePackage SourceFile="PackageB.exe">
<PayloadGroupRef Id="PayloadGroup"/>
</ExePackage>
</PackageGroup>
</Fragment>
</Wix>
It seems to indicate that all packages that share any common payloads MUST
be declared within the same package group! I can't say that I fully
understand this requirement! Could this be a bug?
--
Edwin G. Castro
On Tue, Feb 23, 2016 at 3:42 PM, Edwin Castro <egcastr at gmail.com> wrote:
> I'm trying to understand why there's a circular reference between PayloadA
> and PayloadB in my example source below:
> <?xml version="1.0" encoding="UTF-8"?>
> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
> <Bundle Name="Bootstrapper1" Version="1.0.0.0"
> Manufacturer="Manufacturer"
> UpgradeCode="22b20cf0-2de5-4a3d-95f4-0337e7f84846">
> <Chain>
> <PackageGroupRef Id="PackageA"/>
> <PackageGroupRef Id="PackageB"/>
> </Chain>
> </Bundle>
> <Fragment>
> <PayloadGroup Id="PayloadA">
> <Payload Id="PayloadA" SourceFile="PayloadA.txt"/>
> </PayloadGroup>
> </Fragment>
> <Fragment>
> <PayloadGroup Id="PayloadB">
> <Payload Id="PayloadB" SourceFile="PayloadB.txt"/>
> </PayloadGroup>
> </Fragment>
> <Fragment>
> <PackageGroup Id="PackageA">
> <ExePackage Id="PackageA" SourceFile="PackageA.exe">
> <PayloadGroupRef Id="PayloadA"/>
> <PayloadGroupRef Id="PayloadB"/>
> </ExePackage>
> </PackageGroup>
> </Fragment>
> <Fragment>
> <PackageGroup Id="PackageB">
> <ExePackage Id="PackageB" SourceFile="PackageB.exe">
> <PayloadGroupRef Id="PayloadA"/>
> <PayloadGroupRef Id="PayloadB"/>
> </ExePackage>
> </PackageGroup>
> </Fragment>
> </Wix>
>
> The way I'm reading this I see that PackageA depends on PayloadA and
> PayloadB. Likewise PackageB depends on PayloadA and PayloadB.
>
> PayloadA certainly does not directly depend on PayloadB and I don't
> understand how PayloadB could possibly depend on PayloadA with the given
> source above.
>
> This smells like a bug to me. Is this a bug?
>
> --
> Edwin G. Castro
>
>
> On Mon, Feb 8, 2016 at 12:25 PM, Edwin Castro <egcastr at gmail.com> wrote:
>
>> I'm getting an odd "circular reference of ordering dependencies" error
>> that I don't understand.
>>
>> First, the actual error:
>>
>> ------ Rebuild All started: Project: Bootstrapper1, Configuration: Debug
>> x86 ------
>> C:\Program Files (x86)\WiX Toolset v3.9\bin\candle.exe -dDebug
>> -d"DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio
>> 11.0\Common7\IDE\\" -d"SolutionDir=c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\\" -dSolutionExt=.sln
>> -dSolutionFileName=Bootstrapper1.sln -dSolutionName=Bootstrapper1
>> -d"SolutionPath=c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\Bootstrapper1.sln" -dConfiguration=Debug
>> -dOutDir=bin\Debug\ -dPlatform=x86
>> -d"ProjectDir=c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\\" -dProjectExt=.wixproj
>> -dProjectFileName=Bootstrapper1.wixproj -dProjectName=Bootstrapper1
>> -d"ProjectPath=c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\Bootstrapper1.wixproj"
>> -d"TargetDir=c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\bin\Debug\\" -dTargetExt=.exe
>> -dTargetFileName=Bootstrapper1.exe -dTargetName=Bootstrapper1
>> -d"TargetPath=c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\bin\Debug\Bootstrapper1.exe" -out obj\Debug\
>> -arch x86 -ext "C:\Program Files (x86)\WiX Toolset
>> v3.9\bin\\WixBalExtension.dll" Bundle.wxs
>> Windows Installer XML Toolset Compiler version 3.9.1208.0
>> Copyright (c) Outercurve Foundation. All rights reserved.
>> Bundle.wxs
>> C:\Program Files (x86)\WiX Toolset v3.9\bin\Light.exe -out
>> "c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\bin\Debug\Bootstrapper1.exe" -pdbout
>> "c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\bin\Debug\Bootstrapper1.wixpdb" -ext
>> "C:\Program Files (x86)\WiX Toolset v3.9\bin\\WixBalExtension.dll"
>> -contentsfile obj\Debug\Bootstrapper1.wixproj.BindContentsFileList.txt
>> -outputsfile obj\Debug\Bootstrapper1.wixproj.BindOutputsFileList.txt
>> -builtoutputsfile
>> obj\Debug\Bootstrapper1.wixproj.BindBuiltOutputsFileList.txt
>> -wixprojectfile "c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\Bootstrapper1.wixproj" obj\Debug\Bundle.wixobj
>> Windows Installer XML Toolset Linker version 3.9.1208.0
>> Copyright (c) Outercurve Foundation. All rights reserved.
>> c:\users\ecastro\documents\visual studio
>> 2012\Projects\Bootstrapper1\Bundle.wxs(18,0): error LGHT0343: A circular
>> reference of ordering dependencies was detected. The infinite loop
>> includes: Payload:PayloadA -> Payload:PayloadB -> Payload:PayloadA.
>> Ordering dependency references must form a directed acyclic graph.
>> Done building project "Bootstrapper1.wixproj" -- FAILED.
>>
>>
>> And now Bundle.wxs:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
>> <Bundle Name="Bootstrapper1" Version="1.0.0.0"
>> Manufacturer="Manufacturer"
>> UpgradeCode="22b20cf0-2de5-4a3d-95f4-0337e7f84846">
>> <Chain>
>> <PackageGroupRef Id="PackageA"/>
>> <PackageGroupRef Id="PackageB"/>
>> </Chain>
>> </Bundle>
>> <Fragment>
>> <PayloadGroup Id="PayloadA">
>> <Payload Id="PayloadA" SourceFile="PayloadA.txt"/>
>> </PayloadGroup>
>> </Fragment>
>> <Fragment>
>> <PayloadGroup Id="PayloadB">
>> <Payload Id="PayloadB" SourceFile="PayloadB.txt"/>
>> </PayloadGroup>
>> </Fragment>
>> <Fragment>
>> <PackageGroup Id="PackageA">
>> <ExePackage Id="PackageA" SourceFile="PackageA.exe">
>> <PayloadGroupRef Id="PayloadA"/>
>> <PayloadGroupRef Id="PayloadB"/>
>> </ExePackage>
>> </PackageGroup>
>> </Fragment>
>> <Fragment>
>> <PackageGroup Id="PackageB">
>> <ExePackage Id="PackageB" SourceFile="PackageB.exe">
>> <PayloadGroupRef Id="PayloadA"/>
>> <PayloadGroupRef Id="PayloadB"/>
>> </ExePackage>
>> </PackageGroup>
>> </Fragment>
>> </Wix>
>>
>> I don't see where the cyclic reference occurs. What am I doing wrong here?
>>
>>
>> --
>> Edwin G. Castro
>>
>>
>
More information about the wix-users
mailing list