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

Reply via email to