application path issue что это

Начало работы с платформой поддержки пакетов

Платформа поддержки пакетов — это набор с открытым исходным кодом, который помогает применять исправления к существующему классическому приложению (без изменения кода), чтобы его можно было запускать в контейнере MSIX. Платформа поддержки пакетов помогает настроить приложения в соответствии с требованиями современных сред выполнения.

Эта статья содержит подробные сведения о каждом компоненте платформы поддержки пакетов и пошаговое руководство по его использованию.

Узнайте, что входит в состав платформы поддержки пакета

Платформа поддержки пакетов содержит исполняемый файл, библиотеку DLL диспетчера среды выполнения и набор исправлений среды выполнения.

Ниже приведен процесс.

Когда пользователи запускают приложение, запускается средство запуска платформы поддержки пакетов. это первый исполняемый файл. Он считывает файл конфигурации и внедряет исправления среды выполнения и библиотеку DLL диспетчера среды выполнения в процесс приложения. Диспетчер среды выполнения применяет исправление, когда это требуется для выполнения приложения в контейнере MSIX.

Шаг 1. выявление проблем совместимости упакованных приложений

Сначала создайте пакет для своего приложения. Затем установите его, запустите его и следите за его поведением. Могут появиться сообщения об ошибке, которые помогут выявить проблемы с совместимостью. Вы также можете использовать Монитор процесса для выявления проблем. Распространенные проблемы связаны с допущениями приложений о правах доступа к рабочему каталогу и пути программы.

Использование монитора процессов для обнаружения проблемы

При необходимости можно отфильтровать события, чтобы отображались только ошибки.

Если вы считаете, что произошла ошибка доступа к файловой системе, выполните поиск событий со сбоем, которые находятся в папке System32/SysWOW64 или в пути к файлу пакета. Фильтры также могут помочь здесь. Начало в нижней части этого списка и прокрутка вверх. Ошибки, которые появляются в нижней части этого списка, были недавно выполнены. Обратите особое внимание на ошибки, содержащие такие строки, как «отказано в доступе» и «путь/имя не найдено», и пропускайте те вещи, которые не выглядят как подозрительные. У псфсампле есть две проблемы. Эти проблемы можно увидеть в списке, который отображается на следующем рисунке.

в первой ошибке, которая появляется в этом образе, приложению не удается выполнить чтение из файла «Config.txt», расположенного в пути «C:\ Windows \SysWOW64». Маловероятно, что приложение пытается напрямую ссылаться на этот путь. Скорее всего, он пытается выполнить чтение из этого файла с помощью относительного пути, а по умолчанию system32/SysWOW64 — рабочий каталог приложения. Это предполагает, что приложение ожидает, что его текущий рабочий каталог устанавливается в любое место в пакете. Глядя на приложение appx, можно увидеть, что файл существует в том же каталоге, что и исполняемый объект.

Вторая ошибка отображается на следующем рисунке.

В этой ситуации приложению не удается записать файл журнала в путь пакета. Это предложит, что может помочь адресная привязка перенаправления файлов.

Шаг 2. Поиск исправления среды выполнения

ПСФ содержит исправления среды выполнения, которые можно использовать прямо сейчас, например адресную привязку перенаправления файлов.

Адресная привязка перенаправления файлов

С помощью адресной привязки перенаправления файлов можно перенаправить попытки записи или чтения данных в каталоге, который недоступен из приложения, работающего в контейнере MSIX.

Исправления среды выполнения из сообщества

обязательно ознакомьтесь с вкладами сообщества на нашу GitHub страницу. Возможно, другие разработчики разрешили проблему, похожую на вашу, и предоставила исправление среды выполнения.

Шаг 3. Применение исправления среды выполнения

можно применить существующее исправление среды выполнения с помощью нескольких простых средств из Windows SDK и выполнить следующие действия.

Давайте проверим каждую задачу.

Создание папки макета пакета

Если у вас уже есть файл. msix (или. appx), его содержимое можно распаковать в папку макета, которая будет служить промежуточной областью для пакета. это можно сделать из командной строки с помощью средства программе makeappx, основываясь на пути установки пакета SDK. здесь вы найдете makeappx.exe средство на Windows 10 компьютере: x86: C:\Program files (x86) \ Windows Kits\10\bin\x86\makeappx.exe x64: c:\program files (x86) \ Windows Kits\10\bin\x64\makeappx.exe

Это позволит получить примерно следующий вид.

Если у вас нет файла. msix (или. appx), то можно создать папку пакета и файлы с нуля.

Получение файлов платформы поддержки пакетов

Пакет NuGet ПСФ можно получить с помощью автономного средства командной строки NuGet или с помощью Visual Studio.

Получение пакета с помощью программы командной строки

Получите пакет с помощью Visual Studio

