2013-04-10 68 views
0

我試圖用動態運行時包創建程序Delphi XE2。 當我編譯它沒有問題,但是當用F9程序運行時只是編譯和創建的exe文件,但它沒有運行。 我的配置有什麼問題?我在運行時運行exe文件時遇到了問題包delphi xe2

配置,我使用

  • 鏈接與運行時組件設置爲true - 從所有配置的32位Windows平臺上設置爲true

  • 運行軟件包繼承,設置爲true值

注意「鏈接到運行時包」設置爲false時,它可以正常運行。

+0

然後應該有一些診斷。它可能是某種DLL地獄(BPLs未找到或錯誤的版本)。你是否檢查過Delphi的Messages面板,它沒有錯誤?基本上你有兩種方法:1)使用像sysInternals Process Monitor這樣的外部工具來記錄你的應用程序的啓動順序,並查看它在死亡之前的最後一個動作。也許失敗搜索BPl或失敗的負載或任何。 2)在選項中設置'使用調試DCU',並用F8和F7跟蹤RTL的內容,看到它將一個接一個地加載,縮小範圍,直到出現錯誤爲止 –

+0

我無法提供解決方案。在轉向XE2之後,我們聽到了類似的體驗。我們必須升級才能獲得64位的服務器應用程序功能,但受到影響,因爲我們無法使我們的客戶端應用程序動態地加載BPL的加載。我們在XE2之前沒有遇到過這個問題 - 它在以前的版本中已經工作了多年,沒有問題。解決方法是消除對BPL的需求,將所有功能移回到主EXE中。不是一個合適的解決方案,但它允許我們使用XE2。 – Paul

回答

0

您描述的行爲是當無法找到.bpl文件時發生的情況。如果您在IDE外運行.exe,您將收到一條錯誤消息。出於某種原因,從IDE內運行時,錯誤消息不顯示。請注意,即使使用Run Without Debugging選項也是不夠的。您必須在IDE外部啓動可執行文件,例如通過雙擊瀏覽器窗口中的.exe文件。

也許最有效的方法來調試此來找出哪些依賴關係失敗與Dependency Walker。加載您的可執行文件並從配置文件菜單調試其啓動。

確保可以找到.bpl文件來解決問題。確保它們位於DLL搜索路徑中。最好的方法是將它們放在.exe文件旁邊。

相關問題