Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

How to workaround install problems with MSN Remote Record on Windows Vista x64

How to workaround install problems with MSN Remote Record on Windows Vista x64

  • Comments 7

An updated version of MSN Remote Record that works with Windows Media Center for Windows Vista has been released for download.  The following links contain more information about the MSN Remote Record service:

The Green Button forum post also contains some customer comments about download and installation issues that have been encountered so far.  There are a couple of specific issues that affect the ability to download and install MSN Remote Record on Windows Vista x64 systems, and I wanted to post a workaround that can be used along with more information about what is causing these issues behind the scenes.

How to download and install on Windows Vista x64

  1. Click on the Start menu, choose All Programs, then Accessories, then right-click on the Command Prompt item and choose Run as administrator
  2. Click Continue to grant permission to launch a cmd prompt with administrator privileges
  3. Run the command reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Media Center\Service\Remote Record" /f
  4. Click on the Start menu, choose All Programs, then Internet Explorer (64-bit)
  5. Navigate to http://tv.msn.com/tv/rr/rrsetup.aspx
  6. Click on the Install Remote Record button to download and install MSN Remote Record

What can cause the Install button to not appear?

The web page at http://tv.msn.com/tv/rr/rrsetup.aspx uses some information from the web browser user agent string to determine whether or not it should offer an Install Remote Record button.  This is done to prevent users from being able to download and attempt to install MSN Remote Record on a system that does not have Windows Media Center.  Therefore, if you browse to this web page on a system that does not have Windows XP Media Center Edition 2005 or Windows Vista Home Premium or Ultimate, you will not see an Install button.

In addition, there is another issue that only affects Windows Vista x64 systems.  Windows Vista x64 includes both 32-bit and 64-bit versions of Internet Explorer, but the 32-bit version is used by default unless you specifically go to the Start menu shortcut or the folder that it is located and launch the 64-bit version.  The 32-bit version of Internet Explorer only reads user agent information from the 32-bit registry.

Windows Media Center for Windows Vista only installs native 64-bit files and registry information on Windows Vista x64.  Therefore, the browser user agent string will be different depending on what version of the registry Internet Explorer is looking at.  The following are example user agent strings from the 32-bit and 64-bit registry on my 64-bit test system:

  • 32-bit: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)
  • 64-bit: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Win64; x64; .NET CLR 2.0.50727; SLCC1; Media Center PC 5.0)

You'll notice above that only the 64-bit user agent string reports that the system contains Windows Media Center.  This difference in user agent strings prevents the Install button from being presented on Windows Vista x64 Home Premium and Ultimate unless you browse to the MSN Remote Record site from a 64-bit instance of Internet Explorer.

Why does installation fail on Windows Vista x64?

If you attempt to install MSN Remote Record on Windows Vista x64 Home Premium or Ultimate without first creating the registry value listed in step 3 of the steps listed above, you will likely encounter an error dialog that states the following, and then setup will rollback and fail:

The installer failed to connect with the MSN Remote Record service.  Please make sure your Internet connection is working and try installing again.

The issue here is that the MSN Remote Record MSI is a 32-bit MSI.  Because of that, when it installs, it uses the Windows Installer Registry table to create an empty registry key in the 32-bit registry hive (the WOW64 reflected hive) in the following location:

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Media Center\Service\Remote Record

There is a custom action inside of the MSN Remote Record MSI called ClientServiceInitHelper.exe that attempts to create some service connection registry values.  During a failing x64 install, you can see several warning entries in the application event log that indicate that this custom action is attempting to write to the 64-bit registry in the following location:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Media Center\Service\Remote Record

It turns out that this custom action code will fail with an error if the sub-key it is trying to create values under does not exist.  Since the MSI is 32-bit, the Remote Record sub-key is written to a different location than the custom action code is expecting, and the custom action fails, which causes setup to rollback.

The workaround listed above creates the Remote Record sub-key in the location expected by the custom action, and installation succeeds on Windows Vista x64 Home Premium and Ultimate.

  • If you're a Media Center buff, than Aaron Stebner's blog is a good one to have in your blogroll. Today

  • Straight from Windows-Now.com: If you're a Media Center buff, than Aaron Stebner's blog is a good one to have in your blogroll. Today he posted about the MSN Remote Record service, and the issues it has installing on Windows Vista...

  • If ClientServiceInitHelper.exe was 32-bit it would be redirected to the WOW6432Node. I suspect it is with one 32-bit MSI available. So why would it even check the 64-bit hive in the first place?

    Or is this a managed CA (EXE CAs are bad enough; managed are worse) not targeting a specific archicture, hence running in the 64-bit CA remote server?

  • Hi Heath - I'm still not clear exactly how that is happening.  It is a managed code EXE CA, so I was originally thinking that your last statement was the cause.  However, when I ran the setup with verbose logging enabled, the MSI log stated that it was starting a 32-bit custom action server, and when I looked at the list of processes, it appeared to be running in a 32-bit instance of msiexec.exe.  I'm trying to get more information from the Remote Record team about the exact root cause of this issue....

  • It's been a while since I posted on my own blog, but, yes, exe custom actions are very poor.  I'll have to check to see if I posted some example code that can write to the MSI install log from a CA, and if not dig it out and post it.

    This particular custom action exe writes to the system event log the exception details that would lead to 'easy' resolution.  I would normally not look there when troubleshooting an install issue.

    Heath - If you have some time to blog, it would be great to see some x64 info.  I was quite surprised at the differences.  

  • Hi Sbone99 - Heath has posted some information on his blog already about x64 installation issues.  Check out his x64 tag section at http://blogs.msdn.com/heaths/archive/tags/64-bit/default.aspx for additional info.

  • The 64-bit EXE CA wouldn't be affected by a 32-bit msiexec.exe remoting CA server. I believe something else is going on here.

Page 1 of 1 (7 items)
Leave a Comment
  • Please add 8 and 2 and type the answer here:
  • Post