I don't think MsiPublishAssemblies is relevant here. I've been down that
route before wondering if assemblies are in place after
MsiPublishAssemblies but they're not. When I thought about that, it
makes sense because it's a commit that gets the assemblies in place, and
commit things happen at InstallFinalize.
I believe that one of the things that MsiPublishAssemblies does is to
look at the connections between assemblies and add trace references in
the GAC. If you just install a lone assembly in the GAC you can go to
Windows\assembly in Explorer and uninstall it. If you have an MSI that
installs an assembly in the GAC together with a client program with that
has a reference to that assembly, then trying an Explorer uninstall will
tell you that the assembly is required by other applications. I think
it's MsiPublishAssemblies that connects those dots and installs to the
GAC with references.
Phil Wilson
________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Mike
Dimmick
Sent: Thursday, May 17, 2007 12:46 PM
To: Wilson, Phil; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] VC8 runtime merge module and COM
registrationonVista, error 0x800736B1
I've just dug around in the CRT MSMs and realised you're right - the
MsiAssembly/MsiAssemblyName tables are only used to install the files on
Windows version 6.0 and later. On Windows XP and Windows Server 2003 the
files are dumped straight into the WinSXS folder and so actions
scheduled after InstallFiles/WriteRegistryValues should work.
NOTE: I am NOT recommending that you do this. I'd strongly suggest NOT
doing it.
One wonders what would happen if MsiPublishAssemblies were placed
earlier in the execute sequence.
--
Mike Dimmick
________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Wilson,
Phil
Sent: 17 May 2007 19:44
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] VC8 runtime merge module and COM registration
onVista, error 0x800736B1
The sxs Vista install of those CRT manifests etc isn't complete at
SelfReg time.
Phil Wilson
________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Scott
Palmer
Sent: Thursday, May 17, 2007 11:42 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] VC8 runtime merge module and COM registration on
Vista,error 0x800736B1
I have a problem on Vista where my COM DLLs don't register (HRESULT =
0x800736B1) .. after Googling it seems this is caused by the C runtime
not being installed. (All other DLLs that are compiled with VC6 or
supplied by others register fine.)
My installer also works fine on Windows XP.
I install the VC8 runtime stuff with the merge modules.
<Directory Id="TARGETDIR" Name="SourceDir">
<Merge Id="VC8Runtime" SourceFile="C:\Program Files\Common
Files\Merge Modules\Microsoft_VC80_CRT_x86.msm" Language="1033"
DiskId="1"/>
<Merge Id="VC8Policy" SourceFile="C:\Program Files\Common
Files\Merge Modules\policy_8_0_Microsoft_VC80_CRT_x86.msm"
Language="1033" DiskId="1"/>
<Merge Id="MFCRuntime" SourceFile="C:\Program Files\Common
Files\Merge Modules\Microsoft_VC80_MFC_x86.msm" Language="1033"
DiskId="1"/>
<Merge Id="MFCPolicy" SourceFile="C:\Program Files\Common
Files\Merge Modules\policy_8_0_Microsoft_VC80_MFC_x86.msm"
Language="1033" DiskId="1"/>
...
And use SelfRegCost="1000" to get the COM DLLs to register.
What's the trick to getting this to work on Vista?
Thanks,
Scott
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users