|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Ситуация № 1 Собираю проект (*.EXE) на своей машине, но не в пути по умолчанию, а сразу на сервер обновлений. Запускаю. Обращаю внимание, что программа работает с МОЕЙ локальной копией данных, пути к которым были прописаны при разработке самого проекта. У пользователей работа идет с данными, которые лежат на серваке. Таблицы были прописаны в DataEnvironment. Т.е. при сборке проекта не в "путь по умолчанию" Фоксятина в первую очередь брала таблицы с абсолютных путей к моим локальным данным (по возможности), и только потом искала другие доступные таблицы с тем же именем. Ситуация № 2 Другой проект другого разработчика. Exe`шник всегда собирался на сервер обновлений, проблем не наблюдалось. Но его комп никогда не выключался. Все работало. Человек уволился. Машину заглушили. Начались дикие тормоза. Для того, чтобы разобраться, поковыряться в его проекте, найти тонкие места, включаем его машину - тормоза исчезают. Пересобираем EXE`шник в то место, которое предлагает сам фокс, копируем на сервер обновлений, гасим машину, где лежит проект. Все работет без тормозов. Вопрос: Как работает фокс с путями, почему, если собирать проект не в "путь по умолчанию" начинаются подобные баги. Предположения у меня самого определенные есть, но где бы почитать описание данного поведения в доках и т.п.? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 09:19 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
С путями по моему такая последовательность 1. Ткущая папка 2. Обьявленная путь в фоксе 3. Обьявленная путь в DOS-е ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 10:18 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Как ищется файл, указанный без путей (use table1 in 0) я в курсе. Меня интересует именно та ситуация, которую я описал. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 10:35 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Galyamov Rinat Ситуация № 1 ... Т.е. при сборке проекта не в "путь по умолчанию" Фоксятина в первую очередь брала таблицы с абсолютных путей к моим локальным данным (по возможности), и только потом искала другие доступные таблицы с тем же именем. Есть такая штука. Можешь заглянуть внутрь SCX/SCT и увидеть там полные пути к DBF-кам. Вот их фокс и берет в первую очередь. Давно наступил на эти грабли, только немного по другому, у юзера на компе была расшаренная база в сетке и локально подпапка BASE (с полным путем как у меня при разработке). Теперь все исходники на диске "M" держу чтоб где-нибудь так не сглючило. Что тебе посоветовать в твоей ситу не знаю :( Разве что со своего компа в рабочую базу не ходить, если надо то в терминале где-нибудь работать. Galyamov RinatСитуация № 2 ... Наверно где-то фокс сохранил полные пути типа "\\ИмяКомпаУволившегося\Исходники\...", вот и подвисал при попытке найти в сетке выключенный "\\ИмяКомпаУволившегося" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 11:07 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
> Galyamov Rinat > Ситуация № 2 > ... > > Наверно где-то фокс сохранил полные пути типа > "\\ИмяКомпаУволившегося\Исходники\...", вот и подвисал при попытке найти в > сетке выключенный "\\ИмяКомпаУволившегося" Да не наверное, а точно. Установлено экспериментальным путем. Как только машина появилась в сети - тормоза исчезли. Вырубили машину - тормоза снова появились. В том то и дело, хочу увидеть ОПИСАНИЕ данной взаимосвязи! Чтобы в будущем не наступать на подобные грабли! Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 11:21 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
> Наверно где-то фокс сохранил полные пути типа > "\\ИмяКомпаУволившегося\Исходники\...", вот и подвисал при попытке найти в > сетке выключенный "\\ИмяКомпаУволившегося" К стати, последний build проекта был именно с такого пути. Т.е. я со своей машины компилил проект, зайдя на тот комп по сетевому пути, и build`ил exe`шник сразу на сервак. :( Поэтому именно сетевые пути до машины и были сохранены. Но простым поиском внутри exe`шника, подобную строчку найти не удалось. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 12:14 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Galyamov Rinatхочу увидеть ОПИСАНИЕ данной взаимосвязи! Недокументированная грабля похоже. Поковырялся в SCT. Похоже не совсем так как я писал, хранится минимальный путь. Например "CursorSource = ..\base\post.dbf" т.е. если у тебя база при разработке будет в подпапке BASE, и не будет подпапки BASE когда запустишь exe для рабочей базы, то тестовую базу exe не должен видеть. Galyamov RinatНо простым поиском внутри exe`шника, подобную строчку найти не удалось. Должна быть. Там галочка encrypted в свойствах проекта не стоит случайно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 13:19 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
> Galyamov Rinat > Но простым поиском внутри exe`шника, подобную строчку найти не > удалось. > > Должна быть. Там галочка encrypted в свойствах проекта не стоит > случайно? Стояла. Убрал. Внутри EXE`шника ссылок на полный путь до проекта (\\имя_машины\шара\проект\...) полно, что в случае сборки в папку по умолчанию, что в случае сборки сразу на сервак. Заставляет задуматься... :( PS путь до проекта сетевой, т.к. проект лежит на соседней машине в сети. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 14:35 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Galyamov RinatPS путь до проекта сетевой, т.к. проект лежит на соседней машине в сети. А база (которая при разработке используется) отдельно живет? Может ее в подпапку проекта поселить попробовать? Можно конечно автозамену в EXE сделать "\\имя_машины\" на "с:\мя_машины\", только чтоб кол-во знаков не сменилось, но это изврат так-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 14:46 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Еще вариант - замапить шару с базой на букву, например Z: И убедиться что при работе с проектом в PATH "Z:\..." а не "\\Комп\Шара\..." Тогда у юзера проверка отсутствия "Z:\..." тормозить не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 14:54 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Запуск Exe-файлов у меня организовано следующим образом На сервере имеется папка Pexe-для всех пользователей кроме меня только для чтения (вирусы чтоб не лезли) В этой папке находятся все Exe-файлы и ярлыки В этой папке находится также PUSKEXE.BAT: ECHO OFF CD %1 COPY F:\PEXE\%2 C:\%2 %3 C:\%2 PAUSE DEL C:\%2 ,где %1-путь к базе данных,%2-имя Exe-файла,%3-путь к VFP6.EXE Для вызова Exe-файла используется ярлык в котором свойство "обьект": F:\PEXE\PUSKEXE.BAT F:\SBT\BAL BAL.EXE "C:\Program Files\Microsoft Visual Studio\Vfp98\VFP6.EXE" свойство "рабочая папка:F:\PEXE ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 16:40 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
LUCIANЗапуск Exe-файлов у меня организовано следующим образом ... А какое это отношение к обсуждаемой проблеме имеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 16:42 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Galyamov Rinat А какое это отношение к обсуждаемой проблеме имеет? Потому что команда CD %1 изменяет каталог Visual FoxPro по умолчанию на определенный вами каталог.В CONFIG.FPW "DEFAULT = " тоже поможет стать на истинный путь . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 17:03 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
у меня были похожие траблы когда в репоте в 1 записи в 9 галочка save environmaent сохраноляся путь к принтереу к-й потм перемменовали и т д решал просто убирал галочку или чистить 1 запись если фокс не 9 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 18:38 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
> Потому что команда CD %1 изменяет каталог Visual FoxPro по умолчанию > на определенный вами каталог. Ну допустим. В CONFIG.FPW "DEFAULT = " тоже поможет стать на истинный путь . Тоже верно. Но это только в случае, когда идет поиск файла по относительному пути. Причем, если посмотреть внутренности EXE`шника, там можно встретить такую строчку: "..\graphics\folder_doc.bmp" А рядом вот такую: "d:\new_nas_end\graphics\folder_doc.bmp" Ссылка через диск D - по любому от другого программера, который форму рисовал. На машине с проектом такой папки нет и не было :) А еще есть куча вот таких: "IN LOCFILE("\\ИмяМашины\NEW1\MENUS\MENU" ,"MPX;MPR|FXP;PRG" ,"WHERE is MENU?")" Т.е. внутри исполнимого файла мы можем наблюдать АБСОЛЮТНЫЕ пути на некоторые файлы. Мой вопрос звучал так: В каких случаях эти абсолютные пути начинают играть вперед относительных, вообще нахрена они играют и где об этом можно почитать? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 06:34 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Galyamov RinatТ.е. внутри исполнимого файла мы можем наблюдать АБСОЛЮТНЫЕ пути на некоторые файлы. Мой вопрос звучал так: В каких случаях эти абсолютные пути начинают играть вперед относительных, вообще нахрена они играют и где об этом можно почитать? Лучше чем ВладимирМ фоксовые доки никто не знает, может он свое мнение выскажет по этому поводу. Если хочешь опытным путем исследовать как себя фокс ведет при открытии DBF указанных в DE, то возьми FileMon поставь фильтр "*ИмяТвоегоEXE*" и смотри. Он также покажет попытки открытия несуществующих и существующих файлов. Я считаю что пути в DE сохраняются в момент сохранения формы, причем в относительном виде (как SYS(2014) делает). При сборке проекта форма просто включается в EXE без каких-либо изменений. Возможно при галке "Recompile All Files" что-то меняется, но не уверен. Galyamov RinatА еще есть куча вот таких: "IN LOCFILE("\\ИмяМашины\NEW1\MENUS\MENU" ,"MPX;MPR|FXP;PRG" ,"WHERE is MENU?")" Думаю это явно в коде где-то прописано, попробуй в исходниках поискать. Вероятно это криворукость разработчика. Если нет желания разбираться, то с каждым файлом исходников сделай замену: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 15:36 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
> Galyamov Rinat > А еще есть куча вот таких: > "IN LOCFILE("\\ИмяМашины\NEW1\MENUS\MENU" ,"MPX;MPR|FXP;PRG" > ,"WHERE is > MENU?")" > > Думаю это явно в коде где-то прописано, попробуй в исходниках > поискать. Вероятно это криворукость разработчика. Неа, это идет подстановка во время компиляции. Если у тебя в проекте есть *.mp* файлы - собери проект и поищи в нутри по выражению ,"WHERE is MENU?" Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 19:38 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Судя по отсутствию внятного ответа, делаю выводы: 1) Это не документированно 2) Никто не знает про то, где это документированно 3) Никто не сталкивался с описанным мною (кроме DimaT, но он тоже нашел "обходной путь" без теоретического подкрепления) 4) многие вообще не поняли о чем я говорю. Либо в связи с пунктом 3, либо потому, что я так невнятно объясняю. 5) Эта проблема возникает только у меня (обобщение п. 3). Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 15:54 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Galyamov RinatСудя по отсутствию внятного ответа, делаю выводы: Выводы это хорошо, но про свое решение забыл упомянуть или не искал? решил дальше гонять комп разработчика постоянно чтобы прога не подвисала? ЗЫ Забыл еще один момент упомянуть, если прога обращается к тому компу, то она не только проверяет наличие компа, она ведь файлы там ищет, а если найдет какой-нибудь DBF от тестовой базы и данные из него возьмет? У тебя ведь с этого началось, у рядовых юзеров точно так же сглючит. Я бы FileMon`ом посмотрел что происходит для самоуспокоения хотя бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 16:14 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
> Выводы это хорошо, но про свое решение забыл упомянуть или не искал? > решил дальше гонять комп разработчика постоянно чтобы прога не подвисала? Я в своем вопросе (самое первое сообщение по теме) уже описал как решил: "... Пересобираем EXE`шник в то место, которое предлагает сам фокс, копируем на сервер обновлений, гасим машину, где лежит проект. Все работет без тормозов." > ЗЫ Забыл еще один момент упомянуть, если прога обращается к тому > компу, то она не только проверяет наличие компа, она ведь файлы там ищет, > а если найдет какой-нибудь DBF от тестовой базы и данные из него возьмет? У меня такое ощущение, что она там искала библиотеки классов. Хотя проверить надо > У тебя ведь с этого началось, у рядовых юзеров точно так же сглючит. Я бы > FileMon`ом посмотрел что происходит для самоуспокоения хотя бы. Пока работаю из дома удаленным столом. FileMon быстро изображение меняет - у меня картинка не успевает обновляться. Выйду на работу - погоняю плотнее. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 16:49 |
|
Непонятки с путями при сборке проекта
|
|||
---|---|---|---|
#18+
Galyamov Rinat Пока работаю из дома удаленным столом. FileMon быстро изображение меняет - у меня картинка не успевает обновляться. Выйду на работу - погоняю плотнее. У FileMon есть кнопочка с лупой "Capture" вкл/выкл сбор инфы, т.е. запустил FileMon, выполнил необходимые действия в проге, нажал "Capture" и изучай что он там намониторил. Еще при старте в фильтре в поле "include" пиши "*MyExeName*" чтоб лишнее он не показывал. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2008, 17:09 |
|
|
start [/forum/topic.php?fid=41&msg=35480717&tid=1587390]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 322ms |
total: | 485ms |
0 / 0 |