▶ セイ・テクノロジーズ コーポレートサイトはこちら

サポート情報番号 000286
対象バージョン BOM 8.0 (全 SR), BOM 7.0 (全 SR)

[概要]
BOM は Windows OS 標準の Microsoft Windows インストーラーを利用して、インストール・アンインストールを実行します。

BOM をインストールする際、インストール先の環境に BOM の実行で必要なシステムライブラリファイル (DLL ファイル) が存在しなかった場合、Windows Installer は同時にこれらの DLL ファイルを追加します。そして BOM をアンインストールする際は、この DLL ファイルも同時に削除します。

しかしながら、DLL ファイルは他のアプリケーションが共有して使用することのあるファイルのため、Microsoft Windows インストーラーが削除した DLL ファイルを他のソフトウェアが使用していた場合、BOM のアンインストール後にそのソフトウェアが動作しなくなることがあります。

[対処方法]
DLL が削除されたことが原因でソフトウェアが動作しなくなった場合は、以下の方法で改善する可能性があります。

  • 対象のソフトウェアが動作要件としている C++ 関連ライブラリファイル (DLL ファイル、後述の [詳細情報] 参照) を個別に入手し、DLL ファイルの格納先 (通常は “C:\Windows\System32”) に配置する。
  • 対象のソフトウェアが動作要件としている C++ 関連ライブラリファイルを含む、再頒布可能パッケージを入手して対象の環境へインストールする。

[詳細情報]
BOM インストール処理では動作に必要なコンポーネントとして、C++ 関連の DLL ファイル (下表参照) が Microsoft Windows インストーラーの制御により自動的にシステムフォルダへ配置されます。

インストールされる DLL BOM 7.0 SR4 BOM 8.0 (全SR)
concrt140.dll
mfc140.dll
mfc140chs.dll
mfc140cht.dll
mfc140deu.dll
mfc140enu.dll
mfc140esn.dll
mfc140fra.dll
mfc140ita.dll
mfc140jpn.dll
mfc140kor.dll
mfc140rus.dll
mfc140u.dll
mfcm140.dll
mfcm140u.dll
msvcp140.dll
msvcp140_1.dll
msvcp140_2.dll
msvcp140_atomic_wait.dll
msvcp140_codecvt_ids.dll
vccorlib140.dll
vcruntime140.dll
vcruntime140_1.dll

また、Microsoft Windows インストーラーの制御による DLL ファイルの展開およびアンインストール処理は、インストールの時点で対象の環境の DLL ファイルがどのような状態だったのかにより異なる動作をします。

インストール時点の状態 インストール時の展開処理 BOM アンインストール時の処理
対象の DLL が存在しない DLL を新規追加する DLL を削除する
対象の DLL がすでに存在する DLL は追加しない DLL は削除しない
対象の DLL は存在するがバージョンが古い 新しいバージョンの DLL で更新する DLL は削除しない

BOM のインストールを基点として展開されたシステムライブラリを他のソフトウェアが共有ライブラリとして使用していた場合、以上のように BOM をアンインストールすることによって、それらのソフトウェアの動作に影響を与える可能性があります。

[参考情報]
Microsoft Learn – Windows App Development
“Removing Stranded Files”

https://learn.microsoft.com/ja-jp/windows/win32/msi/removing-stranded-files

関連記事