Когда-то с седьмой версией провел такой эксперимент: скопировал свой екзешник в папку C:\Program Files\National Instruments\Shared\LabVIEW Run-Time\7.0, а затем всю папку Run-Time\7.0 на другой компьютер без , и екзешник запустился. На восьмой версии не проверял, но по идее должно работать.dimedrol писал(а):С инсталером все понятно: у меня версия 8,2, там рантайм по умолчанию галочка стоит на рантайме. не подскажите ли как ответ на самый первый вопрос:
"Подскажите, пожалуйста, как создать полноценное приложение *.exe, чтобы его можно было использовать на любой машине, даже на которой нет установленного labVIEW."
цель: создать ехе, который без установки запустится на любой машине, которая ранее о и его модулях ничего не знала. Просто скопировал, запустил - работает.
Как запустить приложение (*.exe) без установки Run-Time
-
- adviser
- Сообщения: 221
- Зарегистрирован: 18 май 2009, 10:50
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Москва
Re: Как создать полноценное приложение *.exe
-
- beginner
- Сообщения: 13
- Зарегистрирован: 02 мар 2010, 22:31
- Версия LabVIEW: 8.2
- Контактная информация:
Re: Как создать полноценное приложение *.exe
сегодня попробовал только с папкой resours на версии 8.2, тоже ничего не получилось(((
надо будет завтра на run-time попробовать
пробовал и с run-time, ругался на отсутствие niini32.dll, нашел таковую... потом просто заупускается и вылетает, не показывая даже окна. Судя по советам, надо искать именно 7 версию ...
надо будет завтра на run-time попробовать
пробовал и с run-time, ругался на отсутствие niini32.dll, нашел таковую... потом просто заупускается и вылетает, не показывая даже окна. Судя по советам, надо искать именно 7 версию ...
-
- beginner
- Сообщения: 10
- Зарегистрирован: 14 май 2012, 16:24
- Версия LabVIEW: 2010
- Контактная информация:
Re: Как создать полноценное приложение *.exe
Ну, ладно, статичное приложение создать не возможно.
Но что, даже нельзя в месте с приложением тащить RTE?
т. е. нет возможности создать мобильное приложение без инсталлера?
решение все еще не найдено?
Но что, даже нельзя в месте с приложением тащить RTE?
т. е. нет возможности создать мобильное приложение без инсталлера?
решение все еще не найдено?
-
- VIP
- Сообщения: 1339
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Как создать полноценное приложение *.exe
Официального решения нет (и уже, видимо, не будет). Единственный документированный способ для старших версий - ставить LabVIEW Run-Time. Там дело даже не в LabVIEW, а в MSVC. Там требуется рантайм от микрософт, а его нельзя просто скопировать в ту же папку, он должен быть установлен. Хотя теоретически можно в манифесте поковыряться - на досуге попробую.green520 писал(а):Ну, ладно, статичное приложение создать не возможно.
Но что, даже нельзя в месте с приложением тащить RTE?
т. е. нет возможности создать мобильное приложение без инсталлера?
решение все еще не найдено?
Последний раз редактировалось AndreyDmitriev 05 мар 2013, 03:10, всего редактировалось 1 раз.
-
- VIP
- Сообщения: 1339
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Как создать полноценное приложение *.exe
А ларчик довольно просто открывался. Надо добавить в ту же папку файлы msvcr90.dll и msvcp90.dll (требуется версия 9.0.21022.8 - можно взять из папки C:\Windows\winsxs) и приложить манифест microsoft.VC90.CRT.manifest вот с таким содержимым:AndreyDmitriev писал(а):Там дело даже не в LabVIEW, а в MSVC.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable/>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"
/>
<file name="msvcr90.dll" />
<file name="msvcp90.dll" />
</assembly>
Минимальный набор файлов для приложения на LV2012f1:
25.07.2012 16:30 14.001.288 lvrt.dll
25.07.2012 16:58 121.344 niCPULib.dll
25.07.2012 16:58 2.214.912 NIQtCore_2012.dll
25.07.2012 16:58 8.044.544 NIQtGui_2012.dll
25.07.2012 16:58 37.376 QtManager452_2012.dll
25.07.2012 16:58 72.323 tdtable.tdr
Для LV2010f4:
29.08.2011 15:59 14.037.088 lvrt.dll
05.04.2012 13:04 183.296 nicont.dll
29.08.2011 16:19 116.736 niCPULib.dll
29.08.2011 16:19 1.968.640 NIQtCore_2010.dll
29.08.2011 16:19 7.219.712 NIQtGui_2010.dll
29.08.2011 16:19 36.352 QtManager452_2010.dll
Плюс в папке English должны лежать lvapp.rsc и vidialogs.rsc
Если используются контролы из палитры Modern, то также требуется mesa.dll и папка models.
Понятно, что чем больше используется компонентов, тем больше файлов потребуется (ну, скажем, для математических функций lvanlys.dll, для других языков соответствующие ресурсы и т.д.). Ну и эти компоненты могут потребовать в свою очередь другие части, скажем для мат. функций может MKL потребоваться и т.д. В серьёзных проектах я бы не стал такой трюк использовать - если приложение "подхватит" вместо локальных файлов что-то из системной папки, то всё может рухнуть.
Я приложил примеры, которые проверил на практически голой WinXP SP3 (плюс я прошёлся по файлам упаковщиком - это не нарушило работоспособность) - попробуйте кому не лень на разных системах.
- Вложения
-
- MinApp2010.zip
- (11.22 МБ) 429 скачиваний
-
- MinApp2012.zip
- (11.05 МБ) 455 скачиваний
-
- beginner
- Сообщения: 48
- Зарегистрирован: 27 авг 2009, 15:07
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Как создать полноценное приложение *.exe
Скажите, Андрей, а для 2011 такого набора у вас нет?AndreyDmitriev писал(а):
А ларчик довольно просто открывался. Надо добавить в ту же папку файлы msvcr90.dll и msvcp90.dll (требуется версия 9.0.21022.8 - можно взять из папки C:\Windows\winsxs) и приложить манифест microsoft.VC90.CRT.manifest вот с таким содержимым:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable/>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"
/>
<file name="msvcr90.dll" />
<file name="msvcp90.dll" />
</assembly>
Минимальный набор файлов для приложения на LV2012f1:
25.07.2012 16:30 14.001.288 lvrt.dll
25.07.2012 16:58 121.344 niCPULib.dll
25.07.2012 16:58 2.214.912 NIQtCore_2012.dll
25.07.2012 16:58 8.044.544 NIQtGui_2012.dll
25.07.2012 16:58 37.376 QtManager452_2012.dll
25.07.2012 16:58 72.323 tdtable.tdr
Для LV2010f4:
29.08.2011 15:59 14.037.088 lvrt.dll
05.04.2012 13:04 183.296 nicont.dll
29.08.2011 16:19 116.736 niCPULib.dll
29.08.2011 16:19 1.968.640 NIQtCore_2010.dll
29.08.2011 16:19 7.219.712 NIQtGui_2010.dll
29.08.2011 16:19 36.352 QtManager452_2010.dll
Плюс в папке English должны лежать lvapp.rsc и vidialogs.rsc
Если используются контролы из палитры Modern, то также требуется mesa.dll и папка models.
Понятно, что чем больше используется компонентов, тем больше файлов потребуется (ну, скажем, для математических функций lvanlys.dll, для других языков соответствующие ресурсы и т.д.). Ну и эти компоненты могут потребовать в свою очередь другие части, скажем для мат. функций может MKL потребоваться и т.д. В серьёзных проектах я бы не стал такой трюк использовать - если приложение "подхватит" вместо локальных файлов что-то из системной папки, то всё может рухнуть.
Я приложил примеры, которые проверил на практически голой WinXP SP3 (плюс я прошёлся по файлам упаковщиком - это не нарушило работоспособность) - попробуйте кому не лень на разных системах.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Как создать полноценное приложение *.exe
gonik, а файлы с тем же именами, что выше, не подходят? Приложение падает?
-
- VIP
- Сообщения: 1339
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Как создать полноценное приложение *.exe
Да там всё по аналогии с 2010. У вас же есть все необходимые файлы, чтобы выполнить упражнение самостоятельно - msvcp90.dll, msvcr90.dll и манифест берутся из архивов выше, а остальное из C:\Program Files (x86)\National Instruments\Shared\LabVIEW Run-Time\2011.gonik писал(а): Скажите, Андрей, а для 2011 такого набора у вас нет?
Получится примерно вот что: Очевидно, что MSVC рантайм будет подходить и ко всем следующим версиям до тех пор, пока NI не перейдёт на следующую версию компилятора, а файлы NI LabVIEW Run-Time должны соответствовать версии LabVIEW, в котором генерялось приложение. Здесь нет обратной совместимости - для LV2011 рантайм от 2012 не подходит.
- Вложения
-
- MiniApp2011.zip
- (11.43 МБ) 414 скачиваний
-
- beginner
- Сообщения: 48
- Зарегистрирован: 27 авг 2009, 15:07
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Как создать полноценное приложение *.exe
С пакетом 2012 пишет, что установщик слишком нов, а с пакетом 2010, что слишком стар.dadreamer писал(а):gonik, а файлы с тем же именами, что выше, не подходят? Приложение падает?
Я нашел данные для аналогичного пакета 2011. Пишет ошибку.
http://yadi.sk/d/Sw1oo28u57gcP
-
- VIP
- Сообщения: 1339
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Как создать полноценное приложение *.exe
Судя по этой ошибке, ваше приложение вообще рантайм не видит. Это с набором выше такая штука выскакивает, или вы сами собрали? Либо в приложении используется что-то, что требует дополнительных файлов из рантайма. Вообще для сложных приложений лучше использовать документированные способы установки. Даже если приложение внешне заводится без проблем, там надо тщательно проверять функциональность на чистой машине, чтобы быть уверенным, что всё работает как надо.gonik писал(а):С пакетом 2012 пишет, что установщик слишком нов, а с пакетом 2010, что слишком стар.dadreamer писал(а):gonik, а файлы с тем же именами, что выше, не подходят? Приложение падает?
Я нашел данные для аналогичного пакета 2011. Пишет ошибку.
http://yadi.sk/d/Sw1oo28u57gcP
-
- beginner
- Сообщения: 48
- Зарегистрирован: 27 авг 2009, 15:07
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Как создать полноценное приложение *.exe
И еще есть кое-что...
Сам не понимаю, как это возможно, но 3 недели назад без всяких танцев с бубнами откомпилировал приложение, которое не требует никаких рантаймов лабвью.
А сейчас даже при компиляции приложения, состоящего только из одной строки, требует этот рантайм
Сам не понимаю, как это возможно, но 3 недели назад без всяких танцев с бубнами откомпилировал приложение, которое не требует никаких рантаймов лабвью.
А сейчас даже при компиляции приложения, состоящего только из одной строки, требует этот рантайм
-
- beginner
- Сообщения: 48
- Зарегистрирован: 27 авг 2009, 15:07
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Как создать полноценное приложение *.exe
Ошибка выскакивает, когда собрал сам пакет для 2011.AndreyDmitriev писал(а):Судя по этой ошибке, ваше приложение вообще рантайм не видит. Это с набором выше такая штука выскакивает, или вы сами собрали? Либо в приложении используется что-то, что требует дополнительных файлов из рантайма. Вообще для сложных приложений лучше использовать документированные способы установки. Даже если приложение внешне заводится без проблем, там надо тщательно проверять функциональность на чистой машине, чтобы быть уверенным, что всё работает как надо.
Точно такая же ошибка выскакивает, когда совсем нет никаких дополнительных файлов. Только экзэшник один.
Раньше компилировал действительно емкие программы, но сейчас даже одну! строку без каких-либо функций не могу скомпилировать.
Вечером переставлю лабвью. Вот думаю, какой ставить. 11-й или уже 12?
Меня обеспечили 12-ой версией, но пока не пользовался. 11-ая вполне устраивала.
-
- VIP
- Сообщения: 1339
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: Как создать полноценное приложение *.exe
Так не бывает по определению. Рантайм требуется всегда, независимо от объёма приложения. Три недели назад вы запускали приложение на системе, где рантайм уже стоял. Видимо вы его снесли напрочь. Переустанавливать-то пробовали?gonik писал(а):И еще есть кое-что...
Сам не понимаю, как это возможно, но 3 недели назад без всяких танцев с бубнами откомпилировал приложение, которое не требует никаких рантаймов лабвью.
А сейчас даже при компиляции приложения, состоящего только из одной строки, требует этот рантайм
http://joule.ni.com/nidu/cds/view/p/id/2534/lang/en
Что касается 2012 - таки лучше на неё перейти, ибо 2011 глючит до безобразия (но к ошибке выше её глючность никакого отношения не имеет - там у вас в другом проблема)
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Как создать полноценное приложение *.exe
gonik
Проверьте зависимости вашего экзешника с помощью Dependency Walker или утилиты Lister в Total Commander. Она покажет список библиотек, требующихся для работы вашего приложения.
Проверьте зависимости вашего экзешника с помощью Dependency Walker или утилиты Lister в Total Commander. Она покажет список библиотек, требующихся для работы вашего приложения.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение