VisualStudio2008のVC++で、ATLを使ったプログラムを開発しています。
VS2008のSP1およびATL脆弱性パッチ(KB973552)を適用した環境で開発しているため、
以下のマージモジュールを使用して、インストーラを作成したところ、後述する問題が発生しました。
(※インストーラ作成には、InstallShieldを使用しております。)
マージモジュールファイル名:
Microsoft_VC90_ATL_x86_x64.msm
マージモジュール取得元フォルダ:
C:\Program Files\Common Files\Merge Modules
[発生した問題]
今回作成したインストーラでインストールされる以下のファイルが、
KB973552の"Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ"を適用した状態のファイルと
ファイルサイズ、更新日時などが微妙に異なっている。
C:\WINDOWS\winsxs\Manifests\x86_Microsoft.VC90.ATL_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_353599c2.cat
(※このファイルは、OSの種類や言語に依存しないファイルとあります。)
この差異が元となって、インストール途中にエラー(Windows Installerのエラー1706)が発生する事があります。
[質問内容]
エラーが発生しないようにするためにどうすればよいか考えているときに、
以下の点が疑問点、不明点として出てきました。
なにか情報をお持ちの方がいらっしゃいましたら、教えていただけませんでしょうか。
---------
1)MSが供給元となっているマージモジュールを使っていても、同一バージョンのパッチに対して、
異なるファイルがインストールされることがあるものなのでしょうか?
2)今回作成したインストーラで入れたファイルが間違っているとしたとき、マージモジュールの入手方法として
正しい方法がありましたら、教えてください。
以下のサポートページを見る限り、私が配布しようとしているファイルが間違っているように見えます。
http://support.microsoft.com/default.aspx/kb/973552
---------
以下、詳細の情報を補足します。
[詳細情報]
インストールされた.catファイルの相違点
-----
A.私が作成したインストーラでインストールされたファイルのプロパティ
ファイルの更新日時:2009年7月12日、17:05:18
ファイルサイズ:7,473 バイト
デジタル署名の署名者:Microsoft Developer Platform Side-by-Side Assembly Publisher
-----
B.再頒布可能パッケージをインストールしたマシンに存在するファイルのプロパティ
ファイルの更新日時:2009年7月12日、12:11:00
ファイルサイズ:6,501 バイト
デジタル署名の署名者:Microsoft Corporation
-----
このファイルと関連するバージョンのmanifestファイルやDLLファイル(atl90.dll)そのものには、相違点はありません。