Добавление файлов платформы поддержки пакетов в пакет

Добавьте необходимые 32-разрядные и 64-битные ПСФ DLL и исполняемые файлы в каталог пакета. Руководствуйтесь следующей таблицей. Также необходимо включить все необходимые исправления среды выполнения. В нашем примере нам требуется исправление среды выполнения для перенаправления файлов.

Читайте также:  какой краской можно покрасить ламинированное дсп
Исполняемый файл приложения — x64 Исполняемый файл приложения — x86
PSFLauncher64.exe PSFLauncher32.exe
PSFRuntime64.dll PSFRuntime32.dll
PSFRunDll64.exe PSFRunDll32.exe

Теперь содержимое пакета должно выглядеть примерно так:

Изменение манифеста пакета

Откройте манифест пакета в текстовом редакторе, а затем присвойте Executable атрибуту Application элемента имя исполняемого файла средства запуска ПСФ. Если вы знакомы с архитектурой целевого приложения, выберите соответствующую версию, PSFLauncher32.exe или PSFLauncher64.exe. В противном случае PSFLauncher32.exe будет работать во всех случаях. Рассмотрим пример.

Создание файла конфигурации

Создайте имя файла config.json и сохраните его в корневую папку пакета. Измените объявленный идентификатор приложения файла config. JSON так, чтобы он указывал на только что заменяющий исполняемый файл. С помощью набора знаний, полученного с помощью монитора процессов, можно также задать рабочий каталог, а также использовать адресную привязку перенаправления файлов для перенаправления операций чтения и записи в файлы журнала в папке с относительным пакетом «Псфсамплеапп».

Ниже приведено руководство по схеме config. JSON.

Array ключ Значение
веб-масштабированием; идентификатор Используйте значение Id атрибута Application элемента в манифесте пакета.
веб-масштабированием; исполняемый файл Относительный путь пакета к исполняемому файлу, который необходимо запустить. В большинстве случаев это значение можно получить из файла манифеста пакета, прежде чем изменять его. Это значение Executable атрибута Application элемента.
веб-масштабированием; WorkingDirectory Используемых Путь относительно пакета, используемый в качестве рабочего каталога запускаемого приложения. Если это значение не задано, операционная система использует каталог в System32 качестве рабочего каталога приложения.
процессы исполняемый файл В большинстве случаев это будет имя, указанное executable выше, с удаленным путем и расширением файла.
исправлений Файл DLL. Относительный путь пакета к адресной привязке,. msix/. appx для загрузки.
исправлений config Используемых Определяет, как ведет себя библиотека DLL адресной привязки. Точный формат этого значения зависит от способа исправления, так как каждая адресная привязка может интерпретировать этот «большой двоичный объект».

applications Ключи, processes и fixups являются массивами. Это означает, что можно использовать файл config. JSON для указания более чем одного DLL приложения, процесса и адресной привязки.

Упаковка и тестирование приложения

Затем создайте пакет.

Затем подпишите его.

С помощью PowerShell установите пакет.

Не забудьте сначала удалить пакет.

Запустите приложение и обратите внимание на поведение с применением исправления среды выполнения. При необходимости повторите шаги диагностики и упаковки.

Проверьте, запущена ли платформа поддержки пакетов.

Вы можете проверить, выполняется ли исправление среды выполнения. Для этого откройте Диспетчер задач и щелкните Дополнительные сведения. Найдите приложение, к которому применена платформа поддержки пакетов, и разверните сведения о приложении, чтобы веив более подробную информацию. Вы сможете увидеть, что платформа поддержки пакетов запущена.

Использование исправления трассировки

Альтернативный способ диагностики проблем совместимости упакованных приложений заключается в использовании исправления трассировки. Эта библиотека DLL входит в состав ПСФ и предоставляет подробное диагностическое представление о поведении приложения, аналогичное монитору процессов. Он специально разработан для выявления проблем совместимости приложений. Чтобы использовать исправление трассировки, добавьте в пакет библиотеку DLL, добавьте следующий фрагмент в файл config. JSON, а затем упакуйте и установите приложение.

По умолчанию исправление трассировки отфильтровывает сбои, которые могут считаться ожидаемыми. Например, приложения могут попытаться безусловно удалить файл без проверки его существования, игнорируя результат. Это имеет следствие, что некоторые непредвиденные сбои могут быть отфильтрованы, поэтому в приведенном выше примере мы будем выбирать получение всех сбоев из функций файловой системы. Это делается потому, что перед попыткой чтения из файла Config.txt происходит сбой с сообщением «файл не найден». Это сбой, который часто наблюдается и обычно не предполагается непредвиденным. На практике лучше всего начать фильтрацию только до непредвиденных сбоев, а затем вернуться ко всем сбоям, если есть проблема, которую по-прежнему невозможно определить.

