Две недели минуло с прошлого брюзжания, можно возобновить
Есть такой плодовитый кролик-портабелизатор, и что характерно, много лет категорически не желающий ничему учиться. Лежат одни и те же грабли, и на них c завидным постоянством наступается, может в этом есть какой-то кайф, не знаю. Ладно бы только сам, но ведь тиражирует и обнадеживает народ, качающий эти заведомо нерабочие поделки. Совпало, что меня попросили в ПМ сделать сборку фонтового менеджера. По этому поводу полюбопытствовал на сборку "кролика". Программа была
вот эта - Font Fitting Room Deluxe 3.5.4.0. Чем она характерна? При первом запуске появляется окно сканирования фонтов в системе и, соответственно, где-то создается их база с путями. Что надо сделать в сборке? Правильно! Найти и грохнуть этот файл и все окружающее, чтобы на другом компе база и пути создались заново. Но нет, "кролику" без грабель не жизнь, поэтому сборка при первом запуске на чистой системе выдает ошибку в пути. Кто бы сомневался? Идем дальше. Чтобы фонт правильно инсталлировался, нужно не только скопировать его файл в папку Fonts, для чего поставить должную изоляцию в проекте, но и создать запись в реестре. Что делает "кролик"? Опять правильно! Ставит на реестр изоляцию WriteCopy вместо логичного Merged. Будет такая сборка инстал/деинстал фонтов делать? Догадайтесь с одного раза. Но есть и более тонкий нюанс - даже если все сделать правильно в сборке ThinApp (во всяком случае, до перезагрузки компа), программы новые фонты не увидят. А как же штатное средство винды? Напрашивается мысля, что какая-то хреновина в винде должна передернуться при установке фонта, тогда рестарт системы не нужен. Какая именно, пока не знаю, не разбирался еще. Зато после прошлых граблей твердо усвоил, что ThinApp на такое без костылей не способен, поэтому только Spoon. Ни одна сборка ThinApp, работающая с реестром и фонтами и вышедшая из лапок "кролика" работать не будет. Причины изложены выше. Отака муйня, малята! (с)