Ru-Board.club
← Вернуться в раздел «Программы»

» VMware ThinApp (formerly Thinstall) часть 4

Автор: Ciber SLasH
Дата сообщения: 13.07.2016 22:53

Цитата:
C OptimizeFor=Disk получилось немногим больше 200 мб, уже лучше, но все равно многовато в сравнении с теми сборками...

Это гадание на кофейной гуще. Выкладывайте проект на какую-нибудь файлосвалку и ссылку сюда. Будем посмотреть...
Автор: oplrox
Дата сообщения: 14.07.2016 12:58

Цитата:
Будем посмотреть...

Было бы очень неплохо, вот ссылка: NET Framework 4 (Thinapp 4.7 project)
Автор: dinis124
Дата сообщения: 14.07.2016 17:24
oplrox

Скорее всего дело не только в параметрах сжатия (разные версии ThinApp пожмут тоже по разному) но и в индивидуальных особенностях сборки от двух разных авторов.
Я о том, что нет четко прописанных правил что именно нужно удалить при инсталляции NET Framework чтобы собранный плагин был полностью рабочим. Конкретнее могут пояснить сами авторы сборок.
Автор: oplrox
Дата сообщения: 15.07.2016 10:06
dinis124, да там вобщем кроме dll-ок и манифестов почти ничего нет. Возможно Ciber SLasH что-то скажет.
Автор: 526549
Дата сообщения: 18.07.2016 09:29
Здравствуйте. Есть одна игра, (в данном случае - проект, чтобы весило меньше)
Дело в том, что структура игры - один exe файл и несколько папок, а в них папки, в папках - папки.
Движок игры не защищён и поддерживает обратный инжиниринг. Тоесть можно открыть редактором файлики, править всё, что хочешь.
Так же игра сохраняет сейвы в папку Save рядом с собой. Game.exe при первом сохранении создаёт папку Save, а там уже файлики Save001.rvdata2, Save002.rvdata2 и т.д.

Загорелся идеей закрыть её от редактирования. Игра весит 30 мб.
Я сначала пожал ее через Enigma VirtualBox (да и Protector). Получилось то что нужно - все папки кроме Save я загнал в один exe, а сейвы кидаись в неё. Но Enigma хоть и заявляют о компресси, но файл становится еще больше (38 мб). ThinApp сжимает очень хорошо, особенно с указанной оптимизацией для диска, а не Ram (10 мб).
Но дело в том, что игра лезет в реестр, проверяет версию Windows, наличие Directx - ну и прочее. Сплошное чтение параметров, а потому при запуске уже пожатой игры создаётся куча файлов Registry*, которые нежелательны.

Можно ли как то настроить package.ini так, чтобы и реестр и диск был полностью доступен для проекта игры, но при этом всё зажать в один файл?
Автор: AVanti 473
Дата сообщения: 18.07.2016 09:58
526549

Цитата:
создаётся куча файлов Registry*, которые нежелательны


Они в любом случае всегда будут создаваться для любой портабельной программы, собранной в ThinApp. Другой вопрос, что они создаются в песочнице, которая по умолчанию находится в пользовательском AppData, папка в подкаталоге Thinstall. Чтобы папка песочницы создавалась рядом с EXE-файлом, нужно в Package.ini, в секцию [BuildOptions] внести параметр:
SandboxPath=.
Автор: oplrox
Дата сообщения: 18.07.2016 10:21
526549

Цитата:
Можно ли как то настроить package.ini так, чтобы и реестр и диск был полностью доступен для проекта игры, но при этом всё зажать в один файл?

Непонятно зачем пережимать протектором, если после Thinapp итак получится один файл.
Доступность реестра и диска реальной системы зависит от заданного типа изоляции в параметрах проекта (package.ini), в FAQ Thinapp от Astra (часть 2-->Q14-->Варианты изоляции), там же есть и примеры.
Автор: Proshaa
Дата сообщения: 18.07.2016 12:20
526549
вы сами-то поняли, чего хотите и зачем это нужно?
Автор: dinis124
Дата сообщения: 18.07.2016 14:31
526549

Ну так и в чем проблема? Ещё раз откройте программу Enigma VirtualBox вкладка Registry там не тупо для красоты и визуальной функциональности. А так же можно глянуть справку по разделам и на худой конец написать Владимиру Сухову, он всегда за общение и помощь.
Автор: Aleksandr N
Дата сообщения: 17.08.2016 09:14
Знающие люди подскажите. Сделал для себя портативку одной программы, называется Компас, но при закрытии самой программы сам запускающий процесс висит в памяти. Может что-то в скрипте нужно прописать чтобы при закрытии убивались указанные процессы и сам запускающий файл? Спасибо.

Добавлено:
Прочитал про использование скриптов для завершения дочерних процессов. Но не понял куда именно положить этот скрипт, в какую парку и что нужно сделать чтобы этот скрипт выполнился при закрытии...
Автор: Proshaa
Дата сообщения: 17.08.2016 10:54
Aleksandr N
почитайте FAQ от Astra55.
скрипт просто кладёте в корень проекта, рядом с Package.ini

