Visual C++ 2022が再インストール・修復できない時の直し方|msvcp140.dll・vcruntime140_1.dll不足とPackage Cacheエラーを安全解決【VersaWorks 6対応】

Roland DG「VersaWorks 6」の再インストール時に“より新しい Microsoft Visual C++ 2022 再頒布可能パッケージ (x64) が必要”と表示されるのに、破損でアンインストールも修復もできない――この袋小路を、公式ツールと安全な手順だけで確実に抜けるための実践ガイドです。DLL不足、Package Cache参照エラーまで一気に解消します。

目次

症状と原因の整理

以下のような複合不具合が同時に起こり、VersaWorks 6 が起動できないケースが多く報告されています。

  • msvcp140.dll、vcruntime140_1.dll などが見つからない・読み込めない。
  • コントロール パネル(アプリと機能)から Microsoft Visual C++ 2015–2022 再頒布可能パッケージ (x64) の削除・修復ができない。
  • インストーラが C:\ProgramData\Package Cache\{XXXX-...} を要求するがフォルダーが存在しない。
  • 最終的に VersaWorks 6 が起動せず、作業が停止してしまう。
現象想定される主因解決の要点
DLL が見つからないVC++ ランタイムの破損/一部削除再頒布パッケージの完全クリーン再インストール
修復・削除が失敗Windows Installer 情報破損・キャッシュ欠落公式トラブルシューティングツールで“痕跡”を除去
Package Cache を要求セットアップエンジンのキャッシュ参照切れPackage Cache のリセット(リネーム)
再インストール後も DLL エラーUCRT(Universal C Runtime)未適用UCRT 更新を先に導入して依存関係を満たす

結論:安全に直すための全体像

最短で確実に復旧するために、次の順番を厳守してください。

  1. Microsoft 公式「プログラム インストール/アンインストール トラブルシューター(diagcab)」で破損した VC++ ランタイム項目を完全除去
  2. C:\ProgramData\Package Cache をリセット(リネーム)
  3. UCRT を先に適用(Windows Update または対象 KB)
  4. Visual C++ 2022 再頒布可能パッケージ (x64) をクリーンインストール
  5. VersaWorks 6 をクリーン再インストール
  6. うまくいかない場合のみレジストリの最終手段を検討

以下に各手順の具体策と注意点を詳述します。

作業前の事前チェック(成功率を上げる下準備)

  • 管理者権限のローカルユーザーでログオン。
  • アーキテクチャの確認:Windows キー + Pause → システムの種類が 64 ビットであることを確認。
  • 再起動保留の解消:インストール前に 1 度再起動。
  • 常駐セキュリティの一時停止:インストール中のみリアルタイム保護を一時停止(オフライン環境で実施、後述の注意参照)。

現在の VC++ ランタイムの残骸を把握するため、PowerShell で以下を実行します(管理者として)。

Get-Package | Where-Object {$_.Name -like "*Visual C++*2015*" -or $_.Name -like "*Visual C++*2022*"} | 
Select-Object Name, Version, ProviderName

レジストリの検出フラグも参考になります。

reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64"

破損コンポーネントの除去(公式トラブルシューティング ツール)

Windows 標準のアンインストールに失敗する場合でも、Microsoft 公式の diagcab は「インストール情報の痕跡」を消し去ることができます。

  1. 「プログラム インストール/アンインストール トラブルシューター(diagcab)」を入手し実行。
  2. 表示された選択肢で 「アンインストール」 を選択。
  3. 候補一覧から以下の 2 つを順に選び、完全削除。
    • Microsoft Visual C++ 2015–2022 Redistributable (x64) – Minimum Runtime
    • Microsoft Visual C++ 2015–2022 Redistributable (x64) – Additional Runtime
  4. 削除後に必ず PC を再起動。

ポイント:「見つからない」「既に削除されている」と表示されても、痕跡キーや Windows Installer の登録情報が掃除されるため、その後のクリーンインストール成功率が一気に上がります。

Package Cache のリセット(キャッシュ参照切れ対策)

Visual C++ ランタイムは Visual Studio セットアップエンジンのキャッシュ(Package Cache)を参照します。破損していると「C:\ProgramData\Package Cache\{GUID} が見つからない」と要求され続けます。そこで、古いキャッシュを参照できないようにします。

  1. エクスプローラーで C:\ProgramData を開く(隠しファイルを表示)。
  2. Package Cache フォルダーを Package Cache_OLD にリネーム。
  3. 存在すれば、C:\Program Files (x86)\Microsoft Visual Studio\Installer も削除またはリネーム。
  4. この時点で再起動。

以降のセットアップで新しいキャッシュが再生成され、GUID 不整合によるロールバックが止まります。

UCRT(Universal C Runtime)を先に導入

VC++ 2022 は ucrtbase.dll をはじめとする UCRT に依存します。Windows 10/11 では通常同梱されていますが、破損・欠落や旧 OS からのアップグレード経路では未適用の場合があります。Windows Update で最新の累積更新を適用し、その後に VC++ を入れ直すのが最も安全です。

