Here's the code I used: <Property Id="MMC3"> <DirectorySearch Id="MMC3Path" Path="[SystemFolder]" Depth="3"> <FileSearch Id="MMC3Installed" Name="mmc.exe" MinVersion="5.2.3790.3959" /> </DirectorySearch> </Property>
If MMC3 has a value, then it's installed. My snap in is optional, so I just make it available or not, depending on MMC3 install state. If you require it for your product, then you may be better served by having a bootstrapper, or at least an install condition: <Condition Message='MMC 3.0 is required for this product.'> MMC3 </Condition> And FWIW, here's my edited list of registry operations for installing a .NET MMC3 snap-in: <Component Id="ms_Native_RegistryOperations" Guid="{INSTALLER_COMPONENT_GUID_X64}" Win64="yes"> <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Action="createAndRemoveOnUninstall" /> <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}\NodeTypes" Action="createAndRemoveOnUninstall" /> <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}\Standalone" Action="createAndRemoveOnUninstall" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="Type" Value="Namespace.SnapIn, SnapIn, Version=0.0.0.1, Culture=neutral, PublicKeyToken=gobbledeegook" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="ApplicationBase" Value="[SNAPINFOLDER]" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="ConfigurationFile" Value="[#ms_SnapIn.dll.config]" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="NameString" Value="Snap In Name" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="Description" Value="MMC 3.0 snap-in to end all snap-ins." Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="Provider" Value="Big Momma's House, Inc. (c)" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="AssemblyName" Value="SnapIn" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="ModuleName" Value="SnapIn.dll" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="FxVersion" Value="3.0.0.0" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="About" Value="{00000000-0000-0000-0000-000000000000}" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="NameStringIndirect" Value="@[SNAPINFOLDER]SnapIn.Resources,-1" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="DescriptionStringIndirect" Value="@[SNAPINFOLDER]SnapIn.Resources,-2" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="IconIndirect" Value="@[SNAPINFOLDER]SnapIn.Resources,-1" Type="string" Action="write" /> </Component> <Component Id="ms_Wow64_RegistryOperations" Guid="{INSTALLER_COMPONENT_GUID_X86}" Win64="no"> <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Action="createAndRemoveOnUninstall" /> <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}\NodeTypes" Action="createAndRemoveOnUninstall" /> <RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}\Standalone" Action="createAndRemoveOnUninstall" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="Type" Value="Namespace.SnapIn, SnapIn, Version=0.0.0.1, Culture=neutral, PublicKeyToken=gobbledeegook" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="ApplicationBase" Value="[SNAPINFOLDER]" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="ConfigurationFile" Value="[#ms_SnapIn.dll.config]" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="NameString" Value="Snap In Name" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="Description" Value="MMC 3.0 snap-in to end all snap-ins." Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="Provider" Value="Big Momma's House, Inc. (c)" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="AssemblyName" Value="SnapIn" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="ModuleName" Value="SnapIn.dll" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="RuntimeVersion" Value="v2.0.50727" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="FxVersion" Value="3.0.0.0" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="About" Value="{00000000-0000-0000-0000-000000000000}" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="NameStringIndirect" Value="@[SNAPINFOLDER]SnapIn.Resources,-1" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="DescriptionStringIndirect" Value="@[SNAPINFOLDER]SnapIn.Resources,-2" Type="string" Action="write" /> <RegistryValue Root="HKLM" Key="SOFTWARE\Microsoft\MMC\SnapIns\FX:{SNAP-IN-GUID}" Name="IconIndirect" Value="@[SNAPINFOLDER]SnapIn.Resources,-1" Type="string" Action="write" /> </Component> I think that about covers everything. Chris On Mon, Jun 29, 2009 at 2:05 AM, Brant Gurganus <br...@gurganus.name> wrote: > Alright, so if I understand things right, I need to capture the > registry entries created by installutil and write them into the Wix > file so that the Windows Installer writes them directly. > > How about running mmcperf which is necessary to get the MMC 3.0 API > into the global assembly cache on XP and 2003? I make that a custom > action that happens after installing the assembly (MMC 3.0)? > > Looking at documentation, I saw ways to see if .Net 2.0 was installed. > Are there ways to see if MMC 3.0 is installed on the operating systems > that don't come with it? > > Brant Gurganus > http://gurganus.name/brant > > > > On Sun, Jun 28, 2009 at 10:43 PM, Christopher > Karper<christopher.kar...@gmail.com> wrote: > > You'll need to follow the manual registration process, and build the > > registry entries yourself. There is no extension to handle this as-is. > A > > search on MSDN should get you the results you need, depending on the > > platform you used to develop the snap in. > > > > Heat may be able to harvest the registry info for you as well, but I > don't > > know. > > > > Chris > > > > On Sun, Jun 28, 2009 at 8:22 PM, Brant Gurganus <br...@gurganus.name> > wrote: > > > >> My understanding from documentation on MSDN is that installutil > >> shouldn't be used to register the MMC 3.0 snap-in in actual > >> deployment. What then is the correct way to register an MMC snap-in > >> with a Windows Installer built with Wix? I'm currently using Wix 3.5 > >> since that's what had the VS2010 integration. I'm pretty new to Wix in > >> the first place. > >> > >> Brant Gurganus > >> http://gurganus.name/brant > >> > >> > >> > ------------------------------------------------------------------------------ > >> _______________________________________________ > >> WiX-users mailing list > >> WiX-users@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/wix-users > >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users