По умолчанию выходные данные исправления трассировки отправляются в подключенный отладчик. В этом примере мы не будем подключать отладчик и используем программу DebugView из Sysinternals для просмотра ее выходных данных. После запуска приложения можно увидеть те же сбои, что и раньше, что указывает нам на те же исправления среды выполнения.

Отладка, расширение или создание исправления среды выполнения

Visual Studio можно использовать для отладки исправления среды выполнения, расширения среды выполнения или создания одной из них с нуля. Для успешного выполнения этих действий необходимо выполнить следующие действия.

По завершении решение будет выглядеть примерно так.

Рассмотрим каждый проект в этом примере.

Project Назначение
десктопаппликатионпаккаже этот проект основан на проекте упаковки Windows приложения и выводит пакет MSIX.
рунтимефикс Это проект библиотеки C++ Dynamic-Linked, который содержит одну или несколько функций замены, которые служат исправлением среды выполнения.
псфлаунчер Это пустой Project C++. Этот проект является местом для получения распространяемых файлов среды выполнения платформы поддержки пакетов. Он выводит исполняемый файл. Этот исполняемый файл является первым, который запускается при запуске решения.
винформсдесктопаппликатион Этот проект содержит исходный код для классического приложения.

Полный пример, содержащий все типы проектов, см. в разделе псфсампле.

Давайте рассмотрим шаги по созданию и настройке каждого из этих проектов в решении.

Создание решения пакета

Если у вас еще нет решения для классического приложения, создайте новое пустое решение в Visual Studio.

Вам также может потребоваться добавить любые проекты приложений, которые у вас есть.

Добавление проекта упаковки

если у вас еще нет Project упаковки Windows приложения, создайте его и добавьте в решение.

дополнительные сведения о проекте упаковки приложений Windows см. в статье упаковка приложения с помощью Visual Studio.

В Обозреватель решенийщелкните проект упаковки правой кнопкой мыши, выберите изменить, а затем добавьте в конец файла проекта:

Добавление проекта для исправления среды выполнения

Добавьте в решение проект библиотеки динамической компоновки (DLL) C++.

Щелкните правой кнопкой мыши этот проект и выберите пункт Свойства.

Щелкните значок параметров рядом с этим полем.

Найдите пакет NuGet ПСФ*, а затем установите его для этого проекта.

Если требуется выполнить отладку или расширение существующего исправления среды выполнения, добавьте файлы исправления среды выполнения, полученные с помощью инструкций, описанных в разделе Поиск исправления среды выполнения этого руководства.

Если вы собираетесь создать новое исправление, не добавляйте его в проект еще раз. Мы поможем вам добавить нужные файлы в этот проект позже. Сейчас мы продолжим настройку решения.

Добавление проекта, запускающего исполняемый файл запуска ПСФ

добавьте в решение пустой проект Project C++.

Добавьте пакет NuGet ПСФ в этот проект с помощью тех же руководств, которые описаны в предыдущем разделе.

Откройте страницы свойств для проекта и на странице Общие параметры задайте для свойства имя целевого объекта значение или в зависимости от архитектуры приложения.

Добавьте ссылку проекта в проект исправления среды выполнения в решении.

Щелкните ссылку правой кнопкой мыши, а затем в окне Свойства примените эти значения.

Свойство Значение
Копировать локально True
Копировать локальные вспомогательные сборки True
Выходные данные ссылочной сборки True
Компоновать зависимости библиотек False
Связывание входных данных зависимостей библиотеки False

Настройка проекта упаковки

В проекте упаковки щелкните правой кнопкой мыши папку Приложения и выберите Добавить ссылку.

Если у вас нет исходного кода приложения, просто выберите проект ПСФ Launcher. Мы покажем, как ссылаться на исполняемый файл при создании файла конфигурации.

В узле приложения щелкните правой кнопкой мыши приложение ПСФ Launcher и выберите пункт задать в качестве точки входа.

Добавьте файл с именем config.json в проект упаковки, а затем скопируйте и вставьте следующий текст JSON в файл. Задайте для свойства действие пакета значение содержимое.

Укажите значение для каждого ключа. Используйте эту таблицу в качестве справочника.

Array ключ Значение
веб-масштабированием; идентификатор Используйте значение Id атрибута Application элемента в манифесте пакета.
веб-масштабированием; исполняемый файл Относительный путь пакета к исполняемому файлу, который необходимо запустить. В большинстве случаев это значение можно получить из файла манифеста пакета, прежде чем изменять его. Это значение Executable атрибута Application элемента.
веб-масштабированием; WorkingDirectory Используемых Путь относительно пакета, используемый в качестве рабочего каталога запускаемого приложения. Если это значение не задано, операционная система использует каталог в System32 качестве рабочего каталога приложения.
процессы исполняемый файл В большинстве случаев это будет имя, указанное executable выше, с удаленным путем и расширением файла.
исправлений Файл DLL. Относительный путь пакета к библиотеке DLL адресной привязки для загрузки.
исправлений config Используемых Определяет, как ведет себя библиотека DLL адресной привязки. Точный формат этого значения зависит от способа исправления, так как каждая адресная привязка может интерпретировать этот «большой двоичный объект».

