2

VC++ 6.0 プロジェクト

プロジェクトを完了した後、Create Installer を使用してプロジェクト EXE を作成しました。

しかし問題は、VC++ 6.0 ソフトウェアがないと、EXE プロジェクトが実行されないことです。

エラーが表示されます:

MFC42.DLL が見つからないため、このアプリケーションは sart に失敗しました。アプリケーションを再インストールすると、この問題が解決する場合があります。

vc++ 6.0 ソフトウェアをインストールすると、エラーは発生しません。

plz は、vc++ 6.0 s/w なしでプロジェクトを実行する必要があることを助けてくれます。

または、プロジェクトをEXE(セットアップ)にする方法を教えてください

4

3 に答える 3

1

mfc42.dllが自由に配布できるかどうかを確認してください。これはMicrosoftのランタイムライブラリの一部であるため、再配布することは合法であると思いますが、これを確認する必要があります(他の誰かが確認できない場合)。

次に、そのdllをセットアップに含めて、そのdllがexeの開始元と同じフォルダーにあるようにします。

于 2009-03-17T09:43:10.803 に答える
1

より広く使用されているインストール ユーティリティへの移行を検討することをお勧めします。多くのオープン ソース プロジェクト (およびかなりの数の商用プロジェクト) は、InnoSetupを使用してインストーラーをビルドします。

使用するツールに関係なく、一般的なプロセスは同じです。

  1. プログラムのリリース ビルドを作成します。
  2. インストールが必要なすべてのファイルを特定します。(Visual Studio に付属のツールを試して、depends.exe必要な DLL を確認してください。) ヘルプ ファイルとサンプルを忘れないでください。
  3. ファイルおよびその他のインストール時のタスク (ショートカットの作成、DLL の登録など) を一覧表示します。
  4. インストール パッケージをビルドしてテストします。

インストールのテストは難しい場合があり、実際にはまったく別の質問の対象となるはずです. インストールされているものはアンインストールできることに注意してください。また、インストーラーを再度実行すると、適切な処理が行われることに注意してください。また、古いコピーがまだ実行されているときにユーザーが更新プログラムをインストールしようとしているかどうかを検出し、それが発生したときに適切なアクションを実行する方法があることを確認することをお勧めします。(そうなる。)

于 2009-03-18T07:45:26.717 に答える
1

アプリケーションが Visual C++ ランタイムに依存している場合は、それらをインストーラーの一部として含めて、エンド ユーザーのインストール エクスペリエンスを簡素化できます。この方法では、Visual C++ ランタイム マージ モジュールをインストーラーに含める方法と、予想される ICE 警告について説明します。

手順 1: 正しい Visual C++ ランタイム マージ モジュールを取得する Visual C++ ランタイム マージ モジュールは、Visual Studio と共にインストールされ、\Program Files\Common Files\Merge Modules にあります。Visual C++ 8.0 ランタイム ファイルは Microsoft_VC80_CRT_x86.msm です。これと同じ MSM が Visual C++ 8.0 SP1 ランタイムに使用されますが、Visual Studio 2005 SP1 インストーラーによって更新されます。Visual Studio 9.0 ランタイム ファイルは Microsoft_VC90_CRT_x86.msm です。通常、ポリシー MSM をインストールの一部として含める必要はありません。

ステップ 2: インストーラーにマージ モジュールを含める インストーラーにマージ モジュールを含めるには、 要素と 要素を使用します。次の例は、これらの要素の使用方法を示しています。

Merge 要素により、マージ モジュールが最終的な Windows インストーラー パッケージに含まれるようになります。Id 属性を使用して一意の ID が割り当てられます。SourceFile 属性は、マシン上のマージ モジュールの場所を指します。DiskId 属性は、プロジェクトの Media 要素で指定された DiskId と一致する必要があります。Language 属性は常に 0 である必要があります。

MergeRef 要素は、マージ モジュールを実際にインストールするために Feature 要素内で使用されます。上記の例では、ランタイムに固有の機能が作成され、インストーラーが使用する UI に表示されないように非表示としてマークされています。MergeRef は、一意の ID によってマージ モジュールを参照します。

于 2015-04-16T11:25:54.937 に答える