.NET error: The specified .NET Class is not available in LV

ActiveX, .NET, DLL
Ответить
Аватара пользователя
inmaze
user
user
Сообщения: 75
Зарегистрирован: 21 сен 2011, 10:43
Версия LabVIEW: 2011
Откуда: Dresden/Germany
Контактная информация:

.NET error: The specified .NET Class is not available in LV

Сообщение inmaze »

Доброго времени суток.
Два дня борюсь с очень странной ошибкой, если у кого будут идеи - здорово.

Описание проблемы:
Так как я занят в области Wide Field Kerr Microscopy, интенсивно используем технику differential image technique (например вычетаем из текущей картинки - изображение образца в магнитном насыщении) и поэтому чувствительны ко всякого рода смещениям образца. Для компенсации смещений, придумали использовать3D пьезо столик с контроллером NV40/3 от местной компании piezosystemJena.
Все работает замечательно, картинки получаются просто отменного качества о котором раньше даже не могли мечтать.
Установил пару систем в нашей лабе + еще парочку ребятам по всему миру насторил. В программном плане неустранимых проблем не имел.

На выходных начал готовить новую систему (микроскоп + ПО) для ребят из Китая: попросили не рантайм, а полную версию.
Установил сразу LV2016 (сам на 2014 сижу). Все (камера, темпреатурный контроллер...) завелось а модуль стабилизации выдал ошибку: The specified .NET Class is not available in LV.
Начал копать и до сих пор не разобрался.

1. Попробовал установить LV2015, LV2014.
2. Пробовал сносить полностью все, включая .NET Framework и устанавливать разные версии и фреймворка и ЛВ.
Ничего не помагает.

На сайте производителя есть драйвера для сом-порта и проект с библиотекой и примерами:
https://www.piezosystem.com/products/do ... _programs/ (пакет software Labview® Vers11 для NV40/3 and NV40/3CLE - Analog 3-Channel Piezo Controller)
Если скачать, открыть проект, там есть библиотека piezojena NV40Multi.lvlib + примеры программ в папке examples. Если открывать любой из примеров через проект первый раз то открывает с ворнингами, что .NET assembly ожидался в другом месте. Указываешь путь к Piezojena.Protocols.Nv40Multi.dll и запускаеш пример - все работает - с прибором общается.
Закрываешь проект, идешь в папку examples, открываешь например piezojena NV40Multi Positioning- запускашь и получаешь ошибку (смотри IMG Err1).
Если залезть в конструктор класса в Initialize.vi, то библиотека Piezojena.Protocols.Nv40Multi.dll не отображается в списке, а при ручном добавлении выдает ошибку (смотри IMG Err2).

Так как библиотека работает только из своего проекта, восстановить работоспособность моего собственого не получилось.
Если создать новый проект и просто добавить туда библиотеку - то не работает. Получить работоспособность в новом проекте получилось небольшим колдовством: открываешь 2 проекта, запускаешь виай в рабочем, и видишь, что .NET Assembly добавляется в память (в меню проекта: View>>>NEt assemblies in Memory). Затем открываешь только что созданный проект с добавленными библитеками и открываешь такой же виай. Выключаешь первый, запускаешь второй - второй теперь тоже работает.
Перенести работоспобность в мой проект таким методом не удалось.

Кто что может посоветовать?

Если есть интерес: могу в личку скинуть параметры для удаленного доступа через Teamviewer.

С уважением,
Иван.
Вложения
IMG Err1
IMG Err1
IMG Err2
IMG Err2
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: .NET error: The specified .NET Class is not available in

Сообщение Artem.spb »

рецепты пробовали?
Аватара пользователя
inmaze
user
user
Сообщения: 75
Зарегистрирован: 21 сен 2011, 10:43
Версия LabVIEW: 2011
Откуда: Dresden/Germany
Контактная информация:

Re: .NET error: The specified .NET Class is not available in

Сообщение inmaze »

Artem.spb писал(а):рецепты пробовали?
Да, я видел эту страничку, даже попробовал конфиг файл сделать и в папку к лабвью сохранить, но ничго не изменилось.
Кроме всего прочего: это должно работать только для проектов (Please note it is suggested to use a LabVIEW project, rather than a stand-alone VI, when using .NET Assemblies.) и для remote assemblies (To grant assemblies from remote sources full trust, you need to add a token to the .NET configuration file).

Но черт подери, вот сторчку "Tip: In Windows 7 or later, you also can right-click the assembly and click Unblock on the General tab to grant an assembly full trust." я не заметил.
Попробовал в винде так сделать (см. Картинку) и все заработало.

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

Спасибо огромное за привлечение внимания, Artem.spb.
Вложения
Trust problem.png
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приложениями»