Модераторы: gambit, Kefir, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обнаружение ошибки 
:(
    Опции темы
V0fka
Дата 17.5.2014, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Привет!

Пока отлаживал программу все работало. Пробный "боевой" запуск, компилирую с конфигурацией Release, переношу на нужный комп, запускаю - программа падает. Запускаю в отладчике - тоже ошибка:

user posted image

Импирическим путём я определил, что проблема в отсутствии каталога с ресурсами в папочке Release. В XAML-е формы используется привязка к директории ресурсов:

Код

<Image Source="Resources\exit.ico"/>


и именно в этой привязке была проблема. Скопировал папку - запустилось.

Вопрос: можно ли было как-то системно отследить эту и подобные ошибки? Т.е. чтобы куда-то посмотреть и узнать что конкретно системе не нравится? Хотя бы какая конкретно проблемная строка в XAML-е? А то по выдаваемому сообщению об ошибке как-то не очень понятно в чем проблема, тем более что сама форма в Visual Studio отрисовывается нормально и никаких ошибок нету.
PM MAIL   Вверх
V0fka
Дата 19.5.2014, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Картинка куда-то испарилась, повторяю:

user posted image
PM MAIL   Вверх
V0fka
Дата 22.5.2014, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Я ерунду спросил?
PM MAIL   Вверх
Экскалупатор
Дата 22.5.2014, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



Цитата(V0fka @  22.5.2014,  07:46 Найти цитируемый пост)
Я ерунду спросил? 

почему же сразу "ерунду". Я, к примеру, не очень использую WPF, но мне кажется, что если система пишет что ошибка в парсере, то изначально надо проверить все ли есть что нужно для этого самого парсинга. ну и в деталях ошибки обычно больше инфы пишется. ну и если воспроизвести эту ситуацию и запустить под дебагом то должно ругаться более конкретно.
PM MAIL ICQ   Вверх
V0fka
Дата 22.5.2014, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Цитата(Экскалупатор @  22.5.2014,  14:33 Найти цитируемый пост)
если система пишет что ошибка в парсере, то изначально надо проверить все ли есть что нужно для этого самого парсинга

Для тех, у кого имеется не плохой опыт и знания - возможно достаточно просто информации о том, что где-то ошибка. Но в моём случае, к сожалению, этого не достаточно. Если бы это была программа не мной написана полностью - я фиг бы догадался в чем проблема.

Цитата(Экскалупатор @  22.5.2014,  14:33 Найти цитируемый пост)
ну и в деталях ошибки обычно больше инфы пишется. ну и если воспроизвести эту ситуацию и запустить под дебагом то должно ругаться более конкретно.

Не исключено, что я как-то не так запускал. Завтра ещё попробую посмотреть и отпишу о результатах.

Спасибо за ответ! smile
PM MAIL   Вверх
V0fka
Дата 28.5.2014, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



В общем, запустил опять, снова появилось такое окошко, но на этот раз в нём была кнопка "Сведения" (или что-то вроде того). Клацнул туда и там было написано, что система не может найти путь такой-то. Собственно, по такому сообщению все сразу становится ясно.


Экскалупатор, ещё раз спасибо за ответ!

Это сообщение отредактировал(а) V0fka - 28.5.2014, 09:49
PM MAIL   Вверх
Ilya81
Дата 30.5.2014, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.4.2014
Где: ЛО, Всеволожский р-н

Репутация: 1
Всего: 4



В WPF есть ресурсы, не зачем помещать картинки в отдельные файлы. Указываются прямо в XAML в виде:
Код

<Image Source="pack://application:,,,/<имя сборки>;component/<подкаталоги>/<имя файла>.xaml"/>

PM MAIL ICQ Skype   Вверх
V0fka
Дата 2.6.2014, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Ilya81, я где-то вычитал, мол "делается это так", поэтому так и сделал. На досуге обязательно попробую ваш вариант. Спасибо!
PM MAIL   Вверх
V0fka
Дата 3.6.2014, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Ilya81, картинку я добавляю в ресурсы. Но обоими способами (и тот, который я использовал и тот, который вы посоветовали) если удалить каталог с ресурсами - приложение не запускается. Возможно я как-то не правильно картинку в ресурсы закидываю? У меня в любом случае получается (я по разному пробовал в свойствах ресурса-картинки клацать), что при компиляции картинка помещается в отдельный каталог Resources, который если удалить - то программа падает. Как её "встроить"?

Это сообщение отредактировал(а) V0fka - 3.6.2014, 09:33
PM MAIL   Вверх
Ilya81
Дата 3.6.2014, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.4.2014
Где: ЛО, Всеволожский р-н

Репутация: 1
Всего: 4



Что-то Вы неправильно делаете, если ошибка выплывает в runtime'е. Ресурсы статические, если их удалить, программа не будет build'иться. Во-первых, рекомендую проверить, что в свойствах файла картинки Build Action стоит Resource, по умолчанию на картинки может поставиться Content. И во-вторых, там же в свойствах надо выключить копирование в каталог сборки, картинки в этом случае будут внутри EXE или DLL, но не в отдельных файлах. И подчёркиваю - картинки, добавляемые в ресурсах не в каталоге bin, а в каталоге/подкаталогах самого проекта и видны в Solution Explorer по соседству с cs-файлами кода (если это не так, то это точно уж не WPF-ресурсы).
PM MAIL ICQ Skype   Вверх
V0fka
Дата 3.6.2014, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Я добавлял картинку в Resources.resx и оно само копировалось в каталог Resoursec. Сейчас в проекте создал отдельный каталог Images, добавил туда картинку, сделал настройки которые вы выше посоветовали - вроде работает smile . Спасибо! Причем работает как с вариантом указания через Images\img.png так и pack://application:,,,/<имя сборки>;component/<подкаталоги>/<имя файла>.png.

Теперь возникло 2 новых вопроса smile :
1) Какая разница между Images\img.png и pack://application:,,,/<имя сборки>;component/<подкаталоги>/<имя файла>.png ?
2) Для чего тогда нужно использовать ресурсы, добавляемые через Resources.resx ?
PM MAIL   Вверх
Ilya81
Дата 3.6.2014, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.4.2014
Где: ЛО, Всеволожский р-н

