locked
Работа с файлами в документах пользователя RRS feed

  • Вопрос

  • Всем доброго времени суток!

    Запустил в Windows магазине свою игру. Совсем недавно получил на почту письмо, где пользователь мне говорит, что у него в момент запуска появляется логотип и дальше игра закрывается. Сразу так и не скажешь почему это может быть, и так игра поддерживает минимальный уровень графики (Direct3D 9.1). В общем по идее не запуститься она может только в двух, известных мне, случаях:

    1. Не хватает свободной памяти
    2. Повреждены файлы, которые позволяют вывести на экран диалог с кодом ошибки

    Возможно где-то допущена ошибка у меня, но я с ней не сталкивался и все тесты игра прошла успешно.

    В общем решил в новом выпуске (я это называю обновлением) ввести лог и каждое внесённое в него сообщение сразу записывать (зачем накапливать если программа вдруг у него обрушилась). Сказано - сделано! Вот только куда мне сохранять все эти данные?! Для начала стал сохранять их в хранилище приложения (Shared Folder). Но какой пользователь вообще додумается найти его чтобы продемонстрировать Log-файл?! Поэтому решил сохранять в документах пользователя (Мои документы). А тут сразу и облом! Во-первых, попросили в манифест внести такое право. Внёс. Далее попросили заполнить какие-то сопоставления файлов. Ну я и выбрал тип файла .txt, а имя log. Всё заработала, файл стал создаваться и записываться. Однако теперь система считает что моя игра является редактором для файлов .txt (то есть игра моя считается блокнотом). Понятное дело что достаточно не ставить мою игру как программу по умолчанию для текстовых файлов, но осадок остался. Теперь каждый раз как я нажимаю правой кнопкой мыши на .txt, у меня в списке "Открыть с помощью" светится моя игра.

    Если ли ещё какие-то способы записывать файлы в документах пользователя? Ну или где вообще лучше тогда создавать лог-файл, чтобы пользователь легко мог до него добраться?

    Спасибо за внимание!

    30 января 2013 г. 19:26

Ответы

  • Можно отправить на почту, вроде должна быть такая возможность и файл приложить. Попробуйте поискать в этом направлении


    Для связи [mail]

    5 февраля 2013 г. 12:55

Все ответы

  • Есть у меня такая задумка. Вы ведете лог в папке программы, а в лог прописываете некие контрольные точки. То есть прошла процедура инициализации приложения - записали в лог, пользователь выполняет какие то действия, то есть играет - пишем в лог, программа просит завершения нормальным способом - пишем в лог.

    Далее при каждом запуске смотрим лог и если он имеет не ожидаемый формат, например в него не прописана строка нормального запуска, значит была ошибка и мы не грузим ресурсы и не готовим программу как обычно, а тупо выдаем сообщение типа вероятно программа работает не правильно и в сообщении сам лог. Там же просим пользователя скопировать данные и отослать разработчику. И там же кнопку "Ошибки не было, все ОК" и галочку "Больше не показывать", с возможностью вернуть это поведение в настройках.

    Результат - если программа работает нормально, но думает что плохо, пользователь отключит уведомления. Если работает не так, то получит сообщение и передаст вам.

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


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Изменено LXGDARK 30 января 2013 г. 21:07
    30 января 2013 г. 21:06
  • Как вариант, никто вам не мешает писать логи в файл с расширением .mylog или .mlg, или еще каким нибудь, которое до вас никто не использовал. Ну и пользователя будите просить прислать файл с таким расширением из папки мои документы...

    31 января 2013 г. 7:43
    Отвечающий
  • Привет.

    Пожалуйста, не бросайте тему без ответа или комментариев. Если ваша проблема уже решена, будет хорошо если вы поделитесь решением с сообществом.

    Спасибо.


    Для связи [mail]

    1 февраля 2013 г. 10:13
  • Доброго всем вечера!

    Отказался я от лога в Моих документах. При проверке приложения мне написали предупреждения, что такое право могут использовать только кампании, но не независимые разработчики. Так что пока не придумал как лучше это всё организовать. А то если программа вылетает у него, то она и на экран ничего не успеет вывести (а это писала бы в файл в реальном времени).

    3 февраля 2013 г. 14:31
  • Интересно вот что. Я указал в манифесте что хочу иметь доступ к папке Мои документы пользователя. Далее зарегистрировал тип файлов .eclog. Отправил приложение на проверку (не на сервер Microsoft, а локальную проверку). В ответ мне пришло что приложение прошло проверку с предупреждениями. А в предупреждениях значилось что только организации могут в манифесте ставить доступ к Моим документам пользователя. И что если Вы не являетесь организацией, то Вам надо снять это право.

    Что, реально? Я частный разработчик и мне нельзя писать в Мои документы? Меня забракуют при проверке?

    4 февраля 2013 г. 8:38
  • Раз есть такое предупреждение - то да, вполне может быть что запрещены Мои документы для обычных разработчиков и приложение могут не пропустить в маркет

    В самом Windows Store у вас должны быть доступны отчеты о работе и падениях приложения и вы можете загрузить данные отчеты и проанализировать - Проверка качества приложения (Windows)

    Также вы можете по прежнему писать лог в хранилище приложения, но в самом приложении сделать кнопку "Отправить лог файл разработчику" и отправлять соответственно последний лог, чтобы юзеру не пришлось искать сам файл в дисковой системе.


    Для связи [mail]

    4 февраля 2013 г. 11:15
  • Кнопка проверить качество приложения есть, то там пусто. То ли нету данных, то ли нету ошибок.

    Я думал о варианте отправить по сети, но у меня нет сервера. А с ним ещё возиться будешь.

    4 февраля 2013 г. 11:48
  • Можно отправить на почту, вроде должна быть такая возможность и файл приложить. Попробуйте поискать в этом направлении


    Для связи [mail]

    5 февраля 2013 г. 12:55