WIX MSI не удается в лицензионной версии сервера

Старая версия MSI для продукта, которую мне нужно исправить, работает на 180-дневной пробной версии Windows Server 2003 Standard, но не работает в полностью лицензированной версии. MSI был построен с wix2 ( http://schemas.microsoft.com/wix/2003/01/wi но больше не существует)

Когда происходит сбой на лицензированном сервере, журнал сообщает

CustomActionException: System.NullReferenceException

из функции CustomAction, которая ищет путь к серверу SSRS и исходное имя экземпляра сервера SQL из реестра.

Глядя на код настраиваемого действия MSI, я убедился, что параметры реестра и пути к серверам, требуемые MSI, действительно существуют с правильными данными.

Возможно ли, что "сессия" является нулем в переданном параметре функции настраиваемого действия?

[CustomAction]
public static ActionResult FindSSRSPath (Session session)
{
    View ComboBoxView = session.Database.OpenView("select * from ListBox");
    View AvailableInstacesView = session.Database.OpenView("select * from AvailableInstances");
    ... etc

Использование членов сеанса - единственная часть кода, которую я не могу проверить при запуске msi.

Как сессия может быть нулевой? Есть ли способ это проверить или предотвратить?

Почему это работает в 180-дневной пробной версии, а не в лицензионной версии сервера? (Я знаю, что это достижимо...)

1 ответ

MSI работает только в версии сервера x86, а не в x64. MSI не предупредил об этом. Остерегайтесь старых MSI, которые не предупреждают.

Другие вопросы по тегам