iikoFront API SDK

Отладка

При загрузке приложение iikoFront выполняет поиск плагинов и для каждого из них запускает процесс-контейнер Resto.Front.Api.Host.exe, в контексте которого плагин и будет работать. Для удобства отладки предусмотрена возможность запускать данный процесс прямо из среды разработки, для этого в параметрах отладки проекта плагина необходимо указать хост-процесс Resto.Front.Api.Host.exe как внешнюю программу и передать следующие аргументы командной строки:

Далее достаточно один раз запустить приложение iikoFront (не устанавливая плагин в папку Plugins), и можно будет многократно запускать и останавливать плагин прямо из среды разработки (F5 / Shift+F5 в Visual Studio, Alt-F5 в Rider), не перезапуская iikoFront. Отладчик будет подключаться автоматически, соответственно, будут работать breakpoints, а также отладка будет прерываться при возникновении исключений (в Visual Studio/Rider можно настроить, для каких типов исключений надо или не надо прерывать отладку). Записи в лог (PluginContext.Log) будут дублироваться в консольном окне, если оно не скрыто ключом --nowindow, и в окне Output (Ctrl+Alt+O), если подключен отладчик.

Для отладки плагина таким способом необходима лицензия разработчика плагинов.

Visual Studio

Classic .csproj

Пример заполнения полей на вкладке Debug для проекта в старом формате:

SDK-style .csproj

Для проектов нового формата параметры отладки переехали в отдельный файл launchsettings.json, который можно создавать/редактировать как вручную, так и через UI: в свойствах проекта Debug → General → Open debug launch profiles UI → Create a new profile → Executable. Пример содержимого launchsettings.json:

{
  "profiles": {
    "Resto.Front.Api.SamplePlugin": {
      "commandName": "Executable",
      "executablePath": "C:\\Program Files\\iiko\\iikoRMS\\Front.Net\\Resto.Front.Api.Host.exe",
      "commandLineArgs": "/a=\"C:\\Projects\\Front.Api Sdk\\Resto.Front.Api.SamplePlugin\\bin\\Debug\\Resto.Front.Api.SamplePlugin.dll\" /c=Resto.Front.Api.SamplePlugin.SamplePlugin /m=21005108 /l=\"C:\\Projects\\Front.Api Sdk\\Logs\\sample-plugin.log\""
    }
  }
}

Примечание для .NET Standard

На данный момент в Visual Studio есть баг, который не позволяет отлаживать плагин под .NET Standard, запуская его через процесс-контейнер Resto.Front.Api.Host.exe, который под .NET Framework.

Варианты решения:

Rider

JetBrains Rider как задать собственную настройку Debug Configurations с полями Exe path и Program arguments, так и использовать совместимый с Visual Studio формат launchsettings.json.

Альтернативные варианты

Если лицензии разработчика плагинов нет, придётся устанавливать плагин в папку Plugins, чтобы приложение iikoFront запускало его штатным способом, а при каждом изменении плагина приложение придётся останавливать и запускать снова. При этом можно свести неудобства к минимуму следующим образом: