Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользовательские действия на основе библиотек динамических ссылок можно отлаживать с помощью инструментов отладки для Windows. Динамическую отладку невозможно использовать с пользовательскими действиями на основе исполняемых файлов или скриптов .
Описанные в этом разделе методы помогут выполнить отладку пользовательских действий установщика Windows. Дополнительные сведения о средствах отладки для Windowsсм. в разделе «Средства разработки драйверов для Windows» (WDK).
Установщик Windows использует переменную среды MsiBreak, чтобы определить, какое настраиваемое действие необходимо отлаживать. Если у вас есть доступ к исходному коду пользовательского действия, вы можете использовать отладку без MsiBreak. Чтобы начать отладку без MsiBreak, поместите временное поле сообщения в начало кода действия. Когда во время установки появится окно сообщения, подключите отладчик к процессу, которому принадлежит это окно сообщения. Затем можно задать все необходимые точки останова и закрыть окно сообщения для возобновления выполнения. Отладка предыдущих частей пользовательского действия этим методом невозможна.
Чтобы использовать переменную среды MsiBreak для отладки пользовательского действия, задайте MsiBreak имя настраиваемого действия в таблице CustomAction . MsiBreak может быть системой или переменной пользовательской среды. Если переменная задана как системная переменная, может потребоваться перезагрузка системы, когда значение будет изменено для обнаружения нового значения.
Чтобы использовать переменную среды MsiBreak для отладки внедренного пользовательского интерфейса, задайте значение MsiBreak в MsiEmbeddedUI.
Установщик Windows проверяет только переменную среды MsiBreak, если пользователь является администратором. Установщик игнорирует значение MsiBreak, если пользователь не является администратором, даже если это управляемое приложение.
При отладке настраиваемого действия, которое выполняется с повышенными привилегиями (системной) в последовательности выполнения, подключите отладчик к службе установщика Windows. При отладке настраиваемого действия, выполняемого в последовательности с использованием олицетворённых привилегий, система выводит диалоговое окно, в котором указывается, какой процесс следует отладить. Пользователю предлагается диалоговое окно с указанием процесса отладки. Для получения дополнительной информации о пользовательских действиях с повышенными правами см. Безопасность пользовательских действий.
После подключения отладчика к правильному процессу установщик запускает точку останова отладчика непосредственно перед вызовом точки входа библиотеки DLL. В точке останова библиотека DLL уже загружена в процесс, и адрес точки входа определён. Если не удалось загрузить библиотеку DLL пользовательского действия или не существует настраиваемой точки входа, точка останова не активируется. Так как точка останова активируется перед вызовом функции DLL, после активации точки останова следует использовать отладчик для шага вперед, пока не будет вызвана настраиваемая точка входа действия. Кроме того, можно задать точку останова в любом месте пользовательского действия и возобновить нормальное выполнение.
Установщик Windows выполняет библиотеки DLL, не находящиеся в таблице двоичных данных , непосредственно из местоположения DLL. Установщик не знает исходное имя библиотеки DLL, хранящейся в двоичной таблице, и выполняет настраиваемое действие DLL под временным именем файла. Форма временного имени файла — MSI?????. TMP. В Windows XP этот временный файл хранится в безопасном расположении, обычно <WindowFolder>\Installer.
Обратите внимание, что многие библиотеки DLL, созданные для отладки, содержат имя и путь к соответствующему PDB-файлу в составе самой библиотеки DLL. При отладке этого типа DLL на системе, где PDB можно найти по расположению, указанному в библиотеке DLL, символы могут загружаться автоматически средством отладчика. В ситуациях, когда PDB не удается найти в хранимом расположении, где отладчик не поддерживает загрузку символов из сохраненного расположения или где библиотека DLL не была создана с помощью сведений об отладке, может потребоваться поместить файлы символов в папку с временным DLL-файлом.
Установщик добавляет сведения об отладке для пользовательских сценариев действий в файл журнала установки.
There is a problem with this Windows Installer package. A script
required for this install to complete could not be run. Contact your
support personnel or package vendor. {Custom action [2] script error
[3], [4]: [5] Line [6], Column [7], [8] }