Простое настраиваемое действие WiX в пользовательском интерфейсе преждевременно заканчивается в Windows 7 - PullRequest
0 голосов
/ 09 мая 2018

Мой пользовательский интерфейс установщика WiX получает ошибку при использовании настраиваемого действия. Интересно, что установщик работает нормально в Windows 10, но при запуске его в Windows 7 он прерывается.

Из журналов установщика отображается код ошибки 2896. Погуглив дальше код ошибки, указал мне, что это может быть несоответствие версии .net framework. Поэтому я изменил свой CustomAction.config следующим образом:

<startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" />
        <supportedRuntime version="v3.0" />
        <supportedRuntime version="v3.5" />
        <supportedRuntime version="v2.0.50727"/>

</startup>

Я проверил установленную версию с помощью следующей команды:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

Есть ли что-то еще, что я здесь упускаю?

EDIT: Вот код настраиваемого действия для вашей справки:

namespace ValidateIP
{
    public class CustomActions
    {
        [CustomAction]
        public static ActionResult ValidateIP(Session session)
        {
            session.Log("Begin ValidateIP");
            if (string.IsNullOrEmpty(session["IPVAL"]))
            {
                session["VALIDIP"] = "0";
            }
            else
            {
                session["VALIDIP"] = "1";
            }
            return ActionResult.Success;
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Получается, что, хотя я использовал другую версию .Net в своем файле CustomAction.config, но в проекте Custom Action целевая версия .Net была 4.5. Так что это заменило свойства конфигурации. Как только я уменьшил его до 3,5, он начал работать. Спасибо всем за все предложения.

0 голосов
/ 09 мая 2018

Я не эксперт по настраиваемым действиям с управляемым кодом, Крис Пейнтер - человек для этого, но позвольте мне проверить пару вещей:

  • Требуется ли для этого настраиваемого действия права администратора?
  • Если это так, настроено ли оно как пользовательское действие отложенного режима, запускаемое в контексте системы?
  • В какой последовательности выполняется настраиваемое действие? GUI? Выполнить? И
  • Что на самом деле делает пользовательское действие?
  • От каких классов .NET и функций .NET и функций Widows зависит настраиваемое действие? (насколько мы знаем, вы можете создавать экземпляры COM-серверов, например)

Подробно, отладка, ведение журнала : См. Installsite.org о ведении журнала . Из этого контента я бы попробовал:

msiexec.exe /i C:\Path\Your.msi /L*vx! C:\Your.log

Это полное подробное ведение журнала (*v) с дополнительной отладочной информацией (x) и непрерывным ведением журнала (!) (в отличие от записи журнала в пакетах). Последнее делает установку намного медленнее, но гарантирует, что ни один буфер журнала не будет потерян из-за сбоев.


Некоторые ссылки (для безопасного хранения):

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...