но лучше попробовать "победить" штатными средствами. поменяйте версию ThinApp, причём - не обязательно на более новую. зачастую этого бывает достаточно.
пропишите в Package.ini строку
Код: ProcessExternalNameBehavior=Original
Автор: Aleksandr N
Дата сообщения: 17.08.2016 11:21
Proshaa

Цитата:
скрипт просто кладёте в корень проекта, рядом с Package.ini

Ага, понял. Насчёт версии наверное не получится. Собираю на Хрюшке портативкой. А она всё время ругается на на отсутствующий файл где-то с названием между {}. Читал про это мельком, но установил последнюю стационарную версию и ей собрал. Хотя на паре моих сборок проблем с процессами не было.

Цитата:
ProcessExternalNameBehavior=Original
- это покажет настоящее название открытого процесса

Как покажет, сообщение выдаст или что?
Да и не новичёк, просто проблем раньше таких не было. Вот нужда заставила, а мастера какраз вот в этой программе мало что смыслят поэтому у них и не работает половина функций.
Автор: conservator
Дата сообщения: 17.08.2016 12:14
Aleksandr N
Зависший процесс в большинстве случаях наблюдается у сборок, собранных в версиях ThinApp выше 4.7.3.
Автор: Aleksandr N
Дата сообщения: 17.08.2016 12:27
conservator
Попробую вечером пересобрать с подсказками что дали, все файлы остались.
Автор: AVanti 473
Дата сообщения: 17.08.2016 13:38
Aleksandr N

Цитата:
Но не понял куда именно положить этот скрипт, в какую парку и что нужно сделать чтобы этот скрипт выполнился при закрытии...


1) В package.ini в раздел [BuildOptions], добавляете параметр:
ProcessExternalNameBehavior=Original
2) Пересобираете сборку, стартуете, закрываете, идёте в диспетчер задач, и находите настоящее имя зависшего процесса.
Если после этого всё равно непонятно, какой процесс повесил песочницу, программа Unlocker Вам в помошь (есть на просторах сети).
3) Делаете пустой текстовый файл.
4) В него помещаете такой вот скрипт,

Код: Function OnFirstParentExit
Dim objWMIService, objProcess, colProcessList
Dim strComputer
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
End Function
Автор: Proshaa
Дата сообщения: 17.08.2016 15:19
Aleksandr N

Цитата:
Ага, понял. Насчёт версии наверное не получится. Собираю на Хрюшке портативкой. А она всё время ругается на на отсутствующий файл где-то с названием между {}.

кривая портативка, сделанная "посреди" снимка. в принципе - можно не обращать внимания.
установочные версии все работают на ХР. распакованные - кроме последних тоже должны работать.
если снимок делали 5.хх версией, обратите внимание на подсказку в Package.ini про сборку в версиях 4.хх
conservator

Цитата:
Зависший процесс в большинстве случаях наблюдается у сборок, собранных в версиях ThinApp выше 4.7.3.

вы, очевидно, хотели сказать 4.7.3 и ниже

Автор: Aleksandr N
Дата сообщения: 17.08.2016 20:42
Proshaa
conservator
AVanti 473
Отчитываюсь. Добавил ProcessExternalNameBehavior=Original и пересобрал в 4.7.3, естественно процесс в диспетчере обозвался оригинальным экзешником с описанием что он от Компаса. При закрытии всё уничтожилось и нормально закрылось. Пересобрал в 5.1.2 со скриптом, в котором убиваются Kompas.exe и mscorsvw.exe. Только после этого всё нормально закрылось. Проблема явно в самой VMware. Больше экспериментировать не стал, т.к. весь цикл занимает часа полтора... Всем спасибо.

Добавлено:
Proshaa

Цитата:
Цитата:Зависший процесс в большинстве случаях наблюдается у сборок, собранных в версиях ThinApp выше 4.7.3.

вы, очевидно, хотели сказать 4.7.3 и ниже

Получается процессы зависают именно в версиях ВЫШЕ 4.7.3, а не ниже.
Автор: Proshaa
Дата сообщения: 17.08.2016 22:19
Aleksandr N
получилось - и хорошо ))
проблема - в mscorsvw.exe, вернее - в незавершённости оптимизации Framework.
https://support.microsoft.com/ru-ru/kb/2571181

об этом (оптимизации Framework) есть в FAQ. это сервисная служба, в идеале - перед завершающим снимком надо дать ей отработать, тогда она не будет запускаться сборкой, соответственно - не будет и зависших процессов.
есть и другие варианты решения - запуск службы не внутри контейнера, а на хосте.
или принудительное завершение служб (без скриптов, настройкой Package.ini)

Цитата:
весь цикл занимает часа полтор

что-то долго )) снимок достаточно сделать один раз, а тестовые сборки делать с
Код: CompressionType=None
Автор: Aleksandr N
Дата сообщения: 18.08.2016 02:44
Proshaa

