1

VC10 ランタイムのインストールに頭が下がります!

2 つのアプリケーションがあり、それぞれに独自のインストーラーがあります。それぞれがスタンドアロンで出荷できることを確認するために、各インストーラーには、VC10 ランタイムをインストールするための vcredist_x??.exe が含まれています。

現在、インストーラーの 1 つに「SP0」ランタイムが含まれています。これは少し前にビルドされたもので、「i0」と呼ばれます。また、「SP1」ランタイムが含まれているインストーラーの 1 つには、現在ビルドされているため、「i1」と呼ばれます。

私のユーザーが i0 だけ、または i1 だけをインストールした場合、すべて問題ありません。ユーザーが最初に i0 をインストールしてから i1 をインストールした場合、すべて問題ありません。

ただし、ユーザーが最初に i1 をインストールすると、i0 をインストールしようとすると、ランタイムのインストールが失敗します。

Redist を手動で実行すると、SP1 が既にインストールされていることを確認すると、SP0 インストーラーが動揺することがわかります。

これがほとんど犯罪的にばかげているように見えるという事実は別として、どうすればそれを回避できますか。SP0 インストーラーに指定できる「強制」フラグはありますか? ランタイムとそのバージョンが既にインストールされているかどうかを確認する「適切な」方法はありますか?

4

1 に答える 1

3

これを行うためのより良い方法は、VC ランタイムをアプリケーションと共に非公開でデプロイすることです。これを行うには、インストーラー パッケージに msvcp100.dll と msvcr100.dll を含めるだけです。そうすれば、アプリケーションはシステム CRT を使用せず、再配布可能ファイルを実行する必要がなくなります。他の依存関係がある場合は、ここに含めるファイルを見つけることができます。

于 2011-09-02T15:38:11.890 に答える