UCRT の有無は次で確認できます。

where ucrtbase.dll
dir C:\Windows\System32\ucrtbase.dll

ファイルが見つからない/サイズが 0 の場合は、更新プログラムの適用後に再起動してから次へ進みます。

Visual C++ 2022 再頒布可能パッケージ (x64) をクリーンインストール

必ず Microsoft 公式のインストーラ(vc_redist.x64.exe) を使用してください。個別 DLL のダウンロードサイトは改ざんリスクが高く、長期的に不整合を招きます。

  1. vc_redist.x64.exe を用意する(USB などに保存)。
  2. ファイルを右クリック → 管理者として実行。
  3. 画面の指示に従いインストール。

サイレントで実施する場合は、管理者のコマンド プロンプトで次を使えます。

vc_redist.x64.exe /install /quiet /norestart /log "%TEMP%\vc2022_x64_install.log"

インストール直後に一度再起動し、Minimum Runtime と Additional Runtime の 2 項目が「アプリと機能」に表示されることを確認します。

VersaWorks 6 をクリーン再インストール

RIP ソフト側にも古い参照や一時ファイルが残ることがあります。以下の順で「完全な入れ直し」を行います。

  1. コントロール パネル(アプリと機能)から VersaWorks 6 をアンインストール。
  2. 下記の残存フォルダーを手動で削除(隠しファイルを表示)。
    • C:\Program Files\VersaWorks
    • C:\ProgramData\Roland DG VersaWorks
  3. 最新のインストーラを用意し、管理者として実行してインストール。

バックアップのおすすめ:ジョブキューやメディアプロファイルを保持したい場合は、上記フォルダーを削除する前に別ドライブへコピーしておき、再インストール後に必要な設定だけ戻すと安全です。

動作確認と DLL の実体チェック

インストールが完了したら、以下で「DLL の実在」と「ランタイムの検出状態」を確認します。

where /r C:\ msvcp140.dll
where /r C:\ vcruntime140_1.dll
reg query "HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64"
Get-Package | Where-Object {$_.Name -like "*Visual C++*2015*" -or $_.Name -like "*Visual C++*2022*"} | 
Select-Object Name, Version

VersaWorks 6 が起動し、初回の環境構築が完了すれば復旧成功です。

代替策(最終手段):レジストリの手動クリーン

どうしてもアンインストールできない場合のみ実施してください。誤操作は OS に深刻な影響を与えます。復元ポイント作成とレジストリの完全バックアップを行ってから着手します。

  1. レジストリエディタを起動(regedit)。
  2. 次をエクスポートでバックアップ:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products
  3. 同キー配下から Visual C++ 2015–2022 (x64) に該当する 2 つ前後のエントリを削除。
  4. PC を再起動し、vc_redist.x64.exe の再インストールを実施。

この操作で Windows Installer の「存在検知」だけが解除され、改めて正規インストールが可能になるケースがあります。

まだ直らないときの深掘りチェックリスト

システムファイルの整合性回復

DISM /Online /Cleanup-Image /RestoreHealth


sfc /scannow

完了後に再起動し、改めて VC++ をインストールします。

Windows Installer(msiserver)の再登録

%windir%\system32\msiexec.exe /unregister


%windir%\system32\msiexec.exe /regserver
sc config msiserver start= demand
net stop msiserver
net start msiserver

インストールの妨げになるポリシーを確認

reg query HKLM\Software\Policies\Microsoft\Windows\Installer /v DisableMSI

値が 1(禁止)や 2(管理者のみ)なら、作業中は 0 へ。

再起動保留(Pending)の有無

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations

値が存在する場合は一度再起動してからインストールを再実行します。

詳細ログの取得(原因の特定)

  • VC++ セットアップログ:%TEMP%\dd_vcredist_amd64_*.log
  • Windows Installer ログ(必要に応じて一時的に有効化): reg add HKLM\Software\Policies\Microsoft\Windows\Installer /v Logging /t REG_SZ /d voicewarmupx /f

原因把握後はログ設定を削除して元に戻してください。

セーフモード/クリーンブートでの再試行

常駐アプリやドライバの干渉が疑われる場合、クリーンブートまたはセーフモード(ネットワークなし)で VC++ → VersaWorks の順にインストールすると成功率が高まります。

winget を使った代替インストール

コマンドラインでの入れ直しが有効な場合があります(インターネット接続が必要)。

winget uninstall --id Microsoft.VCRedist.2015+.x64


winget install --id Microsoft.VCRedist.2015+.x64 --silent

セキュリティソフトとインストールの相性

一部のウイルス対策や EDR は、インストーラの自己展開や一時フォルダーへの書き込みをブロックすることがあります。以下のベストプラクティスを守ると失敗を防ぎやすくなります。

  • インストール作業はオフライン(LAN/インターネット切断)で実施し、リアルタイム保護を一時停止。
  • 次の場所を一時的に除外:%TEMP%、C:\ProgramData\Package Cache、C:\Windows\Installer。
  • 作業完了後は必ず保護を元に戻す。

