An old msi for a product I have to fix works on the 180 day trial version of Windows Server 2003 Standard, but fails in a fully licensed version of same. The msi was built with wix2 (http://schemas.microsoft.com/wix/2003/01/wi but that no longer exists)
When it fails on the licensed server, the log reports
CustomActionException: System.NullReferenceException
from a CustomAction function that looks for the SSRS server path and original SQL server instance name from the registry.
Looking at the MSI custom action code, I've verified that the registry settings, and server paths, required by the MSI do actually exist with correct data.
Is it possible that 'session' is null in the passed parameter to the custom action function?
[CustomAction]
public static ActionResult FindSSRSPath (Session session)
{
View ComboBoxView = session.Database.OpenView("select * from ListBox");
View AvailableInstacesView = session.Database.OpenView("select * from AvailableInstances");
... etc
The use of session members is the only part of the code that I can't verify when running the msi.
How could session be null? Is there anyway to check that, or prevent that?
Why would that work in the 180 day trial version, and not in the licensed version of the server? (I know that's a reach...)
The MSI only works in the x86 version of the server, and not in x64. The msi didn't warn of this. Be wary of old MSI's that don't warn.