Страница 1 из 1

Сохранение с иерархией

Добавлено: 13 апр 2019, 22:26
IvanLis
Подскажите, если кто сталкивался с подобным.

Мне необходимо сохранить VI со всеми SubVI, которые она включает, т.е. всю иерархию.
Делаю Save As.., выбираю пункт Duplicate hierarchy to new location
И ву а ля ... в указанной папке оказывается сохранены не все SubVI :cry:
Часть SubVI я перетянул из другого проекта и именно они не сохранились.

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

Возможно кто-то знает, как LV вообще отличает "родные" SubVI от "инвазивных"?
Может там есть какие-то флаги или атрибуты у файла, которые достаточно установить, чтобы данные SubVI начали сохраняться вместе с VI.
Сам я найти ничего подобного не смог :dntknw:

Re: Сохранение с иерархией

Добавлено: 14 апр 2019, 19:56
Kosist
Попробуйте создать новый проект, а в него добавить виайку которую хотите сохранить со всеми сабвиайками. А затем, сохраните проект или как Save As, или в предыдущую версию (второй вариант точно должен работать, т.к. :labview: даже виайки с vi.lib и instr.lib будет "запихать" в новую локацию).

Re: Сохранение с иерархией

Добавлено: 14 апр 2019, 22:12
IvanLis
Kosist писал(а):Попробуйте создать новый проект, а в него добавить виайку которую хотите сохранить со всеми сабвиайками. А затем, сохраните проект или как Save As, или в предыдущую версию (второй вариант точно должен работать, т.к. :labview: даже виайки с vi.lib и instr.lib будет "запихать" в новую локацию).
Нужно было мне полностью задачу описать.
У меня есть проект, в котором много всего.
Мне нужно передать только одну VI - часть программы.
Для того, что бы людей не заваливать парой сотен SubVI я и хотел вычленить только необходимое.

А как Вы предлагаете, мне нужно вручную отследить все зависимости и пересобрать проект заново, только с нужными SubVI.

Re: Сохранение с иерархией

Добавлено: 15 апр 2019, 08:58
Kosist
IvanLis писал(а): А как Вы предлагаете, мне нужно вручную отследить все зависимости и пересобрать проект заново, только с нужными SubVI.
Нет - Вы просто добавите в новый проект одну нужную виайку; а :labview: все зависимости добавит в dependencies.
виайку которую хотите сохранить со всеми сабвиайками
- я не имел ввиду, что нужно добавлять сабвиайки в проект; пардон за формулировку :dntknw:

Re: Сохранение с иерархией

Добавлено: 15 апр 2019, 10:39
ladik
Мы для подобных задач делаем Build Specification -> Source Distribution. Имеется Tree.vi, в котором лежат все VI верхнего уровня, которые нужно "расшарить". Во вкладке Source Files (Build Specification) указываем этот VI, тип билда папка или .llb. В итоге на выходе получаем папку/либу со всеми зависимостями Tree.vi. К файлам зависимостей в таком случае относятся все subVI, которые также должны быть в проекте. Ну и дерево Dependencies должно быть чистым, либо иметь только системные зависимости, например vi.lib.

Re: Сохранение с иерархией

Добавлено: 15 апр 2019, 15:12
Borjomy_1
Для полностью рабочего проекта "Duplicate hierarchy to new location" полностью справляется. Однако, если есть VI, которые используются в разных проектах, жди проблем. Источник проблемы в том, что каждая VI скомпилирована (и имеет зависимости в текущем проекте). Но! При использовании ее в другом проекте, похоже, линковка динамическая. Мало открыть внешнюю VI и сохранить, надо ее еще и перекомпилировать (Ctrl+кнопка Run) и все входящие в нее VI. Либо Mass Compile (хотя и он в нижеприведенном случае не помог).
У меня был запущенный случай с проектом, когда из 2013 надо было вернуться на 2012, но т.к. 2013 не было, пришлось делать это через 2017. А он все зависимости не мог построить. В результате все запускается и работает, но сохранение проекта в 2012 версию повисает. Пришлось сохранять головную VI, иерархия которой перенеслась частично, и по-файлово через Hierarhy делать сохранение недостающего.