wix msi fails in licensed version of server

时间:2018-02-26 17:52:31

标签: windows-server-2003 wix2

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...)

1 个答案:

答案 0 :(得分:0)

MSI仅适用于x86版本的服务器,而不适用于x64。 msi并没有对此发出警告。警惕没有发出警告的老MSI。