Как запустить приложение (*.exe) без установки Run-Time

Создание приложений, библиотек, инсталляторов
Аватара пользователя
toshas
assistant
assistant
Сообщения: 105
Зарегистрирован: 05 апр 2009, 22:45
Версия LabVIEW: 9.0
Благодарил (а): 13 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Как запустить приложение (*.exe) без установки Run-Time

Сообщение toshas »

Немного продвинолось дело, из всего Run-Time обязательными к установке для нормальной работы приложения являются три компонента:
LabVIEW_Runtime_Engine_2014
VC2010MSMs
ActiveX_Container

RTE.PNG


Без последнего приложение уже становиться исполняемым, но .NET контейнер все равно не отображается и появляется ошибка 1172 для Invoke Node.

APP2_1172.PNG
Аватара пользователя
toshas
assistant
assistant
Сообщения: 105
Зарегистрирован: 05 апр 2009, 22:45
Версия LabVIEW: 9.0
Благодарил (а): 13 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Как запустить приложение (*.exe) без установки Run-Time

Сообщение toshas »

Получилось!!
Но работает с оговоркой.
LabVIEW_Runtime_Engine_2014 добавляет необходимые

Код: Выделить всё

DNCInterface140.dll
NationalInstruments.LabVIEW140.dll

VC2010MSMs добавляет vc runtime библиотеки

Код: Выделить всё

atl100.dll
mfc100.dll
mfc100chs.dll
mfc100cht.dll
mfc100deu.dll
mfc100enu.dll
mfc100esn.dll
mfc100fra.dll
mfc100ita.dll
mfc100jpn.dll
mfc100kor.dll
mfc100rus.dll
mfc100u.dll
mfcm100.dll
mfcm100u.dll
msvcp100.dll
vcomp100.dll
msvcr100.dll

ActiveX_Container добавляет одну dll

Код: Выделить всё

nicont.dll

но с ней как раз проблема, приложение работает и подгружает .NET контейнер только если эта dll зарегистрирована (regsvr32 nicont.dll),
т.е. в реестре есть класс {7E985DEE-3D20-11D2-A3EA-006008CA119A} и путь к nicont.dll

Код: Выделить всё

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\CLSID\{7E985DEE-3D20-11D2-A3EA-006008CA119A}]
@="NIConAppManager Class"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WOW6432Node\CLSID\{7E985DEE-3D20-11D2-A3EA-006008CA119A}\InprocServer32]
@="C:\\PROGRA~2\\NATION~1\\Shared\\nicont.dll"
"ThreadingModel"="Apartment"

Это приводит к необходимости запуска приложения через скрипт (reg.bat/ureg.bat) в котором эта регистрация добавлена до запуска самого приложения и исполнение обязательно с правами администратора (получилось запрашивать автоматически, но все равно это не лучшее решение).
Есть ли возможность от этого избавиться ? Можно ли обойтись манифестом рядом ? Попробовал по этой статье, но ничего не получилось

https://developex.com/blog/using-com-wi ... istration/
https://forums.ni.com/t5/LabVIEW/Callin ... d-p/802537
https://knowledge.ni.com/KnowledgeArtic ... AW&l=en-US
Вложения
RTE_dlls.PNG
RTE_dlls.PNG (4.56 КБ) 693 просмотра
MXM_dlls.PNG
MXM_dlls.PNG (9.72 КБ) 693 просмотра
ACX_dlls.PNG
ACX_dlls.PNG (1.49 КБ) 693 просмотра
scripts.zip
(1.54 КБ) 31 скачивание
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1408
Зарегистрирован: 03 фев 2010, 00:42
Награды: 8
Версия LabVIEW: 6.1 - 2025
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 77 раз
Контактная информация:

Re: Как запустить приложение (*.exe) без установки Run-Time

Сообщение AndreyDmitriev »

toshas писал(а): 08 фев 2024, 06:23 Это точно не проблема библиотеки WebView2 самой по себе, вот еще один пример интеграции .NET контейнера с тем же результатом: IDE - ok, APP - не работает.
О, а вот этот ваш пример работает у меня как в IDE, так и в приложении
Изображение
А у вас он только когда вы соибраете LabVIEW рантайм в одну папку с приложением не работает на голой ОС (так я не проверял) или на той же машие, где собиралось тоже?
Аватара пользователя
toshas
assistant
assistant
Сообщения: 105
Зарегистрирован: 05 апр 2009, 22:45
Версия LabVIEW: 9.0
Благодарил (а): 13 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Как запустить приложение (*.exe) без установки Run-Time

Сообщение toshas »

Да, exe не работает только на чистой ОС, на той где есть IDE все ок в обоих вариантах (и vi и exe).
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Создание приложений»