1. 程式人生 > >解決“沒有找到 rtl100.bpl,因此這個應用程式未能啟動。重新安裝應用程式可能會修復此問題。”

解決“沒有找到 rtl100.bpl,因此這個應用程式未能啟動。重新安裝應用程式可能會修復此問題。”

      有時候,用Delphi寫的程式,在本機自己的機器上執行沒有問題,但釋出後,交付給客戶,執行時卻提示“沒有找到 rtl100.bpl,因此這個應用程式未能啟動。重新安裝應用程式可能會修復此問題。”如下圖

沒有找到 rtl100.bpl,因此這個應用程式未能啟動。重新安裝應用程式可能會修復此問題。

      我在網上查了一下,確實缺少了rtl100.bpl檔案導致的(有時還提示沒有找到vcl100.bpl檔案)。 大多數解決的辦法都是在安裝包中附加rtl100.bpl檔案和vcl100.bpl檔案,將來部署的時候放到目標計算機的System32資料夾中,或者部署到程式所在資料夾中。這種辦法當然可行,同時自己編寫的exe程式雖然體積大大減小(我寫的一個Demo,大小隻有36K,圖形化的,加自己寫的控制元件),但是軟體就被分割成了好幾個檔案。如果專案裡只有這一個exe的話,我們還是希望在部署後整個專案裡就它一個檔案,有沒有辦法做到呢?有!
      編譯之前在Delphi開發環境的Project Manager中找到要編譯的程式,單擊右鍵選擇“Options”,在工程選項視窗的左側選擇“Packages”,如下圖

Project Manager

      此時的右側最下方有Runtime packages選項,將“Build with runtime packages”前的鉤打掉。點選OK。如下圖

Project Options

      這時候再編譯。你會發現程式的大小發生了明顯的變化(我的Demo此時變成了414KB),也就是說編譯器已經將rtl100.bpl和vcl100.bpl打入了我的Demo程式中。這樣就能保證我的程式在部署後的目標機上確實能執行,而不用去關心該機器上有沒有這兩個檔案。需要額外說明的是,當一個專案中有多個檔案(兩個或兩個以上)的時候,我還是推薦將“Build with runtime packages”這個鉤打上,部署的時候將rtl100.bpl和vcl100.bpl也放到程式的安裝目錄下,這些程式就都能呼叫公共的庫,減小程式的體積。

多檔案部署