Перейти к основному содержимому

Проект Visual Studio

Описание.​

Экшен доступен начиная с версии ZennoDroid 2.6.1.0.

Экшен Проект Visual Studio позволяет использовать в проекте ZennoDroid проект, созданный в Microsoft Visual Studio. Это открывает неограниченные возможности для написания и отладки кода, а также для подключения внешних библиотек.

В отличие от кубика C# код, где код хранится в самом проекте, здесь код живёт в обычном решении Visual Studio: с классами, наследованием, NuGet-пакетами, точками останова и полноценной отладкой.

Где можно применить:​

  • Удобная интеграция сторонних библиотек и применение их в коде.
  • Создание собственных библиотек для многократного использования в разных проектах.
  • Отладка кода в Visual Studio с доступом к устройству и проекту.

Как добавить в проект?​

Через контекстное меню: Добавить действие → Свой код → Проект Visual Studio.


Как работать с экшеном?​

Кубик может работать в двух режимах: с решением Visual Studio или с уже собранной dll.

Использовать решение Visual Studio.​

Режим «Использовать решение Visual Studio»

  1. Выбор режима работы кубика.
  2. Путь к решению, в котором находится проект.
  3. Проект, который будет запускаться при выполнении кубика.
  4. Конфигурация проекта.
  5. Флаг объединения выходной dll и зависимостей в один файл с помощью ILRepack.
  6. Кнопка перехода к режиму Использовать Dll.
  7. Кнопка Подключиться к Visual Studio.
  8. Кнопка Создать новый проект Visual Studio.

Использовать Dll.​

Режим «Использовать Dll»

  1. Выбор режима работы кубика.
  2. Путь к dll, которая будет запускаться при выполнении кубика.

Создание проекта и подключение к Visual Studio.​

Что должно быть установлено.
  • Visual Studio 2019, 2022 или 2026. Бесплатную версию Community можно скачать на официальном сайте. Если установлено несколько версий, используется самая новая.
  • Пакет разработчика для .NET Framework 4.6.2 — конечной платформы проекта (Download .NET SDKs for Visual Studio).
  1. Добавьте экшен и выберите режим Использовать решение Visual Studio.
  2. Нажмите кнопку Создать новый проект Visual Studio (1).
    Кнопки создания и подключения
Если проект уже создан, эти шаги можно пропустить.

Укажите решение, проект и конфигурацию в свойствах кубика и нажмите Подключиться к Visual Studio (2).

  1. В открывшемся окне заполните название проекта, расположение и название решения, затем нажмите ОК.
    Создание проекта Visual Studio
  2. Дождитесь, пока ZennoDroid создаст решение и подключится к Visual Studio.

Подключение обеспечивает взаимодействие между ProjectMaker и Visual Studio: Окно устройства переносится в Visual Studio, поэтому код можно отлаживать с доступом к устройству и проекту. В ProjectMaker на месте окна появляется надпись Браузер находится в решении Visual Studio со ссылкой Показать браузер здесь, а на панели инструментов окна в Visual Studio есть кнопка Return to ProjectMaker — и то, и другое возвращает окно обратно.

Если окно устройства не открылось в Visual Studio автоматически, его можно вызвать: Вид → Другие окна → ZennoDroidToolWindow.

Для подключения нужно расширение ZennoDroid для Visual Studio.

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

Пункта меню ZennoDroidToolWindow нет?

Значит расширение не установлено или отключено. В Visual Studio откройте Расширения → Управление расширениями, перейдите в раздел Установленные и проверьте состояние расширения ZennoDroid VisualStudio Extension. Если его нет в списке, перезапустите ProjectMaker и подключитесь к Visual Studio ещё раз. Если проблема сохранится, обратитесь в техническую поддержку.


Структура проекта.​

Чтобы проект можно было использовать в экшене, он должен:

  • содержать ссылки на библиотеки ZennoDroid: Global.dll, ZennoLab.CommandCenter.dll, ZennoLab.Emulation.dll, ZennoLab.InterfacesLibrary.dll, ZennoLab.Macros.dll и ZennoDroid.Interface.dll. Они находятся в папке установленного ZennoDroid — путь к ней шаблон берёт из переменной окружения ZennoDroidDllPath, которая выставляется при запуске ProjectMaker или ZennoDroid;
  • содержать класс, реализующий интерфейс IZennoExternalCode. При выполнении кубика будет вызван метод public int Execute(Instance instance, IZennoPosterProjectModel project), который должен вернуть 0 при успехе и любое другое значение при ошибке.

Проект, созданный из ProjectMaker, уже соответствует этим требованиям. Он содержит один файл Program.cs с готовой реализацией метода Execute:

public class Program : IZennoExternalCode
{
public int Execute(Instance instance, IZennoPosterProjectModel project)
{
// API устройства ZennoDroid
IDroidInstanceAPI droid = instance.DroidInstance;

int executionResult = 0;

return executionResult;
}
}

Объекты instance и project работают так же, как в кубике C# код: через instance.DroidInstance доступен API устройства, а через project — переменные и настройки проекта.

Для отладки кода воспользуйтесь стандартной кнопкой Пуск в Visual Studio.
Кнопка «Пуск»

Запись действий устройства в код Visual Studio не ведётся.

Записывайте проект в ProjectMaker как обычно, а в Visual Studio пишите код руками.


Использование dll.​

В режиме «Использовать Dll» установленная Visual Studio не нужна.

Поэтому этот режим удобен для переноса готового проекта между компьютерами. Нужно только обеспечить доступность требуемых dll на каждом из них — например, скопировать их в папку проекта.

После завершения разработки в Visual Studio можно быстро перейти к прямому использованию выходной dll — для этого нажмите кнопку Использовать как dll. Откроется окно, в котором выбираются нужные действия.
Окно «Использовать как dll»

  1. Сборка решения (обязательный шаг).
  2. Объединение выходной dll и библиотек в один файл с помощью ILRepack. Позволяет уменьшить количество файлов, которые нужно переносить с проектом.
  3. Копирование dll по указанному пути. По умолчанию используется макрос папки проекта.
  4. Переключение кубика в режим Использовать как dll с установкой пути к dll.
  5. Показ собранной dll в Проводнике.
Режим можно переключить и вручную.

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


Возможные ошибки и способы их устранения.​

Project Target Framework Not Installed.​

Не установлена конечная платформа проекта

Не установлен набор разработчика для .NET Framework 4.6.2. Его нужно скачать с официального сайта и установить: Download .NET SDKs for Visual Studio.


Call was rejected by callee (RPC_E_CALL_REJECTED).​

Ошибка подключения к Visual Studio

Visual Studio отклоняет запросы на взаимодействие со стороны ProjectMaker. Чаще всего это происходит, когда в Visual Studio нужно совершить какие-либо действия — например, появилось диалоговое окно. Переключитесь в Visual Studio, выполните необходимые действия, а затем подключитесь к ней ещё раз. Если ошибка сохранилась, перезапустите Visual Studio, а если и это не помогло — обратитесь в техническую поддержку.


После подключения к Visual Studio некорректно работает рендеринг свойств кубиков.​

Обратите внимание, что при клике на разные кубики или на пустое место диаграммы свойства кубика корректно не обновляются.
Некорректный рендеринг свойств

Для устранения проблемы проверьте настройки Visual Studio.

Русская версияАнглийская версия
Средства → Параметры… → ОбщиеTools → Options… → General

Подробное описание этой настройки: Поддержка Per-Monitor для расширений Visual Studio.

Если опция недоступна, обновите Windows и Visual Studio либо воспользуйтесь инструкцией по установке ключа в реестре.


Полезные ссылки.​