1

私がサポートしているソフトウェアが、別の PC で実行できないことがあります。通常、それらは新しい Win7 インストールです。

エラー メッセージは、「rtl90.bpl が見つからなかったため、このアプリケーションを開始できませんでした...」です。

問題を修正するために、PC サポートに rtl90.bpl ファイルをユーザーの system32 ディレクトリにコピーしてもらいましたが、このエラーが発生しないようにしたいと考えています。

私はグーグルで検索し、次のリンクrtl90.bpl の問題を見つけました

私の質問は次のとおりです。「ランタイムパッケージでビルドする」オプションは、このプログラムのプロジェクトオプションで既に選択されており、ユーザーが問題を抱えていることに違いはないようです。

不足している rtl90.bpl ファイルをプロジェクトに特別に追加する必要がありますか?

私は Delphi プログラミングについてほとんど知らないことに注意してください。

4

2 に答える 2

4

プロジェクトでオプションとしてマークされているためBuild with runtime packages、最終的な exe はいくつかの追加の bpl ファイルと共に展開する必要があります。その依存関係を回避するには、そのオプションのチェックを外して、プロジェクトをビルドする必要があります。これで、exe は大きくなりますが、依存関係はありません。

于 2012-04-16T06:23:18.797 に答える
3

そのパッケージは、VCLを含むランタイムパッケージです。おそらく、RTLおよび場合によっては他のいくつかのrtl90.bplもデプロイする必要があります。ランタイムパッケージを有効にすることで、実行可能ファイルがそれらを見つけることができる場所にそれらのパッケージをデプロイすることを約束します。

3つの主なオプションがあります。

  1. PATH変数に含まれている場所にパッケージをデプロイします。通常、これはPATHを変更することを意味します。システムディレクトリには絶対に書き込まないでください。それはシステムによって所有されており、あなたはそれを尊重する必要があります。
  2. パッケージを実行可能ファイルと同じディレクトリにデプロイします。
  3. ランタイムパッケージを無効にして、単一の自己完結型実行可能ファイルをビルドします。RTL / VCLコードは、実行可能ファイルに静的にリンクされます。

オプション1は私の見解では貧弱です。PATH変数とそれを変更する機能に依存することは、脆弱です。オプション2は機能しますが、オプション3と比較すると、かなり無意味に見えます。2を選択すると、より多くのファイルとより大きなファイルを展開するので、なぜそれを選択するのですか。

要約すると、オプション3をお勧めします。すべてのRTL/VCLコードを実行可能ファイルに静的にリンクします。

私の見解では、オプション2が勝つ唯一の状況は、すべて同じディレクトリにデプロイされている複数の関連する実行可能ファイルがある場合です。そのような状況では、RTL/VCLコードを共有することは理にかなっています。

于 2012-04-16T06:36:28.003 に答える