![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Привет!
Пока отлаживал программу все работало. Пробный "боевой" запуск, компилирую с конфигурацией Release, переношу на нужный комп, запускаю - программа падает. Запускаю в отладчике - тоже ошибка: ![]() Импирическим путём я определил, что проблема в отсутствии каталога с ресурсами в папочке Release. В XAML-е формы используется привязка к директории ресурсов:
и именно в этой привязке была проблема. Скопировал папку - запустилось. Вопрос: можно ли было как-то системно отследить эту и подобные ошибки? Т.е. чтобы куда-то посмотреть и узнать что конкретно системе не нравится? Хотя бы какая конкретно проблемная строка в XAML-е? А то по выдаваемому сообщению об ошибке как-то не очень понятно в чем проблема, тем более что сама форма в Visual Studio отрисовывается нормально и никаких ошибок нету. |
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Картинка куда-то испарилась, повторяю:
![]() |
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Я ерунду спросил?
|
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: нет Всего: 24 |
почему же сразу "ерунду". Я, к примеру, не очень использую WPF, но мне кажется, что если система пишет что ошибка в парсере, то изначально надо проверить все ли есть что нужно для этого самого парсинга. ну и в деталях ошибки обычно больше инфы пишется. ну и если воспроизвести эту ситуацию и запустить под дебагом то должно ругаться более конкретно. |
|||
|
||||
V0fka |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Для тех, у кого имеется не плохой опыт и знания - возможно достаточно просто информации о том, что где-то ошибка. Но в моём случае, к сожалению, этого не достаточно. Если бы это была программа не мной написана полностью - я фиг бы догадался в чем проблема.
Не исключено, что я как-то не так запускал. Завтра ещё попробую посмотреть и отпишу о результатах. Спасибо за ответ! ![]() |
||||
|
|||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
В общем, запустил опять, снова появилось такое окошко, но на этот раз в нём была кнопка "Сведения" (или что-то вроде того). Клацнул туда и там было написано, что система не может найти путь такой-то. Собственно, по такому сообщению все сразу становится ясно.
Экскалупатор, ещё раз спасибо за ответ! Это сообщение отредактировал(а) V0fka - 28.5.2014, 09:49 |
|||
|
||||
Ilya81 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.4.2014 Где: ЛО, Всеволожский р-н Репутация: 1 Всего: 4 |
В WPF есть ресурсы, не зачем помещать картинки в отдельные файлы. Указываются прямо в XAML в виде:
|
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Ilya81, я где-то вычитал, мол "делается это так", поэтому так и сделал. На досуге обязательно попробую ваш вариант. Спасибо!
|
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Ilya81, картинку я добавляю в ресурсы. Но обоими способами (и тот, который я использовал и тот, который вы посоветовали) если удалить каталог с ресурсами - приложение не запускается. Возможно я как-то не правильно картинку в ресурсы закидываю? У меня в любом случае получается (я по разному пробовал в свойствах ресурса-картинки клацать), что при компиляции картинка помещается в отдельный каталог Resources, который если удалить - то программа падает. Как её "встроить"?
Это сообщение отредактировал(а) V0fka - 3.6.2014, 09:33 |
|||
|
||||
Ilya81 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.4.2014 Где: ЛО, Всеволожский р-н Репутация: 1 Всего: 4 |
Что-то Вы неправильно делаете, если ошибка выплывает в runtime'е. Ресурсы статические, если их удалить, программа не будет build'иться. Во-первых, рекомендую проверить, что в свойствах файла картинки Build Action стоит Resource, по умолчанию на картинки может поставиться Content. И во-вторых, там же в свойствах надо выключить копирование в каталог сборки, картинки в этом случае будут внутри EXE или DLL, но не в отдельных файлах. И подчёркиваю - картинки, добавляемые в ресурсах не в каталоге bin, а в каталоге/подкаталогах самого проекта и видны в Solution Explorer по соседству с cs-файлами кода (если это не так, то это точно уж не WPF-ресурсы).
|
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Я добавлял картинку в Resources.resx и оно само копировалось в каталог Resoursec. Сейчас в проекте создал отдельный каталог Images, добавил туда картинку, сделал настройки которые вы выше посоветовали - вроде работает
![]() Теперь возникло 2 новых вопроса ![]() 1) Какая разница между Images\img.png и pack://application:,,,/<имя сборки>;component/<подкаталоги>/<имя файла>.png ? 2) Для чего тогда нужно использовать ресурсы, добавляемые через Resources.resx ? |
|||
|
||||
Ilya81 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.4.2014 Где: ЛО, Всеволожский р-н Репутация: 1 Всего: 4 |
Images\img.png - это т. с. относительный путь, разница примерно как между указанием пути как SomeDir\SomeFile.txt и D:\UpperDir\CurrentDir\SomeDir\SomeFile.txt. При указании относительного пути главное не перепутать, относительное расположение файла.
Про Resources.resx и resgen, на котором он основан, - в принципе, кто как предпочитает, сам я чаще всего использую в нём строки для языковой локализации. Хотя WPF и для языковой локализации предлагает новое решение, оно гораздо менее удобно, к тому ж его (решение по языковой локализации) непонятно, как использовать, если строка сообщения формируется в коде. Но картинки, помещаемые в ресурсы таким способом, можно тоже получать в коде (например, если картинку нужно обрабатывать), хотя для этого может и Resources.resx подойдёт - это уже скорее дело вкуса. |
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Может я туплю, но если файл встроен в сборку, то разве можно ошибиться/перепутать при любом варианте указания пути? Разве вариант Images\img.png при встроенном файле при каких-то обстоятельствах может этот файл не найти?
Про Resources.resx - спасибо! ![]() Это сообщение отредактировал(а) V0fka - 5.6.2014, 08:50 |
|||
|
||||
Ilya81 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.4.2014 Где: ЛО, Всеволожский р-н Репутация: 1 Всего: 4 |
Не найти при выполнении не может встроенный в сборку файл, может не build'иться, если путь указан неправильно. Впрочем, если указана другая сборка, то может не найти саму сборку.
|
|||
|
||||
V0fka |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Что-то прояснилось, что-то не очень
![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |