Script Function Library

Материал из archestra.info
Версия от 17:02, 20 ноября 2015; Vladimir Bazhin (обсуждение | вклад) (Импорт DLL библиотеки)

Перейти к: навигация, поиск

Работа с расширениями библиотеки

Последовательность разработки

  1. Разработать библиотеку, например в Visual Studio. NET.
  2. Импортировать библиотеку в IDE.
  3. Написать необходимый скрипт и задеплоить объект (лучше для деплоя использовать тестовый AppEngine - не основной)
  4. Отладить скрипт
  5. Если требуется обновить библиотеку (например, после расширения функционала), то:
    • раздеплоить объект(ы)
    • Сделать Shutdown AppEngine для выгрузки из памяти .NET функционала
    • Запустить AppEngine.
    • Повторить с шага 1


  • Application server will detect changes in the new dll only if you have re-compiled the new dll with a greater major release
  • Application Server определит изменения в DLL ТОЛЬКО если dll-ка была откомпилирована с версией большей, чем предыдущая

Комментарий из практики

Про выше описанный алгоритм:

Причём работает только с обязательным удалением dll на узле GR. Для этого надо закрыть и IDE, и SMC. Неудобно, мягко говоря.

1.	Раздеплоить объект
2.	Остановить энжн
3.	Закрыть всё
4.	Удалить dll из каталога ArchestrA
5.	Запустить IDE
6.	Импортнуть новую dll, с бОльшим главным номером версии
7.	Запустить энжн
8.	Задеплоить объект
9.	---
10.	Разработка dll
11.	Увеличение главного номера версии (может просто изменение? Может не обязательно главного? Не проверял пока)
12.	Компиляция
13.	Шагать к п.1


Бывает, что при попытке удаления dll с узла GR (узел IDE: у меня это один и тот же узел) ОС MS Windows говорит, что dll занята процессом GR (даже при закрытой IDE, при закрытой SMC).

Тогда надо открыть IDE и просто импортировать dll. Сразу после этого закрыть IDE и уже тогда удалять dll из папки – dll будет свободна.

Удаление DLL библиотеки

Если необходимо, можно в ручную удалить импортированную ранее библиотеку.

Для этого: необходимо удалить DLL файлы из каталога:

Program Files\ArchestrA\Framework\FileRepository\'name of galaxy'\Vendors\ArchestrA


Кроме это есть инструкция (Wonderware North): TechTip: Removing Custom .NET libraries from Industrial Application Server 3.0

Импорт DLL библиотеки

  1. В ArchestrA IDE, меню Galaxy->Import->Script Function Library.
  2. Выбрать файл содержащий библиотеку (допустимые типы файлов: .aaSLIB, .dll, .wdf, .tlb and .olb extension) и нажать открыть
  3. По завершении импортированные наборы классов/функций будут доступны в скриптах (и объектов и ArchestrA символов), в том числе для выбора через Script Function Library
    • Важно!!! При установке такого же набора библиотек повторно (но может быть другой версии) потребуются действия описанные в разделе Удаление библиотеки
  • Application server will detect changes in the new dll only if you have re-compiled the new dll with a greater major release
  • Application Server определит изменения в DLL ТОЛЬКО если dll-ка была откомпилирована с версией большей, чем предыдущая

Другие темы