よくある誤解・NG 行為

  • DLL 単体のダウンロード&貼り付けは厳禁。バージョンの不整合・署名エラーで別のクラッシュを誘発します。必ず公式の VC++ 再頒布パッケージで入れ直してください。
  • x86 と x64 を取り違えない。VersaWorks 6 は x64 環境を前提とします。必要に応じて x86 も共存できますが、今回の症状は x64 の破損が主因です。
  • 再起動を省略しない。Pending なファイル置換が残り、何度やってもロールバックする原因になります。
  • レジストリ直編集の多用はしない。どうしても必要な場合のみ「最終手段」で実施し、バックアップと復元ポイントを用意すること。

作業フローの早見表(保存版)

段階実施内容目的想定所要再起動
①除去diagcab で VC++ Minimum/Additional (x64) の痕跡を除去破損した検出情報の一掃5〜10分必要
②キャッシュPackage Cache のリネームGUID 参照切れの解除1分推奨
③UCRTWindows Update/UCRT 更新適用VC++ の依存 DLL を満たす10〜20分必要
④VC++vc_redist.x64.exe を管理者でクリーンインストールランタイム復旧3〜5分推奨
⑤VersaWorks旧フォルダー削除 → 最新版を再インストールアプリ側の参照更新10〜15分不要
⑥最終手段Installer\Products の VC++ 関連キーをバックアップ後に削除検出の詰まりを解除5分必要

半自動化スクリプト(上級者向け)

以下は要点を自動化する PowerShell 例です。実行は自己責任で、事前に復元ポイントを作成してください。

# 管理者 PowerShell
# 1) Package Cache リセット
$pc = "C:\ProgramData\Package Cache"
if (Test-Path $pc) { Rename-Item $pc "${pc}_OLD_$(Get-Date -Format yyyyMMddHHmmss)" -Force }

# 2) インストーラサービス健全化

Start-Process -FilePath "$env:WINDIR\system32\msiexec.exe" -ArgumentList "/unregister" -Wait
Start-Process -FilePath "$env:WINDIR\system32\msiexec.exe" -ArgumentList "/regserver"  -Wait
sc.exe config msiserver start= demand | Out-Null
net stop msiserver | Out-Null
net start msiserver | Out-Null

# 3) UCRT の確認(存在しなければ Windows Update を案内)

if (-not (Test-Path "C:\Windows\System32\ucrtbase.dll")) {
Write-Host "UCRT が見つかりません。Windows Update を実施してから再実行してください。"
exit 1
}

# 4) VC++ 2022 のサイレントインストール(vc_redist.x64.exe を同じフォルダーに配置)

$vc = Join-Path $PSScriptRoot "vc_redist.x64.exe"
if (Test-Path $vc) {
Start-Process -FilePath $vc -ArgumentList "/install /quiet /norestart /log `"%TEMP%\vc2022_x64_install.log`"" -Wait
} else {
Write-Host "vc_redist.x64.exe が見つかりません。公式から取得して同フォルダーへ配置してください。"
}

# 5) 検出確認

Get-Package | Where-Object {$*.Name -like "*Visual C++*2015*" -or $*.Name -like "*Visual C++*2022*"} |
Select-Object Name, Version | Format-Table -Auto

なぜこの順序で直るのか(技術的背景)

Visual C++ 再頒布可能パッケージは、Visual Studio セットアップエンジン(Burn)を介して配布されます。インストーラは C:\ProgramData\Package Cache に配置されたペイロードと、Windows Installer の登録情報を相互参照しながら修復やアンインストールを行います。どちらか一方でも破損すると、インストーラは「残骸の情報」を頼りにキャッシュを探し続け、見つからないとロールバックしてしまいます。

そこで、まず diagcab で登録情報のゴミを削り、次に Package Cache をリネームして古いキャッシュ参照を断ちます。さらに UCRT の先行適用で下位依存を先に満たしておくことで、msvcp140.dll や vcruntime140_1.dll のロード時エラーを未然に防ぎます。この 3 点が揃うと、VC++ のクリーンインストールは高確率で成功します。

まとめ:最短で正常化するチェックリスト

  • 公式 diagcab で VC++ 2015–2022 (x64) の Minimum/Additional を除去したか。
  • Package Cache を Package Cache_OLD へリネームしたか。
  • UCRT を適用し、ucrtbase.dll の存在を確認したか。
  • vc_redist.x64.exe を 管理者でクリーンインストールしたか。
  • VersaWorks 6 をクリーン再インストールし、起動確認したか。
  • 未解決なら、DISM/SFC、msiserver 再登録、ログ収集、最終手段としてレジストリクリーンを実施。

この順序と注意点を守れば、「削除も修復もできない」状態からでも、高い確率で VersaWorks 6 を再稼働させられます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次