これでバッチリ!もう失敗しない.NET Framework 4.7と言語パックの完全オフラインインストール

オフラインイントーラーなのに単体でインストールすると失敗する.NET Framework 4.7(KB3186497)

前回、クリーンインストールホヤホヤのWindows 7に.NET Framework 4.7をオフライン環境で失敗せずにインストールする方法を書きましたが、今度は言語パックのオフラインインストールが失敗しました。

そこで今回は、失敗せずに.NET Framework 4.7(KB3186497)言語パック(KB3186499)を完全オフライン環境でインストールできる方法をまとめました。

ざっくりした流れ

  1. D3DCompiler_47.dllをインストール
  2. 証明書(MicrosoftRootCertificateAuthority2011.cer)を登録
  3. .NET Framework 4.7(KB3186497)をインストール
  4. NET Framework 4.7の言語パック(KB3186499)をインストール

1.D3DCompiler_47.dllをインストール

何のためのDLLかわかりませんが、.NET Framework 4.7(KB3186497)をインストールするためにはD3DCompiler_47.dllが必要です。

C:\Windows\Syatem32\D3DCompiler_47.dll

これがないとオンライン・オフライン共にインストール際、以下のエラーが出ます。

D3DCompiler_47.dllは、2017 年 5 月 17 日 - KB4019265 (マンスリー ロールアップのプレビュー)以降の月例ロールアップにも含まれていますので、月例ロースアップを適用しているPCでは既に存在しているので対応は不要ですが、存在していない場合はKB4019990を適用するか2017年5月以降の最新のマンスリーロールアップを適用してください。

2.証明書(MicrosoftRootCertificateAuthority2011.cer)を登録

証明書マネージャ(certmgr.msc)の[信頼できるルート証明機関][Microsoft Root Certificate Authority 2011]が登録されていないと以下のエラーが出ます。

いろいろやってみて、言語パックのオフラインインストールでは、この証明書の追加を避けることはできないことがわかりました。

この作業が面倒くさそうなので、前回は.NET Framework 4.7(KB3186497)のインストーラーを解凍することで避けることができたのですが、言語パック(KB3186499)はインストーラーを解凍してインストールするとエラーが出ます。普通は解凍しないと思いますが、この証明書を入れた後で未解凍のままインストールしてください。

ダウンロードリンク

以下リンクからMicrosoftRootCertificateAuthority2011.cerをダウンロードします。

楽に追加するコマンド

手動だと証明書マネージャ(certmgr.msc)を手動で開いたりと面倒なので、サクッとコマンドで登録します。ファイルパスは適当に変更し、管理者として起動したコマンドプロンプトで実行してください。

certutil.exe -addstore root "C:\MicrosoftRootCertificateAuthority2011.cer"

バッチファイル

何度も行う機会がある場合は、いかのバッチファイルを使うと便利です。MicrosoftRootCertificateAuthority2011.cerと同じ場所に保存して使ってください。

@echo off

echo.
echo =============================================
echo  証明書マネージャ(certmgr.msc)の
echo   [信頼されたルート証明機関]-[証明書]に
echo    Microsoft Root Certificate Authority 2011
echo     を追加します。
echo =============================================
echo.

pause

rem 証明書追加
certutil -addstore root "%~dp0MicrosoftRootCertificateAuthority2011.cer"

echo.
echo 証明書を追加しました。
echo.

pause

rem 証明書マネージャを起動
start certmgr.msc

exit
これで以下のように証明書マネージャ(certmgr.msc)[信頼できるルート証明機関][Microsoft Root Certificate Authority 2011]の証明書が追加されいることを確認してください。

手動(GUI)で追加する場合の参考手順

3..NET Framework 4.7(KB3186497)をインストール

D3DCompiler_47.dll証明書MicrosoftRootCertificateAuthority2011.cer)が入っているので、エラー無くインストールできるはずです。

.NET Framework 4.7のダウンロード

以下のリンクから.NET Framework 4.7のオフラインインストーラーNDP47-KB3186497-x86-x64-AllOS-ENU.exe)をダウンロードできます。

インストーラーを解凍したい場合のコマンド

以下のコマンドを実行すると解凍先を指定するダイアログが表示され、NDP47-KB3186497-x86-x64-AllOS-ENU.exeを解凍できます。何度もインストールする機会があるときは、解凍後のファイルを使えば、解凍時間が節約できます。解凍後に出てくるsetup.exeを実行してください。

C:\NDP47-KB3186497-x86-x64-AllOS-ENU.exe /extract

4.NET Framework 4.7の言語パック(KB3186499)をインストール

こちらも同じくエラー無くインストールできるはずです。こちらは/extractで解凍して使うとエラーが出ますので、ダウンロードしたままのインストーラーでインストールしてください。

言語パックのダウンロード

以下のリンクから.NET Framework 4.7 言語パックのオフラインインストーラー(NDP47-KB3186497-x86-x64-AllOS-JPN.exe)をダウンロードできます。

※言語パックのKB番号はKB3186499のはずなのに、ダウンロードしたファイルはKB3186497.NET Framework 4.7の番号と同じですが別物です。言語パックを先にインストールはできません。必ず、.NET Framework 4.7を先にインストールしてください。

無事インストール完了

これで完全なオフライン環境で、クリーンインストールほやほやのWindows 7にいきなり.NET Framework 4.7言語パックをインストールすることができました。