2014-10-27 55 views
1

我部署一個由運行時包構建的應用程序。捕獲缺少運行時包的異常錯誤

有什麼辦法可以捕獲缺少的包文件的錯誤異常嗎?

enter image description here

我想更改文本,並顯示一些系統信息。

由於應用程序不會啓動,因爲它取決於這個文件,我不知道如何捕捉這些類型的異常。

+0

此消息由加載程序顯示。你不能影響消息。 – 2014-10-27 20:30:28

+0

這不是一個例外。這是一個錯誤。 – mg30rg 2014-10-30 10:24:57

回答

1

沒有什麼可以捕捉的,因爲如果沒有BPL文件存在,程序將不會開始運行。當您啓用Link with Runtime Packages選項時,您必須確保所有需要的BPL文件都可用於您的程序。通常,如果您想分發使用相同BPL文件的其他程序,通常會將它們放在與程序相同的文件夾中,或將它們放在環境PATH中包含的共享文件夾中。

+0

我希望至少編輯diplayed文本,但我想我必須忍受它。希望它至少是本地化的。感謝您嵌入圖像btw :) – Schill 2014-10-27 20:28:49

+1

如果你不想部署BPL文件,那麼關閉'Link with Runtime Packages'選項。 – 2014-10-28 03:55:18

+0

@Schill所有你需要做的是確保你有一個體面的安裝程序,部署必要的文件。這不是你需要非常擔心的事情。 – 2014-10-29 11:18:48

1

您可以創建一個小應用程序,檢查您的主應用程序所需的所有BPL,並根據需要顯示「顯示警告」。 如果一切正常,您的應用程序只需運行主應用程序。

+0

你可以這樣做,但這可能不是一個好主意。現在你有一個額外的過程,以及隨之而來的複雜性。你需要轉發任何命令行參數。如果調用程序等待進程終止,該怎麼辦?你會保持你的引導程序活着直到真正的過程完成嗎? – 2014-10-29 11:20:26

+0

你有一個額外的過程只是一段時間。 此外,重新發送所有命令行參數非常簡單。 我不確定我們在這裏有invokers問題,因爲它沒有被指定。 據我所知,沒有其他方法可以替換主程序中關於丟失bpl的信息。 – RainBoy 2014-10-29 15:23:36

+0

如果進程是在調用CreateProcess時開始的,並且父進程想要​​等到進程完成,它不能這樣做,因爲它啓動的進程不是真正的進程。加載程序可能因爲缺少.bpl文件以外的原因而失敗。所以這個機制不會檢測到所有這樣的故障。這不是正確部署程序最簡單的方法嗎? – 2014-10-29 15:25:54