WIX heat for registering COM with 64 bit -
i using following line generate wxs file registered com
"c:\program files (x86)\wix toolset v3.10\bin\heat.exe" dir "$(solutiondir)output" -dr installfolder -cg sapfilescomp -gg -g1 -sf -srd -var "var.outputfolder" -out "$(projectdir)\sapheatfiles.wxs"
it works fine, whenever use regasm 32 bit whenever try register using regasm (64bit), got following error:
the typelib element non-advertised , therefore requires parent file element.
attached generated wxs file both cases (i noticed in first case "typelib" element nested in "file" element, while sibling in second case):
32 bit
<component id="cmp876eabd23bd0b870aa62fa8f8e0fe6b8" directory="installfolder" guid="92abc2c9-fcbc-403c-bdef-26fbd3f7246a"> <file id="fil45cfd89b1f7c95d68ea24cfd60ba3404" keypath="yes" source="$(var.outputfolder)\sap2000plugin_mali_curveloadv18.tlb"> <typelib id="{040de481-6bd0-4eb1-8dac-32fc97b37e09}" description="sap2000 curved load plugin mostafa ali" helpdirectory="installfolder" language="0" majorversion="2" minorversion="0"> <interface id="{de52bd0f-3562-39a1-95e2-e55eab5e9340}" name="_cplugin" proxystubclassid32="{00020424-0000-0000-c000-000000000046}" /> </typelib> </file> </component>
64 bit
<component id="cmp876eabd23bd0b870aa62fa8f8e0fe6b8" directory="installfolder" guid="342ba35d-063e-4c1d-9099-8ad4b78b17fa"> <file id="fil45cfd89b1f7c95d68ea24cfd60ba3404" keypath="yes" source="$(var.outputfolder)\sap2000plugin_mali_curveloadv18.tlb" /> <registryvalue root="hkcr" key="typelib\{040de481-6bd0-4eb1-8dac-32fc97b37e09}\2.0\0\win64" value="[#fil45cfd89b1f7c95d68ea24cfd60ba3404]" type="string" action="write" /> <typelib id="{00020430-0000-0000-c000-000000000046}" description="ole automation" helpdirectory="systemfolder" language="0" majorversion="2" minorversion="0"> <interface id="{4ef6100a-af88-11d0-9846-00c04fc29993}" name="fontevents" proxystubclassid32="{00020420-0000-0000-c000-000000000046}" /> <interface id="{7bf80981-bf32-101a-8bbb-00aa00300cab}" name="picture" proxystubclassid32="{00020420-0000-0000-c000-000000000046}" /> <interface id="{bef6e003-a874-101a-8bba-00aa00300cab}" name="font" proxystubclassid32="{00020420-0000-0000-c000-000000000046}" /> </typelib> <typelib id="{040de481-6bd0-4eb1-8dac-32fc97b37e09}" description="sap2000 curved load plugin mostafa ali" helpdirectory="installfolder" majorversion="2" minorversion="0"> <interface id="{de52bd0f-3562-39a1-95e2-e55eab5e9340}" name="_cplugin" proxystubclassid32="{00020424-0000-0000-c000-000000000046}" /> </typelib> </component>
thanks help.
just in case faces same problem, solved problem manually nesting typelib element inside file element follows:
<component id="cmp876eabd23bd0b870aa62fa8f8e0fe6b8" directory="installfolder" guid="d3fcccc3-fec9-41b6-9201-e01658cc20b7"> <registryvalue root="hkcr" key="typelib\{040de481-6bd0-4eb1-8dac-32fc97b37e09}\2.0\0\win64" value="[#fil45cfd89b1f7c95d68ea24cfd60ba3404]" type="string" action="write" /> <file id="fil45cfd89b1f7c95d68ea24cfd60ba3404" keypath="yes" source="$(var.outputfolder)\sap2000plugin_mali_curveloadv18.tlb" > <typelib id="{00020430-0000-0000-c000-000000000046}" description="ole automation" language="0" majorversion="2" minorversion="0" > <interface id="{4ef6100a-af88-11d0-9846-00c04fc29993}" name="fontevents" proxystubclassid32="{00020420-0000-0000-c000-000000000046}" /> <interface id="{7bf80981-bf32-101a-8bbb-00aa00300cab}" name="picture" proxystubclassid32="{00020420-0000-0000-c000-000000000046}" /> <interface id="{bef6e003-a874-101a-8bba-00aa00300cab}" name="font" proxystubclassid32="{00020420-0000-0000-c000-000000000046}" /> </typelib> <typelib id="{040de481-6bd0-4eb1-8dac-32fc97b37e09}" description="sap2000 curved load plugin mostafa ali" helpdirectory="installfolder" language="0" majorversion="2" minorversion="0" > <interface id="{de52bd0f-3562-39a1-95e2-e55eab5e9340}" name="_cplugin" proxystubclassid32="{00020424-0000-0000-c000-000000000046}" /> </typelib> </file> </component>
Comments
Post a Comment