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, которые не предупреждают.