2014-10-27 2 views
1

Я развертываю приложение, созданное с использованием пакетов времени исполнения.Ошибка при сбое ошибок во время выполнения

Есть ли способ уловить исключение ошибки для отсутствующих файлов пакетов?

enter image description here

Я хотел бы изменить текст и отобразить более подробную информацию о системе.

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

+0

Это сообщение показано загрузчиком. Вы не можете влиять на сообщение. –

+0

Это не исключение. Это ошибка. – mg30rg

ответ

1

Невозможно поймать, так как ваша программа не будет запускаться без присутствия файла BPL. Когда вы включите опцию Link with Runtime Packages, вы должны убедиться, что все необходимые файлы BPL доступны для вашей программы. Обычно вы размещаете их в той же папке, что и ваша программа, или размещаете их в общей папке, включенной в среду PATH, если вы хотите распространять дополнительные программы, которые используют одни и те же файлы BPL.

+0

Я надеялся хотя бы на редактирование текста, но я думаю, мне придется жить с ним. Надеюсь, он, по крайней мере, локализован. Спасибо за вложение изображения btw :) – Schill

+1

Если вы не хотите разворачивать файлы BPL, отключите опцию «Ссылка с помощью пакетов времени выполнения». –

+0

@Schill Все, что вам нужно сделать, это убедиться, что у вас есть достойная программа установки, которая развертывает необходимые файлы. Это не то, о чем вам нужно очень беспокоиться. –

1

Вы можете создать небольшое приложение, которое проверит все необходимые BPL для вашего основного приложения и покажет предупреждение дисплея, как вы хотите. Если все в порядке, ваше приложение просто запускает основное приложение.

+0

Ну, вы могли бы это сделать, но это, вероятно, не очень хорошая идея. Теперь у вас есть дополнительный процесс и сложность, связанная с этим. Вам нужно переслать любые аргументы командной строки. И что, если вызывающая программа ждала завершения процесса. Не могли бы вы сохранить свой ботстраппер до тех пор, пока не закончится реальный процесс? –

+0

У вас есть дополнительный процесс только на мгновение. Также очень легко отправить все аргументы командной строки. Я не уверен, что у нас есть некоторые проблемы с invokers прямо здесь, потому что он не был указан. Нет дополнительных способов заменить информацию о пропавших bpl в основной программе, как я знаю. – RainBoy

+0

И если процесс был запущен с вызовом 'CreateProcess', и родительский процесс хочет дождаться завершения процесса, он не сможет этого сделать, потому что начатый процесс не является реальным процессом. И загрузчик может выйти из строя по причинам, отличным от отсутствующих файлов .bpl. Таким образом, этот механизм не обнаружит все такие сбои. Не проще ли развертывать программу правильно. –

Смежные вопросы