Цитата:
что-то долго ))

Так я имел в виду сборку, копирование с виртуалки на машину 4 гигов, с машины на другую виртуалку. Вот и долго. Насчёт сжатия... Собират без сжатия. Размер не критичен, но распаковывать какие-то данные при работе программы бывает проблематично - притормаживает сама работа программы, тем более с флешки, а скорость работы критична. Да и сама программа хитрая. И собрал я это всего для двух человек, как временный вариант пока проблемы не решаться, как говорится, и так сойдёт. Поэтому и не выкладываю результат для всеобщего пользования.
В общем, спасибо здешним жителям.
Автор: Sergey_AV
Дата сообщения: 18.08.2016 08:11
conservator

Цитата:
Зависший процесс в большинстве случаях наблюдается у сборок, собранных в версиях ThinApp выше 4.7.3.

При всём уважении к Вам, и вашим сборкам - НЕ СОГЛАШУСЬ. Я бы написал, с точностью - да наоборот. Да, бывают программы, которым современные версии Thinstall "противопоказны", но... Несмотря на "общую" тенденцию, таких программ на самом деле не так уж и много. А в остальном... А в остальном - ЛОТЕРЕЯ! Программа Х, собранная в Thinstall версии 5х1, может оставлять "зависший" процесс при перекомпиляции в версии Thinstall 5х2 и наоборот. И так далее...
Автор: djpavlo
Дата сообщения: 19.08.2016 14:58
может кто поборол ошибки портативных сборок на последней версии Windows 10 x64 - 1607 ?
Автор: SunOK_ZM
Дата сообщения: 19.08.2016 15:43
djpavlo, кроме разработчиков их никто не поборет. Новостей по этому поводу нет.
P.s.: вы о портативках сделанных версией 5.х ?
Автор: djpavlo
Дата сообщения: 19.08.2016 17:13

Цитата:
P.s.: вы о портативках сделанных версией 5.х ?

Да, именно о них...
Автор: DenisVich
Дата сообщения: 10.09.2016 15:34
Здравствуйте, уважаемые пользователи, участники форума. Вопрос. Как из portable контейнера Thinstall извлечь данные? Сам делаю в Cameyo. Здесь не знаю. Спасибо.
Автор: Proshaa
Дата сообщения: 10.09.2016 17:54
DenisVich
не совсем корректный вопрос. что вы понимаете под "извлечь данные"? если речь о результатах работы программ, которые не попали туда, куда планировалось - то они в песочнице. "наши люди" обычно делают песочницу рядом с экзешником. по-умолчанию песочница попадает в профиль юзера.
если же вам хочется распаковать контейнер - метод описан в FAQ'е, в шапке.

djpavlo
попробуйте, пожалуйста эту сборку. у меня на ВМ на свежей 1607 работает.
http://forum.ru-board.com/topic.cgi?forum=55&topic=11671&start=5120#10
немного подробностей здесь http://forum.ru-board.com/topic.cgi?forum=55&topic=11671&start=5120#12
Автор: Proshaa
Дата сообщения: 12.09.2016 04:28
попытка №2 ))
у меня на 10-ке х64 работает, правда зависает процесс (в родном диспетчере его почему-то не видно) https://cloud.mail.ru/public/GfTx/8QC6wecBj
Автор: djpavlo
Дата сообщения: 13.09.2016 16:44
Proshaa

Цитата:
попробуйте, пожалуйста эту сборку. у меня на ВМ на свежей 1607 работает.
http://forum.ru-board.com/topic.cgi?forum=55&topic=11671&start=5120#10


у меня всё та же ошибка http://prntscr.com/chiufg
Автор: Proshaa
Дата сообщения: 13.09.2016 17:29
djpavlo
а какая у вас сборка десятки?
и, пожалуйста, попробуйте сборку из последнего поста.
Автор: djpavlo
Дата сообщения: 16.09.2016 13:57

Цитата:
а какая у вас сборка десятки?

http://prntscr.com/cineuq


Цитата:
и, пожалуйста, попробуйте сборку из последнего поста.

таже картина, выдаёт сообщение об ошибке.
Автор: insorg
Дата сообщения: 16.09.2016 14:06

Цитата:
Зависший процесс в большинстве случаях наблюдается у сборок, собранных в версиях ThinApp выше 4.7.3.
Таки да, подтверждаю. На мелкомягких офисах в тинапе 5.х на х64 виндах по завершении работы любит оставаться процесс драйвера печати "spool*64.exe", при том что 4.73 его не оставляет. Получается такой момент, что если с флешки запустил офис в Win64, то пока процесс не убить - флешку не отпустит.
С другой стороны, на Win10 порташки в 4.73 работают не всегда.

Цитата:
меня на 10-ке х64 работает, правда зависает процесс
Во-во, что можно было наделать в винде - непонятно...
Остаётся ждать костыля со стороны разрабов тинапа, ибо майки точно не станут "это" исправлять.

Страницы: 1234567891011

Предыдущая тема: OrCAD экспорт P&P файла


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.