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

サポート情報番号 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

関連記事