По завершении config.json файл будет выглядеть примерно так.

applications Ключи, processes и fixups являются массивами. Это означает, что можно использовать файл config. JSON для указания более чем одного DLL приложения, процесса и адресной привязки.

Отладка исправления среды выполнения

После настройки можно задать точки останова рядом с строками кода в коде приложения для настольных систем и в проекте исправления среды выполнения. Если у вас нет исходного кода для приложения, вы сможете устанавливать точки останова только рядом с строками кода в проекте исправления среды выполнения.

Поскольку отладка F5 запускает приложение, развертывая свободные файлы из пути к папке макета пакета, а не устанавливая из пакета. msix/. appx, папка макета обычно не имеет тех же ограничений безопасности, что и папка установленного пакета. В результате может быть невозможно воспроизвести ошибки отказа при доступе к пути пакета перед применением исправления среды выполнения.

Чтобы устранить эту ошибку, используйте развертывание пакета. msix/. appx вместо нажатия клавиши F5 для недостаточного развертывания файлов. чтобы создать файл пакета msix/. appx, используйте служебную программу программе makeappx из Windows SDK, как описано выше. либо в Visual Studio щелкните правой кнопкой мыши узел проекта приложения и выберите магазин — создать пакеты приложений.

другой проблемой с Visual Studio является отсутствие встроенной поддержки присоединения к любым дочерним процессам, запущенным отладчиком. это затрудняет отладку логики в пути запуска целевого приложения, который необходимо вручную подключить Visual Studio после запуска.

Чтобы устранить эту ошибку, используйте отладчик, который поддерживает присоединение дочернего процесса. Обратите внимание, что обычно невозможно присоединить JIT-отладчик к целевому приложению. Это связано с тем, что большинство методов JIT подразумевает запуск отладчика вместо целевого приложения с помощью раздела реестра Имажефиликсекутионоптионс. Это нарушает механизм дедемонстрации, используемый PSFLauncher.exe для внедрения FixupRuntime.dll в целевое приложение. WinDbg, который входит в средства отладки для Windowsи получен из Windows SDK, поддерживает присоединение дочернего процесса. Теперь он также поддерживает непосредственное Запуск и отладку приложения UWP.

В WinDbg командной строке включите дочернюю отладку и установите соответствующие точки останова.

(выполнение до запуска и переноса целевого приложения в отладчик)

(выполнить до загрузки библиотеки DLL адресной привязки)

Плмдебуг можно также использовать для подключения отладчика к приложению при запуске и также включено в средства отладки для Windows. Однако использование более сложно, чем прямая поддержка, предоставляемая WinDbg.

Поддержка

Есть вопросы? Попросите нас обратиться в конференцию по платформе поддержки пакетов на сайте технического сообщества MSIX.

Источник

FIX: Faulting Application Path error

Keeping your PC updated and clean is the key to running it for a very long time without any software issues.

However, constant file deletions, registry installations, and uninstallations and other operations of the sorts can eventually mess with your system’s integrity.

When that happens, you shouldn’t be surprised if you get an error message that starts with:

There are several reasons why an issue occurs, sometimes this may be caused by some files or components that are broken or missing on the system. For example, some users reported that they are encountering the following issue:

Faulting Application Path: C:WindowsSystem32svchost.exe

I am getting this critical event notification under security and maintenance, reliability monitor of my computer

Since error messages like this one are incredibly frequent, we’ve decided to create a step-by-step guide that will show you exactly what needs to be done in order to overcome them.

How do I fix Faulting Application Path errors?

1. Replace the faulty function with something else

In the example listed above, the issue can be caused by a faulty third-party antivirus program installation. In this case, the best course of action would be to uninstall the program and use Windows Defender instead.

On a more general note, finding out what process is faulty and replacing it with another built-in Windows alternative or a third-party program can fix the issue.

Additionally, uninstalling and reinstalling whatever program is causing the issue can also help.

2. Run a SFC

By following these steps, you should be able to run any process on your Windows PC without encountering any Faulting Application Path error messages.

Additionally, keeping your PC clean and following some simple rules will guarantee that this error will no longer appear in the future.

If you know of any other way to solve this problem, share it in the comments section below so that other users can try it, as well.

Restoro has been downloaded by 0 readers this month.

Источник

Читайте также:  с какими биржами работает тинькофф инвестиции
Сказочный портал