Репутация: 1
Всего: 4



Images\img.png - это т. с. относительный путь, разница примерно как между указанием пути как SomeDir\SomeFile.txt и D:\UpperDir\CurrentDir\SomeDir\SomeFile.txt. При указании относительного пути главное не перепутать, относительное расположение файла. 

Про Resources.resx и resgen, на котором он основан, - в принципе, кто как предпочитает, сам я чаще всего использую в нём строки для языковой локализации. Хотя WPF и для языковой локализации предлагает новое решение, оно гораздо менее удобно, к тому ж его (решение по языковой локализации) непонятно, как использовать, если строка сообщения формируется в коде. Но картинки, помещаемые в ресурсы таким способом, можно тоже получать в коде (например, если картинку нужно обрабатывать), хотя для этого может и Resources.resx подойдёт - это уже скорее дело вкуса.
PM MAIL ICQ Skype   Вверх
V0fka
Дата 5.6.2014, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Может я туплю, но если файл встроен в сборку, то разве можно ошибиться/перепутать при любом варианте указания пути? Разве вариант Images\img.png при встроенном файле при каких-то обстоятельствах может этот файл не найти?

Про Resources.resx - спасибо! smile

Это сообщение отредактировал(а) V0fka - 5.6.2014, 08:50
PM MAIL   Вверх
Ilya81
Дата 5.6.2014, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.4.2014
Где: ЛО, Всеволожский р-н

Репутация: 1
Всего: 4



Не найти при выполнении не может встроенный в сборку файл, может не build'иться, если путь указан неправильно. Впрочем, если указана другая сборка, то может не найти саму сборку.
PM MAIL ICQ Skype   Вверх
V0fka
Дата 6.6.2014, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Что-то прояснилось, что-то не очень smile . Ilya81, спасибо за ответы!
PM MAIL   Вверх
V0fka
Дата 10.6.2014, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Я извиняюсь, но вопрос всеже мне покоя не даёт... smile 

Цитата(Ilya81 @  5.6.2014,  11:24 Найти цитируемый пост)
может не build'иться, если путь указан неправильно.

Так если путь указан в виде
Код

<Image Source="pack://application:,,,/<имя сборки>;component/<подкаталоги>/<имя файла>.xaml"/>

и по факту окажется, что <подкаталоги> или <имя файла> отсутствует - оно разве за'build'ится?
PM MAIL   Вверх
V0fka
Дата 26.6.2014, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Апну в надежде на то, что кто-то пробьёт мою броню. smile
PM MAIL   Вверх
DjonNIK
Дата 26.6.2014, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 24.8.2007

Репутация: нет
Всего: нет



Не проще ли самому проверить на тестовом решении? ))
PM MAIL   Вверх
V0fka
Дата 26.6.2014, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Проверял. Но я разницы не пойму: если картинки по указанному пути в момент компиляции нету - то ошибка в обоих случаях. В этом сейчас и вопрос.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.1076 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.