понедельник, 27 октября 2008 г.

Подозрительный файл в проекте

Сегодня выдалась свободная минутка, и решил продолжить работу над одним из своих проектов. Сходу решил откомпилировать проект, чтобы вспомнить, на чем я остановился в прошлый раз. О-па! А проект-то не работает и IDE выдает следующую ошибку:

«Странно» - подумал я, припоминая, что когда то я уже боролся с этой проблемой … Первой шальной мыслью было, что перевод часов стал причиной сбоя. :) Но эту мысль я очень быстро откинул, однако сменил дату всех файлов проекта – так, на всякий случай.

Стал мыслить дальше, поскольку даже запуск приложения просто из-под Windows выдал ошибку – «Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна». Открыл папку проекта и стал на нее смотреть, вскоре заметил один подозрительный файл, которого быть не должно! (он выделен на рисунке ниже)

Ума не приложу, откуда он нарисовался. Причем его содержимое было идентично файлу mntrng.config в котором у меня содержатся настройки приложения – поэтому система и не могла запустить приложение. Просто удалил файл – и все заработало в штатном режиме. Даже несколько раз перекомпилировал и собрал проект – файл пока больше не появился, откуда он только взялся ….

2 комментария:

  1. Мой телепатор подсказывает mntrng.config создаётся не вашим кодом, а стороним компонентом/модулем. Он же (телепатор) подсказывает, что при не удачной попытке сохранить конфигурацию создаётся параллельная конфигурация с именем приложения и расширением config.
    Проверить легко, надо открыть файл конфигурации какой-нибудь программой которая держит файл всё время открытой, например вьювером Total Commander. При закрытии твоей программы странный файл должен вернуться.
    Надо поискать в каком месте программы показывается сообщение "Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна". Странным является, то что это сообщение всё-таки появилось, т.к. "... его содержимое было идентично файлу mntrng.config", а значит безошибочно.

    ОтветитьУдалить
  2. Так как это начало проекта, (точнее сказать я переписываю некоторые части с нуля), то файл создавался вообще в ручную в блокноте, доступ из кода к нему только в режиме чтения, через инструмент XMLDataBinding, который создает классы и интерфейсы для доступа к этому файлу. Так что можно сказать что работа с файлом происходит в моем коде.

    Ради интереса решил проверить запустить приложение, заблокировав файл, как и следовало ожидать - он не появился.

    ОтветитьУдалить