|
Matt Newnham
Posts: 13
Joined: 2010-11-23
|
I am attempting to follow the guide to creating a WIX installer from http://www.add-in-express.com/creating-addins-blog/2010/02/08/register-office-addin-wix/.
When I run the heat tool on my outlook add-in dll, I get the File and TypeLib elements and a number of RegistryValue values. However the RegistryValue entries appear to be linked to the ActiveX form I have in the dll for a taskpane. I don't get any RegistryValue entries to register the DLL with Outlook.
Checking the registry when I manually register the dll, I get a number of entries in the HKCR\Software\Microsoft\Outlook\Addins\ key for FriendlyName, Description etc. and also a number of sub-keys e.g. CommandBars. So when I run the installer, the dll gets registered, but does not get loaded by Outlook, presumabley because there is no registry entry in the \Microsoft\Outlook\Addins folder.
Is there something else i need to configure to get the add-in RegistryValue elements extracted via Heat? |
|
Posted 14 Jan, 2011 09:59:46
|
|
Top
|
|
Dmitry Kostochko
Add-in Express team
Posts: 2875
Joined: 2004-04-05
|
Hi Matt,
Could you please show me (or send via email) all registry entries created by the heat.exe tool for your add-in? I will try to find out which registry entries are missing and will let you know. |
|
Posted 17 Jan, 2011 04:24:42
|
|
Top
|
|
Matt Newnham
Posts: 13
Joined: 2010-11-23
|
Hi Dmitry,
Here's the fragment generated by heat:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="TARGETDIR">
<Directory Id="dirCFD54C07EFB094CAD317543172D62CC3" Name="bin" />
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="dirCFD54C07EFB094CAD317543172D62CC3">
<Component Id="cmp0ED1EF7BD036CE4081EEDC33F6D42553" Guid="PUT-GUID-HERE">
<File Id="filD3C95C2CF17AF5C62864F08F2D95F024" KeyPath="yes" Source="SourceDir\bin\outlookclient.dll">
<TypeLib Id="{7812D7E6-3865-4F5C-930A-9C7D58D98F6C}" Control="yes" Description="OutlookClient Library" HelpDirectory="dirCFD54C07EFB094CAD317543172D62CC3" Language="0" MajorVersion="1" MinorVersion="0">
<Class Id="{1166D924-79F0-41AE-A0C3-5645BB0D9D52}" Context="InprocServer32" Description="frmAXKeywords Control" ThreadingModel="apartment" Version="1.0" Control="yes">
<ProgId Id="OutlookClient.frmAXKeywords" Description="frmAXKeywords Control" />
</Class>
<Class Id="{35109965-FCC3-4932-B423-2706F807237D}" Context="InprocServer32" Description="CoOutlookClient Object" ThreadingModel="apartment" Version="1.0">
<ProgId Id="OutlookClient.CoOutlookClient" Description="CoOutlookClient Object" />
</Class>
<Interface Id="{47DC2285-CFAC-4917-924A-326D8FD524B2}" Name="IfrmAXKeywordsEvents" ProxyStubClassId="{00020420-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020420-0000-0000-C000-000000000046}" />
<Interface Id="{D989ACBF-01CE-48D3-8185-CCA4E8990C12}" Name="ICoOutlookClient" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
<Interface Id="{E5D11B1C-AE9D-442B-8AD9-1C8D4F09AE09}" Name="IfrmAXKeywords" ProxyStubClassId="{00020424-0000-0000-C000-000000000046}" ProxyStubClassId32="{00020424-0000-0000-C000-000000000046}" />
</TypeLib>
</File>
<RegistryValue Root="HKCR" Key="CLSID\{1166D924-79F0-41AE-A0C3-5645BB0D9D52}\MiscStatus\1" Value="205201" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{1166D924-79F0-41AE-A0C3-5645BB0D9D52}\MiscStatus" Value="0" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{1166D924-79F0-41AE-A0C3-5645BB0D9D52}\ToolboxBitmap32" Value="[#filD3C95C2CF17AF5C62864F08F2D95F024],1" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{1166D924-79F0-41AE-A0C3-5645BB0D9D52}\Verb\0" Value="Properties,0,2" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{1166D924-79F0-41AE-A0C3-5645BB0D9D52}\Verb" Value="" Type="string" Action="write" />
</Component>
</DirectoryRef>
</Fragment>
</Wix> |
|
Posted 18 Jan, 2011 05:23:30
|
|
Top
|
|
Dmitry Kostochko
Add-in Express team
Posts: 2875
Joined: 2004-04-05
|
Hi Matt,
Thank you. Please try to add the following 4 entries and test your WIX-based installation:
<RegistryValue Root="HKCU" Key="Software\Microsoft\Office\Outlook\AddIns\OutlookClient.CoOutlookClient" Name="FriendlyName" Value="FRIENDLY_NAME_OF_YOUR_ADDIN" Type="string" Action="write" />
<RegistryValue Root="HKCU" Key="Software\Microsoft\Office\Outlook\AddIns\OutlookClient.CoOutlookClient" Name="Description" Value="DESCRIPTION_OF_YOUR_ADDIN" Type="string" Action="write" />
<RegistryValue Root="HKCU" Key="Software\Microsoft\Office\Outlook\AddIns\OutlookClient.CoOutlookClient" Name="LoadBehavior" Value="3" Type="integer" Action="write" />
<RegistryValue Root="HKCU" Key="Software\Microsoft\Office\Outlook\AddIns\OutlookClient.CoOutlookClient" Name="CommandLineSafe" Value="0" Type="integer" Action="write" /> |
|
Posted 18 Jan, 2011 08:43:11
|
|
Top
|
|
Matt Newnham
Posts: 13
Joined: 2010-11-23
|
Hi Dmitry,
Thanks for your response. I have manually added the required registry entries to the XML, by comparing the entries created if I manually register the dll. This installer builds and works fine. I was just wondering why these entries don't get extracted by heat. Without the extraction from heat, I have to repeat the process of manually comparing registry entries each time I change add-in and need to build a new installer. Not a big problem, but would be nice, and less prone to errors, if heat generated the registry entries for me.
Thanks again,
Matt |
|
Posted 18 Jan, 2011 09:10:49
|
|
Top
|
|
Dmitry Kostochko
Add-in Express team
Posts: 2875
Joined: 2004-04-05
|
Hi Matt,
I am sorry, I don't know why heat does not generate these entries for your project. I have created a simple test add-in for MS Outlook and got these entries extracted. I have WiX 3.0 installed, the file version of heat.exe is 3.0.5419.0 on my machine.
If I am not mistaken, WiX allows building an installation package from several script files, so you can include a fragment auto-generated by heat.exe in your main script file and modify your main script file by adding the missing registry entries. |
|
Posted 18 Jan, 2011 10:21:55
|
|
Top
|
|
Matt Newnham
Posts: 13
Joined: 2010-11-23
|
Thanks for looking into it for me Dmitry.
I can ensure i get the correct registry settings by comparing the registry before and after registering the dll. It's pretty painless entering these via the WixEdit utility.
Thanks,
Matt |
|
Posted 18 Jan, 2011 10:59:13
|
|
Top
|
|